Bug 208653 - PCN driver will not handle all PC net pro cards
Summary: PCN driver will not handle all PC net pro cards
Status: Closed Works As Intended
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 10.3-BETA2
Hardware: amd64 Any
: --- Affects Some People
Assignee: freebsd-net (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-04-09 12:24 UTC by Mats
Modified: 2016-04-20 17:17 UTC (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mats 2016-04-09 12:24:10 UTC
Please update the PCN driver so that it will handle fibre adapters based on the PCnet-pro chipset (IE allied telesis 270X) series cards.

Currently the driver will detect the card but not initialize it properly.
(there is working code in the Linux driver that might be useful for backporting - im not skilled enough to determine that but I want to mention for inforamtion)
Comment 1 Mats 2016-04-12 17:03:38 UTC
I'm not a C developer but I can ofcourse help with testing of this issue
Comment 2 Sean Bruno freebsd_committer 2016-04-18 15:30:13 UTC
The best thing I can suggest, is to post a "pciconf -lvbc" from the system and lets see if just adding pci-ids helps.
Comment 3 Mats 2016-04-20 16:15:06 UTC
(In reply to Sean Bruno from comment #2)
hostb0@pci0:0:0:0:	class=0x060000 card=0x82761043 chip=0x29c08086 rev=0x02 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82G33/G31/P35/P31 Express DRAM Controller'
    class      = bridge
    subclass   = HOST-PCI
    cap 09[e0] = vendor (length 11) Intel cap 0 version 1
pcib1@pci0:0:1:0:	class=0x060400 card=0x82761043 chip=0x29c18086 rev=0x02 hdr=0x01
    vendor     = 'Intel Corporation'
    device     = '82G33/G31/P35/P31 Express PCI Express Root Port'
    class      = bridge
    subclass   = PCI-PCI
    cap 0d[88] = PCI Bridge card=0x82761043
    cap 01[80] = powerspec 3  supports D0 D3  current D0
    cap 05[90] = MSI supports 1 message 
    cap 10[a0] = PCI-Express 1 root port slot max data 128(128) link x16(x16)
                 speed 2.5(2.5) ASPM disabled(L0s)
    ecap 0002[100] = VC 1 max VC0
    ecap 0005[140] = Root Complex Link Declaration 1
uhci0@pci0:0:26:0:	class=0x0c0300 card=0x82771043 chip=0x29378086 rev=0x02 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82801I (ICH9 Family) USB UHCI Controller'
    class      = serial bus
    subclass   = USB
    bar   [20] = type I/O Port, range 32, base rxb800, size 32, enabled
    cap 09[50] = vendor (length 6) Intel cap 2 version 0
uhci1@pci0:0:26:1:	class=0x0c0300 card=0x82771043 chip=0x29388086 rev=0x02 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82801I (ICH9 Family) USB UHCI Controller'
    class      = serial bus
    subclass   = USB
    bar   [20] = type I/O Port, range 32, base rxb880, size 32, enabled
    cap 09[50] = vendor (length 6) Intel cap 2 version 0
uhci2@pci0:0:26:2:	class=0x0c0300 card=0x82771043 chip=0x29398086 rev=0x02 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82801I (ICH9 Family) USB UHCI Controller'
    class      = serial bus
    subclass   = USB
    bar   [20] = type I/O Port, range 32, base rxbc00, size 32, enabled
    cap 09[50] = vendor (length 6) Intel cap 2 version 0
ehci0@pci0:0:26:7:	class=0x0c0320 card=0x82771043 chip=0x293c8086 rev=0x02 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82801I (ICH9 Family) USB2 EHCI Controller'
    class      = serial bus
    subclass   = USB
    bar   [10] = type Memory, range 32, base rxfcfffc00, size 1024, enabled
    cap 01[50] = powerspec 2  supports D0 D3  current D0
    cap 0a[58] = EHCI Debug Port at offset 0xa0 in map 0x14
    cap 09[98] = vendor (length 6) Intel cap 2 version 0
pcib2@pci0:0:28:0:	class=0x060400 card=0x82771043 chip=0x29408086 rev=0x02 hdr=0x01
    vendor     = 'Intel Corporation'
    device     = '82801I (ICH9 Family) PCI Express Port 1'
    class      = bridge
    subclass   = PCI-PCI
    cap 10[40] = PCI-Express 1 root port slot max data 128(128) link x4(x4)
                 speed 2.5(2.5) ASPM disabled(L0s/L1)
    cap 05[80] = MSI supports 1 message 
    cap 0d[90] = PCI Bridge card=0x82771043
    cap 01[a0] = powerspec 2  supports D0 D3  current D0
    ecap 0002[100] = VC 1 max VC0
    ecap 0005[180] = Root Complex Link Declaration 1
uhci3@pci0:0:29:0:	class=0x0c0300 card=0x82771043 chip=0x29348086 rev=0x02 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82801I (ICH9 Family) USB UHCI Controller'
    class      = serial bus
    subclass   = USB
    bar   [20] = type I/O Port, range 32, base rxb080, size 32, enabled
    cap 09[50] = vendor (length 6) Intel cap 2 version 0
uhci4@pci0:0:29:1:	class=0x0c0300 card=0x82771043 chip=0x29358086 rev=0x02 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82801I (ICH9 Family) USB UHCI Controller'
    class      = serial bus
    subclass   = USB
    bar   [20] = type I/O Port, range 32, base rxb400, size 32, enabled
    cap 09[50] = vendor (length 6) Intel cap 2 version 0
uhci5@pci0:0:29:2:	class=0x0c0300 card=0x82771043 chip=0x29368086 rev=0x02 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82801I (ICH9 Family) USB UHCI Controller'
    class      = serial bus
    subclass   = USB
    bar   [20] = type I/O Port, range 32, base rxb480, size 32, enabled
    cap 09[50] = vendor (length 6) Intel cap 2 version 0
ehci1@pci0:0:29:7:	class=0x0c0320 card=0x82771043 chip=0x293a8086 rev=0x02 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82801I (ICH9 Family) USB2 EHCI Controller'
    class      = serial bus
    subclass   = USB
    bar   [10] = type Memory, range 32, base rxfcfff800, size 1024, enabled
    cap 01[50] = powerspec 2  supports D0 D3  current D0
    cap 0a[58] = EHCI Debug Port at offset 0xa0 in map 0x14
    cap 09[98] = vendor (length 6) Intel cap 2 version 0
pcib3@pci0:0:30:0:	class=0x060401 card=0x82771043 chip=0x244e8086 rev=0x92 hdr=0x01
    vendor     = 'Intel Corporation'
    device     = '82801 PCI Bridge'
    class      = bridge
    subclass   = PCI-PCI
    cap 0d[50] = PCI Bridge card=0x82771043
isab0@pci0:0:31:0:	class=0x060100 card=0x82771043 chip=0x29188086 rev=0x02 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82801IB (ICH9) LPC Interface Controller'
    class      = bridge
    subclass   = PCI-ISA
    cap 09[e0] = vendor (length 12) Intel cap 1 version 0
		 features: Quick Resume, SATA RAID-5, 4 PCI-e x1 slots, SATA RAID-0/1/10
atapci0@pci0:0:31:2:	class=0x01018f card=0x82771043 chip=0x29218086 rev=0x02 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82801IB (ICH9) 2 port SATA Controller [IDE mode]'
    class      = mass storage
    subclass   = ATA
    bar   [10] = type I/O Port, range 32, base rxa000, size 8, enabled
    bar   [14] = type I/O Port, range 32, base rx9c00, size 4, enabled
    bar   [18] = type I/O Port, range 32, base rx9880, size 8, enabled
    bar   [1c] = type I/O Port, range 32, base rx9800, size 4, enabled
    bar   [20] = type I/O Port, range 32, base rx9480, size 16, enabled
    bar   [24] = type I/O Port, range 32, base rx9400, size 16, enabled
    cap 01[70] = powerspec 3  supports D0 D3  current D0
    cap 09[b0] = vendor (length 6) Intel cap 2 version 0
none0@pci0:0:31:3:	class=0x0c0500 card=0x82771043 chip=0x29308086 rev=0x02 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82801I (ICH9 Family) SMBus Controller'
    class      = serial bus
    subclass   = SMBus
    bar   [10] = type Memory, range 64, base rxfcfff400, size 256, enabled
    bar   [20] = type I/O Port, range 32, base rx400, size 32, enabled
atapci1@pci0:0:31:5:	class=0x010185 card=0x82771043 chip=0x29268086 rev=0x02 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82801I (ICH9 Family) 2 port SATA Controller [IDE mode]'
    class      = mass storage
    subclass   = ATA
    bar   [10] = type I/O Port, range 32, base rxb000, size 8, enabled
    bar   [14] = type I/O Port, range 32, base rxac00, size 4, enabled
    bar   [18] = type I/O Port, range 32, base rxa880, size 8, enabled
    bar   [1c] = type I/O Port, range 32, base rxa800, size 4, enabled
    bar   [20] = type I/O Port, range 32, base rxa480, size 16, enabled
    bar   [24] = type I/O Port, range 32, base rxa400, size 16, enabled
    cap 01[70] = powerspec 3  supports D0 D3  current D0
    cap 09[b0] = vendor (length 6) Intel cap 2 version 0
vgapci0@pci0:1:0:0:	class=0x030000 card=0x847c1043 chip=0x104a10de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'GF119 [GeForce GT 610]'
    class      = display
    subclass   = VGA
    bar   [10] = type Memory, range 32, base rxfd000000, size 16777216, enabled
    bar   [14] = type Prefetchable Memory, range 64, base rxf0000000, size 134217728, enabled
    bar   [1c] = type Prefetchable Memory, range 64, base rxf8000000, size 33554432, enabled
    bar   [24] = type I/O Port, range 32, base rxcc00, size 128, enabled
    cap 01[60] = powerspec 3  supports D0 D3  current D0
    cap 05[68] = MSI supports 1 message, 64 bit 
    cap 10[78] = PCI-Express 1 endpoint max data 128(128) RO NS link x16(x16)
                 speed 2.5(2.5) ASPM disabled(L0s/L1)
    cap 09[b4] = vendor (length 20)
    ecap 0002[100] = VC 1 max VC0
    ecap 0004[128] = Power Budgeting 1
    ecap 000b[600] = Vendor 1 ID 1
hdac0@pci0:1:0:1:	class=0x040300 card=0x847c1043 chip=0x0e0810de rev=0xa1 hdr=0x00
    vendor     = 'NVIDIA Corporation'
    device     = 'GF119 HDMI Audio Controller'
    class      = multimedia
    subclass   = HDA
    bar   [10] = type Memory, range 32, base rxfe7fc000, size 16384, enabled
    cap 01[60] = powerspec 3  supports D0 D3  current D0
    cap 05[68] = MSI supports 1 message, 64 bit enabled with 1 message
    cap 10[78] = PCI-Express 1 endpoint max data 128(128) RO NS link x16(x16)
                 speed 2.5(2.5) ASPM L0s/L1(L0s/L1)
em0@pci0:2:0:0:	class=0x020000 card=0x115f108e chip=0x105f8086 rev=0x06 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82571EB Gigabit Ethernet Controller'
    class      = network
    subclass   = ethernet
    bar   [10] = type Memory, range 32, base rxfe880000, size 131072, enabled
    bar   [14] = type Memory, range 32, base rxfe860000, size 131072, enabled
    bar   [18] = type I/O Port, range 32, base rxd880, size 32, enabled
    cap 01[c8] = powerspec 2  supports D0 D3  current D0
    cap 05[d0] = MSI supports 1 message, 64 bit enabled with 1 message
    cap 10[e0] = PCI-Express 1 endpoint max data 128(256) RO NS link x4(x4)
                 speed 2.5(2.5) ASPM disabled(L0s)
    ecap 0001[100] = AER 1 0 fatal 1 non-fatal 0 corrected
    ecap 0003[140] = Serial 1 001517ffff38a242
em1@pci0:2:0:1:	class=0x020000 card=0x115f108e chip=0x105f8086 rev=0x06 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82571EB Gigabit Ethernet Controller'
    class      = network
    subclass   = ethernet
    bar   [10] = type Memory, range 32, base rxfe8e0000, size 131072, enabled
    bar   [14] = type Memory, range 32, base rxfe8c0000, size 131072, enabled
    bar   [18] = type I/O Port, range 32, base rxdc00, size 32, enabled
    cap 01[c8] = powerspec 2  supports D0 D3  current D0
    cap 05[d0] = MSI supports 1 message, 64 bit enabled with 1 message
    cap 10[e0] = PCI-Express 1 endpoint max data 128(256) RO NS link x4(x4)
                 speed 2.5(2.5) ASPM disabled(L0s)
    ecap 0001[100] = AER 1 0 fatal 1 non-fatal 0 corrected
    ecap 0003[140] = Serial 1 001517ffff38a242
pcn0@pci0:3:1:0:	class=0x020000 card=0x27031259 chip=0x20001022 rev=0x54 hdr=0x00
    vendor     = 'Advanced Micro Devices, Inc. [AMD]'
    device     = '79c970 [PCnet32 LANCE]'
    class      = network
    subclass   = ethernet
    bar   [10] = type I/O Port, range 32, base rxec00, size 32, enabled
    bar   [14] = type Memory, range 32, base rxfebff000, size 4096, enabled
    cap 01[44] = powerspec 2  supports D0 D1 D2 D3  current D0
fxp0@pci0:3:2:0:	class=0x020000 card=0x00098086 chip=0x12298086 rev=0x05 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82557/8/9/0/1 Ethernet Pro 100'
    class      = network
    subclass   = ethernet
    bar   [10] = type Prefetchable Memory, range 32, base rxfbfff000, size 4096, enabled
    bar   [14] = type I/O Port, range 32, base rxe880, size 32, enabled
    bar   [18] = type Memory, range 32, base rxfea00000, size 1048576, enabled
    cap 01[dc] = powerspec 1  supports D0 D1 D2 D3  current D0

Since we see a pcn0 it seems (in my eyes at least, the may be wrong) that the driver detects the card. 
It just wont handle it right. If I understand the linux code, this nic must be set to 100FDX since a fibre adapter can't support anything else.
I did try ifconfig pcn0 media 100baseTX -mediaopt full-duplex
That gave an SIOCSIFMEDIA (media): Device not configured
Comment 4 Sean Bruno freebsd_committer 2016-04-20 16:27:55 UTC
(In reply to Mats from comment #3)
Hrm ... fiber eh?

what about using 100baseFX in the media type when you use ifconfig?

List the media types with an "ifconfig -m pcn0"

Maybe that will help us move forward.
Comment 5 Mats 2016-04-20 16:57:10 UTC
Brown paper bag in head-size ordered :)

I must have done something wrong yesterday then i tested ifconfig pcn0 media 100baseTX -mediaopt full-duplex because it worked today.

Big thanks to you Sean Bruno for the help. 
I'm very happy right now to get the card working. I do live far out on the countryside. My internet connection is DSL over arial wires so I do have some lightning problems. By Connecting my DSL modem to a fibre connector and then a Fibre cable to the now WORKING card I got a very effective protection. Sure, I may still loose the modem and the converter but I can buy that second hand for about $30. Thats a lot better than loosing a $2000 computer.

PS. Sorry for reporting a non bug. Ds
Comment 6 Sean Bruno freebsd_committer 2016-04-20 17:11:27 UTC
Groovy.  I'll close this out then.
Comment 7 Mats 2016-04-20 17:17:02 UTC
Yes Please.

The only improvement I can see is that it would be nice if the driver would set "media 100baseTX -mediaopt full-duplex" by default if it detects a fibre only card since a fibre card only can be full duplex and the don't support autospeed either.

But that's just a small improvement.