problem with bge nic.

John Baldwin jhb at freebsd.org
Wed Mar 21 15:46:41 UTC 2007


On Tuesday 13 March 2007 10:48:37 pm Jonas Andrén wrote:
> Hi,
> 
> I have a little problem, I just got a hold of an IBM NetXtreme Broadcom
> dualport NIC (5704C).
> But I cant get it to work in my freebsd-box, I don’t actually know if it is
> supposed to work in a 32-bit pci slot at all but I hope that maybe someone
> on this mailinglist can clear that up for me :).
> 
> I am running FreeBSD 6.2-RELEASE-p2.
> 
> I get this message in dmesg:
> bge0: <Broadcom BCM5704 B0, ASIC rev. 0x2100> mem 0xdf010000-0xdf01ffff irq
> 16 at device 11.0 on pci2
> bge0: Reserved 0x10000 bytes for rid 0x10 type 3 at 0xdf010000
> bge0: firmware handshake timed out
> bge0: firmware handshake timed out
> bge0: RX CPU self-diagnostics failed!
> bge0: chip initialization failed
> device_attach: bge0 attach returned 6
> 
> and it doesent even seem to find the second port of the NIC, atleast it
> doesent recognice it as an Broadcom device but rather an Ethernet
> controller: VSN Systemen BV Unknown device 1648 (rev 10) (prog-if 01).
> 
> Can someone bring some light to this problem?

Try the driver from RELENG_6.  Your second adapter has a hardware issue though 
(or maybe your motherboard does, try moving it to another slot maybe) as it 
has a couple of single-bit errors in the config space stuff which is why it 
wasn't probed and had a weird vendor:

> pci2: physical bus=2
> found-> vendor=0x14e4, dev=0x1648, revid=0x10
>         bus=2, slot=11, func=0
>         class=02-00-00, hdrtype=0x00, mfdev=1
>         cmdreg=0x0006, statreg=0x82b0, cachelnsz=8 (dwords)
>         lattimer=0x20 (960 ns), mingnt=0x40 (16000 ns), maxlat=0x00 (0 ns)
>         intpin=b, irq=10
>         powerspec 2  supports D0 D3  current D0
>         MSI supports 8 messages, 64 bit
>         map[10]: type 1, range 64, base df010000, size 16, enabled
> pcib2: (null) requested memory range 0xdf010000-0xdf01ffff: good
> pcib2: matched entry for 2.11.INTB
> pcib2: slot 11 INTB hardwired to IRQ 16
> found-> vendor=0x15e4, dev=0x1648, revid=0x10
>         bus=2, slot=11, func=1
>         class=02-00-01, hdrtype=0x00, mfdev=1
>         cmdreg=0x0106, statreg=0x82b0, cachelnsz=8 (dwords)
>         lattimer=0x21 (990 ns), mingnt=0x40 (16000 ns), maxlat=0x00 (0 ns)
>         intpin=c, irq=16
>         map[10]: type 1, range 64, base df010100, size  8, enabled
> pcib2: (null) requested memory range 0xdf010100-0xdf0101ff: good
>         map[18]: type 1, range 32, base 00000100, size  8, enabled
>         map[1c]: type 1, range 32, base 00000100, size  8, enabled
>         map[20]: type 1, range 32, base 00000100, size  8, enabled
>         map[24]: type 1, range 32, base 00000100, size  8, enabled
> pcib2: matched entry for 2.11.INTC
> pcib2: slot 11 INTC hardwired to IRQ 17

Note when comparing these two entries that you have a vendor of 0x15e4 rather 
than 0x14e4 (so 0x100 was set when it should have been clear).  The BARs also 
have 0x100 set when it should have been clear.  The cmdreg and lattimer regs 
also have the extra bit set.

-- 
John Baldwin


More information about the freebsd-drivers mailing list