Date: Tue, 2 Dec 2008 00:50:07 +0000 From: Andrew <andrewwtulloch@gmail.com> To: pyunyh@gmail.com Cc: freebsd-net@freebsd.org Subject: Re: re0: Unknown H/W revision: 0x28000000 device_attach: re0 attach returned 6 Message-ID: <54854a7a0812011650i345884f5t257c066604d42e65@mail.gmail.com> In-Reply-To: <20081201043218.GB1082@cdnetworks.co.kr> References: <54854a7a0811291918s7affc753k998607f2529e7c2e@mail.gmail.com> <20081201043218.GB1082@cdnetworks.co.kr>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
2008/12/1 Pyun YongHyeon <pyunyh@gmail.com>:
> On Sun, Nov 30, 2008 at 03:18:41AM +0000, Andrew Tulloch wrote:
> > I've just installed from the FreeBSD 7.1-BETA1 iso and get the
> > following when the re driver attempts to attach to the two onboard
> > NICs found on a Gigabyte GA-EX58-UD5 motherboard:
> >
> > re0: <RealTek 8168/8168B/8168C/8168CP/8111B/8111C/8111CP PCIe Gigabit
> > Ethernet> port 0x9e00-0x9eff mem
> > 0xfd3ff000-0xfd3fffff,0xfd3f8000-0xfd3fbfff irq 16 at device 0.0 on
> > pci8
> > re0: Chip rev. 0x28000000
> > re0: MAC rev. 0x00100000
> > re0: Unknown H/W revision: 0x28000000
> > device_attach: re0 attach returned 6
> > pcib9: <ACPI PCI-PCI bridge> irq 17 at device 28.5 on pci0
> > pci9: <ACPI PCI bus> on pcib9
> > re1: <RealTek 8168/8168B/8168C/8168CP/8111B/8111C/8111CP PCIe Gigabit
> > Ethernet> port 0x8e00-0x8eff mem
> > 0xfd1ff000-0xfd1fffff,0xfd1f8000-0xfd1fbfff irq 17 at device 0.0 on
> > pci9
> > re1: Chip rev. 0x28000000
> > re1: MAC rev. 0x00100000
> > re1: Unknown H/W revision: 0x28000000
> > device_attach: re1 attach returned 6
> >
> > pciconf -lvc extract:
> > re0@pci0:8:0:0: class=0x020000 card=0xe0001458 chip=0x816810ec rev=0x03 hdr=0x00
> > vendor = 'Realtek Semiconductor'
> > device = 'RTL8168/8111 PCI-E Gigabit Ethernet NIC'
> > class = network
> > subclass = ethernet
> > cap 01[40] = powerspec 3 supports D0 D1 D2 D3 current D0
> > cap 05[50] = MSI supports 1 message, 64 bit
> > cap 10[70] = PCI-Express 2 endpoint IRQ 0
> > cap 11[ac] = MSI-X supports 4 messages in map 0x20
> > cap 03[cc] = VPD
> > re1@pci0:9:0:0: class=0x020000 card=0xe0001458 chip=0x816810ec rev=0x03 hdr=0x00
> > vendor = 'Realtek Semiconductor'
> > device = 'RTL8168/8111 PCI-E Gigabit Ethernet NIC'
> > class = network
> > subclass = ethernet
> > cap 01[40] = powerspec 3 supports D0 D1 D2 D3 current D0
> > cap 05[50] = MSI supports 1 message, 64 bit
> > cap 10[70] = PCI-Express 2 endpoint IRQ 0
> > cap 11[ac] = MSI-X supports 4 messages in map 0x20
> > cap 03[cc] = VPD
> >
> >
> > Is there any simple patch I can apply to get the driver to attach,
> > assuming it should work?
> >
>
> This controller seems to support MSI-X with 4 messages.
> Unfortunately previous PCIe controllers from RealTek were notorious
> for MSI issues so it's hard to know this revision really works with
> MSI-X. I guess it was added to support RSS(receive-side scaling of
> MS NDIS 6.0).
> As sephe said if the controller configuration is the same as 8168C
> family, the attached patch would make re(4) work as expected.
>
> --
> Regards,
> Pyun YongHyeon
>
Pyun,
I applied the patch, but it didn't attach initially, I added an extra
entry to re_hwrevs as that seemed to be what was missing and it
attached and seems to function (as far as a quick ping test and make
update). Changes I made to if_re.c attached. If you have anything to
try for MSI-X I can probably test those.
Thanks,
Andrew
[-- Attachment #2 --]
--- if_re.c.orig 2008-09-19 04:36:53.000000000 +0100
+++ if_re.c 2008-12-02 00:11:04.000000000 +0000
@@ -172,7 +172,7 @@
{ RT_VENDORID, RT_DEVICEID_8101E, 0,
"RealTek 8101E/8102E/8102EL PCIe 10/100baseTX" },
{ RT_VENDORID, RT_DEVICEID_8168, 0,
- "RealTek 8168/8168B/8168C/8168CP/8111B/8111C/8111CP PCIe "
+ "RealTek 8168/8168B/8168C/8168CP/8168D/8111B/8111C/8111CP PCIe "
"Gigabit Ethernet" },
{ RT_VENDORID, RT_DEVICEID_8169, 0,
"RealTek 8169/8169S/8169SB(L)/8110S/8110SB(L) Gigabit Ethernet" },
@@ -213,6 +213,7 @@
{ RL_HWREV_8168C, RL_8169, "8168C/8111C"},
{ RL_HWREV_8168C_SPIN2, RL_8169, "8168C/8111C"},
{ RL_HWREV_8168CP, RL_8169, "8168CP/8111CP"},
+ { RL_HWREV_8168D, RL_8169, "8168D"},
{ 0, 0, NULL }
};
@@ -1225,6 +1226,7 @@
case RL_HWREV_8168C:
case RL_HWREV_8168C_SPIN2:
case RL_HWREV_8168CP:
+ case RL_HWREV_8168D:
sc->rl_flags |= RL_FLAG_INVMAR | RL_FLAG_PHYWAKE |
RL_FLAG_PAR | RL_FLAG_DESCV2 | RL_FLAG_MACSTAT;
/*
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54854a7a0812011650i345884f5t257c066604d42e65>
