amd64/186401: Problem with RTL8111/8168B initialization
marcinkk at gmail.com
Mon Feb 3 08:20:00 UTC 2014
>Synopsis: Problem with RTL8111/8168B initialization
>Arrival-Date: Mon Feb 03 08:20:00 UTC 2014
>Originator: Marcin Kucharczyk
>Release: FreeBSD 10.0 RELEASE amd64
Silesian University of Technology
FreeBSD sklab-xx 10.0-RELEASE FreeBSD 10.0-RELEASE #0 r260789: Thu Jan 16 22:34:59 UTC 2014 root at snap.freebsd.org:/usr/obj/usr/src/sys/GENERIC amd64
The problem is described there: https://forums.freebsd.org/viewtopic.php?f=32&t=22664&p=248509#p248509. I don't know if I can use formating here. The answer on forum sugessts filling bug report, so I've done it.
I've installed FreeBSD 10.0 RELEASE amd64 on new machine: MSI B85M-G43 (MS-7823).
With the following line in rc.conf:
the Realtek NIC was detected and re(4) driver was initialized but the card can't get IP configuration from DHCP. After boot I can see in ifconfig re0:
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
media: Ethernet autoselect (1000baseT <full-duplex,master>)
The card doesn't have IP and doesn't work. I've tried set IP manually but it didn't help. After reading the posts in mentioned topic I've tried some options. I've logged to the system and make the command ifconfig re0 tso and the card gets IP in few seconds and everything worked fine. So I've changed rc.conf to:
But it didn't help. And I've noticed that any change in one of the 3 parameters suggested on forum to turn off earlier: tso, rxcsum, txcsum changed after login makes the NIC working: ifconfig re0 -rxcsum or ifconfig re0 -txcsum helps too. It could be also -rxcsum inf rc.conf and ifconfig re0 rxcsum after login. And so on...
re0 at pci0:2:0:0: class=0x020000 card=0x78231462 chip=0x816810ec rev=0x0c hdr=0x00
vendor = 'Realtek Semiconductor Co., Ltd.'
device = 'RTL8111/8168B PCI Express Gigabit Ethernet controller'
class = network
subclass = ethernet
bar  = type I/O Port, range 32, base 0xe000, size 256, enabled
bar  = type Memory, range 64, base 0xf7c00000, size 4096, enabled
bar  = type Prefetchable Memory, range 64, base 0xf0000000, size 16384, enabled
cap 01 = powerspec 3 supports D0 D1 D2 D3 current D0
cap 05 = MSI supports 1 message, 64 bit
cap 10 = PCI-Express 2 endpoint IRQ 1 max data 128(128) link x1(x1)
speed 2.5(2.5) ASPM disabled(L0s/L1)
cap 11[b0] = MSI-X supports 4 messages, enabled
Table in map 0x20[0x0], PBA in map 0x20[0x800]
cap 03[d0] = VPD
ecap 0001 = AER 1 0 fatal 0 non-fatal 0 corrected
ecap 0002 = VC 1 max VC0
ecap 0003 = Serial 1 01000000684ce000
ecap 0018 = LTR 1
So I made a little workaround putting to /etc/rc.local line:
/sbin/ifconfig re0 tso
And I still have problems on start with the initial communication with DHCP but the interface wakes up after rc.local file is processed and seems to work properly afterwards.
The rc.conf has only:
How to make it better? Is there a problem with driver initialization?
PS. I've had the same problem while trying to install. The system was installed using USB->Ethernet adapter.
Boot the system from CD on the MSI B85M-G43 (MS-7823) motherboard...
Change one of the tso, rxcsum and txcsum parameters for the re0 interface after booting. Maybe any change of the possible interface parameters?
More information about the freebsd-amd64