Re: rge(4) RTL8126 simple testing

From: Sean C. Farley <scf_at_FreeBSD.org>
Date: Wed, 04 Mar 2026 21:02:37 UTC
On Sat, 28 Feb 2026, Sean C. Farley wrote:

> I recently upgraded my home network using a few BrosTrend 5Gb cards 
> (RTL8126) with 14-STABLE (1eb2beb3686c) and the latest commit 
> (3170b35) to the GitHub repo for if_rge.  It was either these cards or 
> a couple of Intel X550-T2 cards, but less power and less heat were the 
> deciding factors.
>
> For the most part, they seem to work very well, except that they 
> cannot negotiate a 2500Base-T connection.  They can negotiate 
> 1000baseT and 5000Base-T.  This was with two different cards 
> connecting to two different devices.  If manually set, they will try 
> for awhile than fall-back to 1000baseT.
>
> One other oddity is that rge0 has "ClockPM disabled", but I have not 
> looked into that.
>
> The networking hardware:
> - 3 BrosTrend 5Gb NIC's[1]  (5Gb)
> - Zyxel NWA130BE[2]  (2.5Gb port)
> - TRENDnet TEG-S591[3]  (connected the NIC to its 10Gb port)
> - Nokia ONT XS-010X-Q[4]  (10Gb port)
>
> ifconfig:
> rge0: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 
> mtu 1500
> 	options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
> 	capabilities=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
>        media: Ethernet autoselect (5000Base-T <full-duplex>)
> 	status: active
> 	supported media:
> 		media autoselect
> 		media 5000Base-T mediaopt full-duplex
> 		media 5000Base-T
> 		media 2500Base-T mediaopt full-duplex
> 		media 2500Base-T
> 		media 1000baseT mediaopt full-duplex
> 		media 1000baseT
> 		media 100baseTX mediaopt full-duplex
> 		media 100baseTX
> 		media 10baseT/UTP mediaopt full-duplex
> 		media 10baseT/UTP
> 	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
> 	drivername: rge0
> rge1: flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP> 
> metric 0 mtu 1500
> 	options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
> 	capabilities=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
> 	media: Ethernet autoselect (5000Base-T <full-duplex>)
> 	status: active
> 	supported media:
> 		media autoselect
> 		media 5000Base-T mediaopt full-duplex
> 		media 5000Base-T
> 		media 2500Base-T mediaopt full-duplex
> 		media 2500Base-T
> 		media 1000baseT mediaopt full-duplex
> 		media 1000baseT
> 		media 100baseTX mediaopt full-duplex
> 		media 100baseTX
> 		media 10baseT/UTP mediaopt full-duplex
> 		media 10baseT/UTP
> 	nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL>
> 	drivername: rge1
> rge2: flags=1008943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST,LOWER_UP> 
> metric 0 mtu 1500
> 	options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
> 	capabilities=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
> 	media: Ethernet Other (1000baseT <full-duplex>)
> 	status: active
> 	supported media:
> 		media autoselect
> 		media 5000Base-T mediaopt full-duplex
> 		media 5000Base-T
> 		media 2500Base-T mediaopt full-duplex
> 		media 2500Base-T
> 		media 1000baseT mediaopt full-duplex
> 		media 1000baseT
> 		media 100baseTX mediaopt full-duplex
> 		media 100baseTX
> 		media 10baseT/UTP mediaopt full-duplex
> 		media 10baseT/UTP
> 	nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
> 	drivername: rge2
>
> pciconf:
> rge0@pci0:1:0:0:	class=0x020000 rev=0x01 hdr=0x00 vendor=0x10ec 
> device=0x8126 subvendor=0x10ec subdevice=0x0123
>    vendor     = 'Realtek Semiconductor Co., Ltd.'
>    device     = 'RTL8126 5GbE Controller'
>    class      = network
>    subclass   = ethernet
>    bar   [10] = type I/O Port, range 32, base 0xe000, size 256, enabled
>    bar   [18] = type Memory, range 64, base 0xf7600000, size 65536, enabled
>    bar   [20] = type Memory, range 64, base 0xf7610000, size 16384, enabled
>    cap 01[40] = powerspec 3  supports D0 D1 D2 D3  current D0
>    cap 05[50] = MSI supports 1 message, 64 bit, vector masks enabled with 1 
> message
>    cap 10[70] = PCI-Express 2 endpoint MSI 1 max data 256(512) RO
>                 max read 512
>                 link x1(x1) speed 8.0(8.0) ASPM disabled(L0s/L1) ClockPM 
> disabled
>    cap 11[b0] = MSI-X supports 32 messages
>                 Table in map 0x20[0x0], PBA in map 0x20[0x800]
>    cap 03[d0] = VPD
>    ecap 0001[100] = AER 2 0 fatal 0 non-fatal 1 corrected
>    ecap 0002[148] = VC 1 max VC0
>    ecap 0003[170] = Serial 1 01000000684ce000
>    ecap 0019[180] = PCIe Sec 1 lane errors 0
>    ecap 0017[190] = TPH Requester 1
>    ecap 0018[21c] = LTR 1
>    ecap 001e[224] = L1 PM Substates 1
>    ecap 000b[234] = Vendor [1] ID 0002 Rev 4 Length 256
> rge1@pci0:4:0:0:	class=0x020000 rev=0x01 hdr=0x00 vendor=0x10ec 
> device=0x8126 subvendor=0x10ec subdevice=0x0123
>    vendor     = 'Realtek Semiconductor Co., Ltd.'
>    device     = 'RTL8126 5GbE Controller'
>    class      = network
>    subclass   = ethernet
>    bar   [10] = type I/O Port, range 32, base 0xd000, size 256, enabled
>    bar   [18] = type Memory, range 64, base 0xf7500000, size 65536, enabled
>    bar   [20] = type Memory, range 64, base 0xf7510000, size 16384, enabled
>    cap 01[40] = powerspec 3  supports D0 D1 D2 D3  current D0
>    cap 05[50] = MSI supports 1 message, 64 bit, vector masks enabled with 1 
> message
>    cap 10[70] = PCI-Express 2 endpoint MSI 1 max data 256(512) RO
>                 max read 512
>                 link x1(x1) speed 8.0(8.0) ASPM disabled(L0s/L1) ClockPM 
> enabled
>    cap 11[b0] = MSI-X supports 32 messages
>                 Table in map 0x20[0x0], PBA in map 0x20[0x800]
>    cap 03[d0] = VPD
>    ecap 0001[100] = AER 2 0 fatal 0 non-fatal 0 corrected
>    ecap 0002[148] = VC 1 max VC0
>    ecap 0003[170] = Serial 1 01000000684ce000
>    ecap 0019[180] = PCIe Sec 1 lane errors 0
>    ecap 0017[190] = TPH Requester 1
>    ecap 0018[21c] = LTR 1
>    ecap 001e[224] = L1 PM Substates 1
>    ecap 000b[234] = Vendor [1] ID 0002 Rev 4 Length 256
> rge2@pci0:5:0:0:	class=0x020000 rev=0x01 hdr=0x00 vendor=0x10ec 
> device=0x8126 subvendor=0x10ec subdevice=0x0123
>    vendor     = 'Realtek Semiconductor Co., Ltd.'
>    device     = 'RTL8126 5GbE Controller'
>    class      = network
>    subclass   = ethernet
>    bar   [10] = type I/O Port, range 32, base 0xc000, size 256, enabled
>    bar   [18] = type Memory, range 64, base 0xf7400000, size 65536, enabled
>    bar   [20] = type Memory, range 64, base 0xf7410000, size 16384, enabled
>    cap 01[40] = powerspec 3  supports D0 D1 D2 D3  current D0
>    cap 05[50] = MSI supports 1 message, 64 bit, vector masks enabled with 1 
> message
>    cap 10[70] = PCI-Express 2 endpoint MSI 1 max data 256(512) RO
>                 max read 512
>                 link x1(x1) speed 8.0(8.0) ASPM disabled(L0s/L1) ClockPM 
> enabled
>    cap 11[b0] = MSI-X supports 32 messages
>                 Table in map 0x20[0x0], PBA in map 0x20[0x800]
>    cap 03[d0] = VPD
>    ecap 0001[100] = AER 2 0 fatal 0 non-fatal 0 corrected
>    ecap 0002[148] = VC 1 max VC0
>    ecap 0003[170] = Serial 1 01000000684ce000
>    ecap 0019[180] = PCIe Sec 1 lane errors 0
>    ecap 0017[190] = TPH Requester 1
>    ecap 0018[21c] = LTR 1
>    ecap 001e[224] = L1 PM Substates 1
>    ecap 000b[234] = Vendor [1] ID 0002 Rev 4 Length 256
>
> Sean
>  1. https://www.brostrend.com/products/p2
>  2. https://www.zyxel.com/us/en-us/products/wireless/be11000-6-stream-wifi-7-triple-radio-nebulaflex-access-point-nwa130be
>  3. https://www.trendnet.com/products/2_5g-10g-switches/9-port-multi-gig-switch-TEG-S591-v1
>  4. https://www.nokia.com/asset/210704/

I have spent awhile trying different things yet cannot get these to work 
at 2.5G.  The Realtek vendor driver cannot negotiate at 2.5G nor can 
Linux 6.18 (Arch Linux).

Important details:
- FreeBSD dmesg chip rev: RTL8126_2 (0x64a00000)
- Forcing them to advertise only at 2.5G on Linux using ethtool results
   in the NIC never connecting to the link partner.
- Register dump from ethtool shows an interesting message:
   Unknown RealTek chip (TxConfig: 0x67a00f00)
- lspci snippets:
   05:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8126 5GbE Controller [10ec:8126] (rev 01)
         Subsystem: Realtek Semiconductor Co., Ltd. Device [10ec:0123]
   ...

   05:00.0 0200: 10ec:8126 (rev 01)
         Subsystem: 10ec:0123
         Flags: bus master, fast devsel, latency 0, IRQ 19
         I/O ports at c000 [size=256]
         Memory at f7400000 (64-bit, non-prefetchable) [size=64K]
         Memory at f7410000 (64-bit, non-prefetchable) [size=16K]
         Capabilities: [40] Power Management version 3
         Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
         Capabilities: [70] Express Endpoint, IntMsgNum 1
         Capabilities: [b0] MSI-X: Enable+ Count=32 Masked-
         Capabilities: [d0] Vital Product Data
         Capabilities: [100] Advanced Error Reporting
         Capabilities: [148] Virtual Channel
         Capabilities: [170] Device Serial Number 01-00-00-00-68-4c-e0-00
         Capabilities: [180] Secondary PCI Express
         Capabilities: [190] Transaction Processing Hints
         Capabilities: [21c] Latency Tolerance Reporting
         Capabilities: [224] L1 PM Substates
         Capabilities: [234] Vendor Specific Information: ID=0002 Rev=4 Len=100 <?>
         Kernel driver in use: r8169
         Kernel modules: r8169
- ethtool shows that the NIC claims to support and advertise
   2500baseT/Full while the Link partner advertises it too.

Do these cards need more handling in the driver?  Can anyone report the 
RTL8126_2 as working for them at all supported speeds (at least 1G and 
above)?  Is there anything else I can get developers from these NICs?

Sadly, I am out of ideas.  I am currently within the 30-day return so 
have to consider that.  Otherwise, I do like them.

Sean
-- 
scf@FreeBSD.org