Only One Port Of Dual Port EC2000S (RTL8111E, r8169) Detected



  • I found this post:  https://forum.pfsense.org/index.php?topic=62929.0

    But that is not that much info.

    pciconf -l -v gives:

    hostb0@pci0:0:0:0:	class=0x060000 card=0x20b317aa chip=0x2a008086 rev=0x0c hdr=0x00
        class      = bridge
        subclass   = HOST-PCI
    vgapci0@pci0:0:2:0:	class=0x030000 card=0x20b517aa chip=0x2a028086 rev=0x0c hdr=0x00
        class      = display
        subclass   = VGA
    vgapci1@pci0:0:2:1:	class=0x038000 card=0x20b517aa chip=0x2a038086 rev=0x0c hdr=0x00
        class      = display
    em0@pci0:0:25:0:	class=0x020000 card=0x20b917aa chip=0x10498086 rev=0x03 hdr=0x00
        class      = network
        subclass   = ethernet
    uhci0@pci0:0:26:0:	class=0x0c0300 card=0x20aa17aa chip=0x28348086 rev=0x03 hdr=0x00
        class      = serial bus
        subclass   = USB
    uhci1@pci0:0:26:1:	class=0x0c0300 card=0x20aa17aa chip=0x28358086 rev=0x03 hdr=0x00
        class      = serial bus
        subclass   = USB
    ehci0@pci0:0:26:7:	class=0x0c0320 card=0x20ab17aa chip=0x283a8086 rev=0x03 hdr=0x00
        class      = serial bus
        subclass   = USB
    hdac0@pci0:0:27:0:	class=0x040300 card=0x20ac17aa chip=0x284b8086 rev=0x03 hdr=0x00
        class      = multimedia
        subclass   = HDA
    pcib1@pci0:0:28:0:	class=0x060400 card=0x20ad17aa chip=0x283f8086 rev=0x03 hdr=0x01
        class      = bridge
        subclass   = PCI-PCI
    pcib2@pci0:0:28:1:	class=0x060400 card=0x20ad17aa chip=0x28418086 rev=0x03 hdr=0x01
        class      = bridge
        subclass   = PCI-PCI
    pcib3@pci0:0:28:2:	class=0x060400 card=0x20ad17aa chip=0x28438086 rev=0x03 hdr=0x01
        class      = bridge
        subclass   = PCI-PCI
    pcib4@pci0:0:28:3:	class=0x060400 card=0x20ad17aa chip=0x28458086 rev=0x03 hdr=0x01
        class      = bridge
        subclass   = PCI-PCI
    none0@pci0:0:28:4:	class=0x060400 card=0x20ad17aa chip=0x28478086 rev=0x03 hdr=0x01
        class      = bridge
        subclass   = PCI-PCI
    uhci2@pci0:0:29:0:	class=0x0c0300 card=0x20aa17aa chip=0x28308086 rev=0x03 hdr=0x00
        class      = serial bus
        subclass   = USB
    uhci3@pci0:0:29:1:	class=0x0c0300 card=0x20aa17aa chip=0x28318086 rev=0x03 hdr=0x00
        class      = serial bus
        subclass   = USB
    uhci4@pci0:0:29:2:	class=0x0c0300 card=0x20aa17aa chip=0x28328086 rev=0x03 hdr=0x00
        class      = serial bus
        subclass   = USB
    ehci1@pci0:0:29:7:	class=0x0c0320 card=0x20ab17aa chip=0x28368086 rev=0x03 hdr=0x00
        class      = serial bus
        subclass   = USB
    pcib9@pci0:0:30:0:	class=0x060401 card=0x20ae17aa chip=0x24488086 rev=0xf3 hdr=0x01
        class      = bridge
        subclass   = PCI-PCI
    isab0@pci0:0:31:0:	class=0x060100 card=0x20b617aa chip=0x28118086 rev=0x03 hdr=0x00
        class      = bridge
        subclass   = PCI-ISA
    atapci0@pci0:0:31:1:	class=0x01018a card=0x20a617aa chip=0x28508086 rev=0x03 hdr=0x00
        class      = mass storage
        subclass   = ATA
    ahci0@pci0:0:31:2:	class=0x010601 card=0x20a717aa chip=0x28298086 rev=0x03 hdr=0x00
        class      = mass storage
        subclass   = SATA
    none1@pci0:0:31:3:	class=0x0c0500 card=0x20a917aa chip=0x283e8086 rev=0x03 hdr=0x00
        class      = serial bus
        subclass   = SMBus
    wpi0@pci0:3:0:0:	class=0x028000 card=0x10108086 chip=0x42278086 rev=0x02 hdr=0x00
        class      = network
    pcib5@pci0:5:0:0:	class=0x060400 card=0x00000000 chip=0x8232104c rev=0x02 hdr=0x01
        class      = bridge
        subclass   = PCI-PCI
    pcib6@pci0:6:0:0:	class=0x060400 card=0x00000000 chip=0x8233104c rev=0x02 hdr=0x01
        class      = bridge
        subclass   = PCI-PCI
    pcib7@pci0:6:1:0:	class=0x060400 card=0x00000000 chip=0x8233104c rev=0x02 hdr=0x01
        class      = bridge
        subclass   = PCI-PCI
    pcib8@pci0:6:2:0:	class=0x060400 card=0x00000000 chip=0x8233104c rev=0x02 hdr=0x01
        class      = bridge
        subclass   = PCI-PCI
    re0@pci0:7:0:0:	class=0x020000 card=0x012310ec chip=0x816810ec rev=0x06 hdr=0x00
        class      = network
        subclass   = ethernet
    cbb0@pci0:21:0:0:	class=0x060700 card=0x20c617aa chip=0x04761180 rev=0xba hdr=0x02
        class      = bridge
        subclass   = PCI-CardBus
    fwohci0@pci0:21:0:1:	class=0x0c0010 card=0x20c717aa chip=0x08321180 rev=0x04 hdr=0x00
        class      = serial bus
        subclass   = FireWire
    xl0@pci0:22:0:0:	class=0x020000 card=0x5a5710b7 chip=0x505710b7 rev=0x00 hdr=0x00
        class      = network
        subclass   = ethernet
    
    

    Version:
    2.2-RELEASE (amd64)
    built on Thu Jan 22 14:03:54 CST 2015
    FreeBSD 10.1-RELEASE-p4

    Both interfaces show up on the same hardware in linux just fine…

    Any ideas?


  • Netgate Administrator

    I suspect your problem is this:

    none0@pci0:0:28:4:	class=0x060400 card=0x20ad17aa chip=0x28478086 rev=0x03 hdr=0x01
        class      = bridge
        subclass   = PCI-PCI
    

    You have a PCI bridge that isn't functioning. If the remaining NIC is on that bridge it won't show.
    This is an express-card NIC yes? Try removing it and running pciconf -lv again. Compare the results.

    Steve



  • I am just not familiar with FreeBSD as much as I should be.  I use Linux primarily.  Anyways my question is:

    What about those lines shows that a PCI bridge is not functioning?

    Is it the none0 in:  none0@pci0:0:28:4:

    Can it be a driver?  I know the card works correctly in Linux on the same hardware.


  • Netgate Administrator

    Yes, the 'none' label means no driver has attached to it. It looks like it's a PCI to expresscard bridge which would explain it.
    One of the NICs in the card is detected though you say?
    The laptop doesn't have a built in NIC?
    Edit: I assume em0 is the built in NIC?

    Steve



  • em0 is intel built in
    xl0 is 3com 10/100
    rl0 is the one port on the new card that is working


  • Netgate Administrator

    You should try running pciconf -lv with the card removed to determine whether the non-attached bridge chip is actually on the card.

    It seems odd that one NIC should be detected while the other is not. Especially so when you look at the specs for the expresscard standard. It consists of a single PCIe lane so you would imagine there is only one bridge chips controlling that.  :-\ It does also carry USB. Could it be possible that one NIC connects via USB? Seems unlikely but you could run usbconfig to check.

    Maybe boot Linux on the laptop and find out how the card connects when it's working correctly.

    Steve



  • I received a response from one of the original posters:

    Yes, I have both ports working.  I figured out that you MUST have both ports connected with link state up when the driver loads or the port which wasn't up will never come up.

    Hope that helps.

    I will have to try this out when I get a chance.



  • You could also try the workaround here: https://forum.pfsense.org/index.php?topic=89057.msg492375#msg492375

    There's a FreeBSD bug that interferes with proper bridge setup, and symptom is that only one port of a dual port nic shows up.  Though so far I think only intel nics have been reported.

    I'm not sure how you can have 'both ports connected with link state up…' before the driver loads.


  • Netgate Administrator

    Mmm, the symptoms don't match exactly but worth a shot.

    Steve



  • Tested it today and it does not work with this card and system.

    The loader.conf fix or the plug in and let initialize both do not work.

    If you plug them in before boot, it does light up…but the driver still does not see the second port.


Log in to reply