Aw: Re: Re: Realtek 8168/8111 if_re not working in current r295091

From: Stefan Kohl <freebsd_at_go4more.de>
Date: Sat, 13 Feb 2016 21:21:06 +0100
Hi Marius,

I finally got my RT 8168 Ethernet Card (Zotac Ri323) working after
patching if_re.c (r295601). Contrary to the assumption that
HWREV_8168E_VL with Chip Rev 0x2c800000 should not require RTL8168G
handling as soon as I expand the sc->rl_flags for the respective
HWREV and define the (ominous) 8168G_Plus Flag for RL_HWREV_8168E_VL
the card is functioning correctly.

/usr/src/sys/dev/re # svn diff if_re.c
Index: if_re.c
===================================================================
--- if_re.c	(revision 295601)
+++ if_re.c	(working copy)
_at__at_ -1473,6 +1473,8 _at__at_
 		    RL_FLAG_WOL_MANLINK;
 		break;
 	case RL_HWREV_8168E_VL:
+		sc->rl_flags |= RL_FLAG_8168G_PLUS;
+		/* FALLTHROUGH */
 	case RL_HWREV_8168F:
 		sc->rl_flags |= RL_FLAG_EARLYOFF;
 		/* FALLTHROUGH */

My system: FreeBSD kartal.net.hayat 11.0-CURRENT FreeBSD 11.0-CURRENT #0
r295601: Sat Feb 13 19:11:05 CET 2016
root_at_kartal.net.hayat:/usr/obj/usr/src/sys/KARTAL  amd64

When broken (without the patch) I got the following tcpdump output:

19:18:46.299360 00:00:00:00:00:00 (oui Ethernet) > 00:00:00:00:00:00
(oui Ethernet) Null Information, send seq 0, rcv seq 0, Flags [Command],
length 84

Regards, Stefan

Gesendet: Freitag, 05. Februar 2016 um 22:29 Uhr
Von: "Marius Strobl" <marius_at_alchemy.franken.de>
An: s.o.k_at_web.de
Cc: pyunyh_at_gmail.com, freebsd-current_at_freebsd.org
Betreff: Re: Re: Realtek 8168/8111 if_re not working in current r295091
On Fri, Feb 05, 2016 at 09:04:02PM +0100, s.o.k_at_web.de wrote:
> Hi Marius and Pyun,
>
> actually it is Chip rev. 0x2c800000 (I have overlooked that information in my first post)
>
> re0: <RealTek 8168/8111 B/C/CP/D/DP/E/F/G PCIe Gigabit Ethernet> port 0xe000-0xe0ff mem 0xf0104000-0xf0104fff,0xf0100000-0xf0103fff irq 19 at device 0.0 on pci2
> re0: Using 1 MSI-X message
> re0: turning off MSI enable bit.
> re0: Chip rev. 0x2c800000
> re0: MAC rev. 0x00100000
> miibus0: <MII bus> on re0
> rgephy0: <RTL8169S/8110S/8211 1000BASE-T media interface> PHY 1 on miibus0
>
> Does that help in any way? Thanks Stefan
>

Unfortunately, it doesn't make a whole lot of sense to me; 0x2c800000
translates to RL_HWREV_8168E_VL, which is an older chip that should
never have required the handling of RTL8168G and later revisions (or
may not actually work when applying it). So r290566 should only make
a positive difference, if it changes anyting for that revision all.
Did the interface work before r290151, or actually before r281337?
Does reverting r290946 and r290566 locally make it work again?
Another candidate causing that breakage would be r291676 if the PHY
is an RTL8211F one. If you boot verbosely, you'll have a line in the
dmesg(8) output with "OUI 0x00e04c" in it. If the "rev." number in
that line is 6, you have an RTL8211F.

Marius

_______________________________________________
freebsd-current_at_freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
Received on Sat Feb 13 2016 - 19:21:23 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:02 UTC