There's a patch for broken dc (xircom, and others) from John Baldwin - want it ?



  • There is a longstanding bug (or bugs) in the dc driver that basically breaks a HUGE number of xircom and other network cards.

    You can read about this bug here:

    kern/115623  (PR)

    This bug is NOT fixed in 8.3-RELEASE, so if you base 2.1 off of 8.3, you won't get this fix.  Many pcmcia cards will NOT work at all in pfsense.

    I've had private communications with John Baldwin and he provided this backported patch for 8.3-RELEASE:

    http://www.FreeBSD.org/~jhb/patches/pci_rom_8.patch

    and I have tested this patch and my xircom realport pcmcia cards finally work on 8.3-RELEASE.

    So this code is in 9.x, and he's put it into the tree for 8.4 (if that ever comes out) but if you want it in 8.3/pfsense2.1, you'll need to grab that and apply it.

    Comments ?



  • if it applies cleanly with our patches, submit a pull request on the tools repo on github and we'll get it in.



  • If you can point us to the revision it was MFC'ed into 8-STABLE, please do so.
    Cherry-picking  and 'git format-patch' a diff 8-STABLE is easier thant taking a patch from yet another URL ;-)

    You may also use the 8-STABLE branch from the github mirror: https://github.com/freebsd/freebsd/commits/stable/8


  • Rebel Alliance Developer Netgate

    @MatSim - Looking in the patch file, it appears to be fully contained in SVN r241229

    Seems the MFC was 5e182246d97144c1a9edeaa375990635e5ff929e



  • OK, you confirm my suggestion.
    Unfortunately taking this changeset isn't enough as it depends on previous commits to 'sys/dev/pci/pci.c'' inside 8-STABLE.
    Only cherry-picking this will cause a merge conflict, so you'll want to take all commits to this file until git is happy.

    The result may be applying patches, but may not yield something build-able, so testing will be required.



  • @MatSim:

    OK, you confirm my suggestion.
    Unfortunately taking this changeset isn't enough as it depends on previous commits to 'sys/dev/pci/pci.c'' inside 8-STABLE.
    Only cherry-picking this will cause a merge conflict, so you'll want to take all commits to this file until git is happy.

    The result may be applying patches, but may not yield something build-able, so testing will be required.

    How can I help with this ?  Since you have the corresponding FreeBSD commits, and have tracked down exactly where this code comes from, am I correct that you no longer need me to do a pull request, etc. ?

    Let me know how I can help - this would fix a TON of pcmcia cards that are currently totally broken in pfsense, and I'd love to get it in before the official 2.1 release…



  • G'day

    RIght, yes now I have checked more exactly which patches that we'd likely need and put them together.
    https://github.com/bsdperimeter/pfsense-tools/pull/25

    If you are able to make your own build, you can use my github clone for building and help in finding breakage.
    It unfortunately patches in larger areas and I neither have experience in them, nor to I have Cardbux hardware laying around.



  • Thanks MatSim. I merged that to give it a shot.



  • I can ship out a laptop + xircom cardbus cards to someone if they want to do some real testing.

    Alternatively, if you can provide some specific commands or test binaries to run, I can run them off of 2.1 on my local hardware…

    Thanks.


  • Netgate Administrator

    I have laptops with cardbus slots and I seem to have two xircom cards: a CBE2-100 and a XEM5600. I have far too much obsolete hardware.  ::)
    Are either of those supported by this patch? Any specific tests?

    Steve



  • The best would be if the initial reporter could give feedback. :-)

    If you are now able to use these Xircom-based cards, well that would show that at least I didn't break anything with importing these patches.
    The last Notebook I saw with Cardbus slots, was Thinkpad T61 which had both Cardbus and Expresscard.


  • Netgate Administrator

    Ok I'm running yesterdays snapshot 32bit (are there any 64bit machines with a cardbus?  ;)) live CD.

    
    [2.1-BETA0][root@pfSense.localdomain]/root(2): uname -a
    FreeBSD pfSense.localdomain 8.3-RELEASE-p5 FreeBSD 8.3-RELEASE-p5 #0: Mon Nov 26 07:11:24 EST 2012     root@snapshots-8_3-i386.builders.pfsense.org:/usr/obj./usr/pfSensesrc/src/sys/pfSense_SMP.8  i386
    
    

    The CBE2 card does not work. Many 'unable allocate resources for CIS' errors during boot.
    The 'Realport' XEM5600 card work great.

    [2.1-BETA0][root@pfSense.localdomain]/root(3): ifconfig xe0
    xe0: flags=8843 <up,broadcast,running,simplex,multicast>metric 0 mtu 1500
    	ether 00:10:a4:7a:59:8b
    	inet6 fe80::210:a4ff:fe7a:598b%xe0 prefixlen 64 scopeid 0x9 
    	inet 192.168.111.2 netmask 0xffffff00 broadcast 192.168.111.255
    	nd6 options=3 <performnud,accept_rtadv>media: Ethernet autoselect (100baseTX)
    	status: active</performnud,accept_rtadv></up,broadcast,running,simplex,multicast> 
    
    [2.1-BETA0][root@pfSense.localdomain]/root(2): dmesg | grep xe
    xe0: <xircom 10="" 100="" network="" +="" 56k="" modem="" pc="" card="">at port 0x2e8-0x2ef irq 9 function 0 config 39 on pccard1
    xe0: version 0x55/0x05, 100Mbps capable, with modem
    xe0: [ITHREAD]
    [2.1-BETA0][root@pfSense.localdomain]/root(3): sysctl -a | grep Xircom
    dev.xe.0.%desc: Xircom 10/100 Network + 56K Modem PC Card
    dev.xe.0.%pnpinfo: manufacturer=0x0105 product=0x110a cisvendor="Xircom" cisproduct="10/100 Network + 56K Modem PC Card" function_type=6</xircom> 
    

    It did throw a load of watchdog timeouts while I connected a cable but recovered gracefully.

    Oops, spoke too soon. I ran a pciconf -lv on it and now showing a stream of 'xe0: allignment error' messages on the console and is unaccessable.

    Steve


  • Netgate Administrator

    Ok so in conclusion of the two Xircom cards I have one is supported by the xe(4) driver and works just about OK if you've pushed it into the slot hard enough.  ::)

    The other card tries to load the dc(4) driver and fails.

    
    dmesg|grep dc0
    
    dc0: <xircom 10="" x3201="" 100basetx="">port 0x1080-0x10ff mem 0x88000000-0x880007ff,0x88001000-0x880017ff irq 9 at device 0.0 on cardbus0
    dc0: No station at address in CIS!
    device_attach: dc0 attach returned 6
    
    dmesg|grep cardbus
    
    cardbus0: <cardbus bus="">on cbb0
    cardbus1: <cardbus bus="">on cbb1
    cardbus0: Unable to allocate resource to read CIS.
    cardbus0: Unable to allocate resources for CIS
    cardbus0: Unable to allocate resource to read CIS.
    cardbus0: Unable to allocate resources for CIS</cardbus></cardbus></xircom> 
    

    I imagine there maybe a typo in that!

    This appears to be the long standing problem that the patch should have addressed. Wrong snapshot?  :-
    The combination of laptop and card work fine under Windows (98?) but I could easily believe it's a BIOS problem.

    Steve



  • Nope, was my fault. JimP fixed a typo in the patches file which otherwise would have made the cardbus patch not apply.
    The typo was introduced myself, sorry. Wait for the next builder run and test again…


  • Netgate Administrator

    Working well now.  :)

    [2.1-BETA0][root@pfSense.localdomain]/root(6): uname -a
    FreeBSD pfSense.localdomain 8.3-RELEASE-p5 FreeBSD 8.3-RELEASE-p5 #0: Tue Nov 27 11:33:39 EST 2012     root@snapshots-8_3-i386.builders.pfsense.org:/usr/obj./usr/pfSensesrc/src/sys/pfSense_SMP.8  i386
    [2.1-BETA0][root@pfSense.localdomain]/root(7): ifconfig dc0
    dc0: flags=8843 <up,broadcast,running,simplex,multicast>metric 0 mtu 1500
    	options=80008 <vlan_mtu,linkstate>ether 00:10:a4:8a:ba:87
    	inet6 fe80::210:a4ff:fe8a:ba87%dc0 prefixlen 64 scopeid 0x9 
    	inet 192.168.111.5 netmask 0xffffff00 broadcast 192.168.111.255
    	nd6 options=3 <performnud,accept_rtadv>media: Ethernet autoselect (100baseTX <full-duplex>)
    	status: active
    [2.1-BETA0][root@pfSense.localdomain]/root(8): dmesg | grep Xircom
    dc0: <xircom 10="" x3201="" 100basetx="">port 0x1080-0x10ff mem 0x88000000-0x880007ff,0x88001000-0x880017ff irq 9 at device 0.0 on cardbus0
    [2.1-BETA0][root@pfSense.localdomain]/root(9): sysctl dev.dc
    dev.dc.0.%desc: Xircom X3201 10/100BaseTX
    dev.dc.0.%driver: dc
    dev.dc.0.%location: slot=0 function=0
    dev.dc.0.%pnpinfo: vendor=0x115d device=0x0003 subvendor=0x115d subdevice=0x0181 class=0x020000
    dev.dc.0.%parent: cardbus0</xircom></full-duplex></performnud,accept_rtadv></vlan_mtu,linkstate></up,broadcast,running,simplex,multicast> 
    

    Let me know if you want/need any other info. I don't think I'll be using the Sony F409 for anything else anytime soon. It was once the most expensive single thing I'd ever bought, now gathers dust in a pile of old laptops.  ::)

    Steve



  • Ok, I just tested out two xircom realport cards (R2BE-100) inside a Dell Latitude p3-900 and they both work great!

    Not a lot of testing, but assigned IPs, made connections, and set up a few long scp transfers @ 1.4MB/s.

    Not a single error, nothing on console, nothing in dmesg - looks perfect.

    Thank you!

    Now, moving forward, should I continue testing this as each new snapshot of 2.1 comes out, or is it safe to assume that this is fixed for good now ?



  • Thanks for the feedbacks.
    Checking back some time may be worthy still, in the case where patches/RELENG_8_3/from-8-STABLE/cardbus gets updates I'd say,
    since 8.3-RELENG doesn't seem to receive much updates, only security.

    Although it improves things - are there real consumers of CardBus devices in conjunction with pfSense out there these days?
    Maybe I'm overlooking the use of laptops as low-power DYI plattforms instead of buying an embedded board…



  • @MatSim:

    Thanks for the feedbacks.
    Checking back some time may be worthy still, in the case where patches/RELENG_8_3/from-8-STABLE/cardbus gets updates I'd say,
    since 8.3-RELENG doesn't seem to receive much updates, only security.

    Although it improves things - are there real consumers of CardBus devices in conjunction with pfSense out there these days?
    Maybe I'm overlooking the use of laptops as low-power DYI plattforms instead of buying an embedded board…

    laptop + xircom realports is a fantastic device.

    I am looking at a device that has built-in KVM, three (!) physical, full size rj45 ports, and has its own built in UPS.

    You really can't find a much more user friendly or versatile platform…



  • Well, under that aspect, it makes quite it makes sense to pf(Sense) ;-)


Locked