Hi there, I'm using a bunch of Portwell SBCs with five onboard Realtek 8139C+ NICs. Currently they're running 5.0 kernels from around April, 2003 and the NICs are driven by rl(4). Since then the 8139C+ was moved to re(4). re(4) doesn't like the chips, though. pciconf -lv output: re0_at_pci0:9:0: class=0x020000 card=0x813910ec chip=0x813910ec rev=0x20 hdr=0x00 vendor = 'Realtek Semiconductor' device = 'RT8139 (A/B/C/813x/C+) Fast Ethernet Adapter' class = network subclass = ethernet dmesg output: re0: <RealTek 8139C+ 10/100BaseTX> port 0xdc00-0xdcff mem 0xe3400000-0xe34000ff irq 11 at device 9.0 on pci0 re0: Ethernet address: 00:90:fb:04:1b:31 re0: diagnostic failed, failed to receive packet in loopback mode re0: attach aborted due to hardware diag failure device_attach: re0 attach returned 5 It seems that the 8169-specific hardware diagnostic (re_diag(sc)) should only carried out for chips being identified as 8169 based. I did this trivial patch (v 1.24): gate# diff -C2 if_re.c.sav if_re.c *** if_re.c.sav Thu Jun 17 17:08:48 2004 --- if_re.c Thu Jun 17 17:09:58 2004 *************** *** 1277,1287 **** /* Perform hardware diagnostic. */ ! error = re_diag(sc); ! if (error) { ! printf("re%d: attach aborted due to hardware diag failure\n", ! unit); ! ether_ifdetach(ifp); ! goto fail; } --- 1277,1289 ---- /* Perform hardware diagnostic. */ ! if (sc->rl_type == RL_8169) { ! error = re_diag(sc); ! if (error) { ! printf("re%d: attach aborted due to hardware diag failure\n", ! unit); ! ether_ifdetach(ifp); ! goto fail; ! } } The neat result: gate# kldload ./if_re.ko re0: <RealTek 8139C+ 10/100BaseTX> port 0xdc00-0xdcff mem 0xe3400000-0xe34000ff irq 11 at device 9.0 on pci0 re0: Ethernet address: 00:90:fb:04:1b:31 re0: [GIANT-LOCKED] [... same for the other four nics ...] I see no ill effects so far. -AndreasReceived on Thu Jun 17 2004 - 14:29:31 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:57 UTC