<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/sys/dev/rge, branch main</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>rge: fix multicast add/removal by using if_getdrvflags()</title>
<updated>2026-07-12T15:26:46+00:00</updated>
<author>
<name>Adrian Chadd</name>
<email>adrian@FreeBSD.org</email>
</author>
<published>2026-07-12T15:26:46+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=7aa34e12c9e198bf8b7e74370ff702def5ec2649'/>
<id>7aa34e12c9e198bf8b7e74370ff702def5ec2649</id>
<content type='text'>
Using if_getflags() to check IFF_DRV_RUNNING is wrong;
if_getdrvflags() is required.  This issue resulted in the
multicast filter not being updated.

This was an oversight by me in my initial port.

Thanks to danilo@ for reporting it and Oleg &lt;oleglelchuk@gmail.com&gt;
for the fix.

PR: kern/295176
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Using if_getflags() to check IFF_DRV_RUNNING is wrong;
if_getdrvflags() is required.  This issue resulted in the
multicast filter not being updated.

This was an oversight by me in my initial port.

Thanks to danilo@ for reporting it and Oleg &lt;oleglelchuk@gmail.com&gt;
for the fix.

PR: kern/295176
</pre>
</div>
</content>
</entry>
<entry>
<title>rge: Fix 32-bit powerpc build</title>
<updated>2026-07-01T02:41:56+00:00</updated>
<author>
<name>Justin Hibbits</name>
<email>jhibbits@FreeBSD.org</email>
</author>
<published>2026-07-01T02:30:24+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=2b5d1d8e298b2f5aff68fd5106d9b09d59fda907'/>
<id>2b5d1d8e298b2f5aff68fd5106d9b09d59fda907</id>
<content type='text'>
Book-E powerpc has 64-bit bus_addr_t but only a 32-bit bus_size_t.  Use
the right macros for maxsize and maxsegsize to fix the build.

Fixes:	4bf8ce037 ("if_rge: initial import of if_rge driver from OpenBSD.")
Reviewed by:	adrian
Differential Revision:	https://reviews.freebsd.org/D57794
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Book-E powerpc has 64-bit bus_addr_t but only a 32-bit bus_size_t.  Use
the right macros for maxsize and maxsegsize to fix the build.

Fixes:	4bf8ce037 ("if_rge: initial import of if_rge driver from OpenBSD.")
Reviewed by:	adrian
Differential Revision:	https://reviews.freebsd.org/D57794
</pre>
</div>
</content>
</entry>
<entry>
<title>rge: fix VLAN hardware tagging</title>
<updated>2026-06-16T13:11:14+00:00</updated>
<author>
<name>John</name>
<email>john@cybersashi.com</email>
</author>
<published>2026-06-16T13:06:40+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=76f9bb488e77ae4cc220b0bbbc53f1a7315ef977'/>
<id>76f9bb488e77ae4cc220b0bbbc53f1a7315ef977</id>
<content type='text'>
Set the correct value in the TX descriptor for the vlan header.

PR: kern/295175
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Set the correct value in the TX descriptor for the vlan header.

PR: kern/295175
</pre>
</div>
</content>
</entry>
<entry>
<title>rge: add the Intel Killer E5000 PCI ID</title>
<updated>2026-05-11T15:26:03+00:00</updated>
<author>
<name>Kyle Evans</name>
<email>kevans@FreeBSD.org</email>
</author>
<published>2026-05-11T15:26:03+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=92f623e4a98876c897669be0f1220887c996918e'/>
<id>92f623e4a98876c897669be0f1220887c996918e</id>
<content type='text'>
This and the E3000 are both handled by the r8169 driver in Linux, and
reportedly this is infact just a straight re-brand of the RTL8126.

Tested by:	"Sinetek" on Discord
Reviewed by:	adrian
Differential Revision:	https://reviews.freebsd.org/D56917
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This and the E3000 are both handled by the r8169 driver in Linux, and
reportedly this is infact just a straight re-brand of the RTL8126.

Tested by:	"Sinetek" on Discord
Reviewed by:	adrian
Differential Revision:	https://reviews.freebsd.org/D56917
</pre>
</div>
</content>
</entry>
<entry>
<title>rge: add disable_aspm tunable for PCIe power management</title>
<updated>2026-04-17T02:34:55+00:00</updated>
<author>
<name>Christos Longros</name>
<email>chris.longros@gmail.com</email>
</author>
<published>2026-04-17T02:34:55+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=4390c37b5c94b6de4cb4bdbcc3967efe74fa7517'/>
<id>4390c37b5c94b6de4cb4bdbcc3967efe74fa7517</id>
<content type='text'>
Add a per-interface loader tunable dev.rge.%d.disable_aspm to
disable PCIe ASPM (L0s/L1) and ECPM on the RTL8125/8126/8127.

Disabling ASPM reduces latency at the cost of higher power
consumption. Default is off (ASPM left as configured by BIOS).

Signed-off-by: Christos Longros &lt;chris.longros@gmail.com&gt;

Reviewed by:	adrian
Differential Revision:	https://reviews.freebsd.org/D56103
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add a per-interface loader tunable dev.rge.%d.disable_aspm to
disable PCIe ASPM (L0s/L1) and ECPM on the RTL8125/8126/8127.

Disabling ASPM reduces latency at the cost of higher power
consumption. Default is off (ASPM left as configured by BIOS).

Signed-off-by: Christos Longros &lt;chris.longros@gmail.com&gt;

Reviewed by:	adrian
Differential Revision:	https://reviews.freebsd.org/D56103
</pre>
</div>
</content>
</entry>
<entry>
<title>rge: add Wake-on-LAN support for magic packet</title>
<updated>2026-04-10T17:31:38+00:00</updated>
<author>
<name>Christos Longros</name>
<email>chris.longros@gmail.com</email>
</author>
<published>2026-04-10T17:31:38+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=fc68534a9ad93f6df1756ffa8e707c30a35ce4d7'/>
<id>fc68534a9ad93f6df1756ffa8e707c30a35ce4d7</id>
<content type='text'>
Advertise IFCAP_WOL_MAGIC when PCI power management is available
and enable it by default.  On suspend or shutdown, rge_setwol()
enables the WOL_MAGIC and WOL_LANWAKE bits in CFG3/CFG5, disables
the RXDV gate, and enables PM so the NIC stays powered to watch
for magic packets.

Move hardware-specific WOL register configuration into
rge_wol_config() in if_rge_hw.c to keep hardware-specific
functions in sync with OpenBSD.

Update rge.4 to document WoL support.

Tested on FreeBSD 16.0-CURRENT bare metal with Realtek RTL8125
on a Gigabyte B650 Gaming X AX motherboard.

Signed-off-by: Christos Longros &lt;chris.longros@gmail.com&gt;

Reviewed by:	adrian
Differential Revision:	https://reviews.freebsd.org/D56259
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Advertise IFCAP_WOL_MAGIC when PCI power management is available
and enable it by default.  On suspend or shutdown, rge_setwol()
enables the WOL_MAGIC and WOL_LANWAKE bits in CFG3/CFG5, disables
the RXDV gate, and enables PM so the NIC stays powered to watch
for magic packets.

Move hardware-specific WOL register configuration into
rge_wol_config() in if_rge_hw.c to keep hardware-specific
functions in sync with OpenBSD.

Update rge.4 to document WoL support.

Tested on FreeBSD 16.0-CURRENT bare metal with Realtek RTL8125
on a Gigabyte B650 Gaming X AX motherboard.

Signed-off-by: Christos Longros &lt;chris.longros@gmail.com&gt;

Reviewed by:	adrian
Differential Revision:	https://reviews.freebsd.org/D56259
</pre>
</div>
</content>
</entry>
<entry>
<title>rge: make rx_process_limit a sysctl tunable</title>
<updated>2026-03-25T01:27:14+00:00</updated>
<author>
<name>Christos Longros</name>
<email>chris.longros@gmail.com</email>
</author>
<published>2026-03-25T01:27:14+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=930a790c2abb3680a3449a1f9ce2eff2be7acc36'/>
<id>930a790c2abb3680a3449a1f9ce2eff2be7acc36</id>
<content type='text'>
The number of packets processed per interrupt was hardcoded to 16.
Add a per-interface sysctl dev.rge.%d.rx_process_limit tunable so
users can adjust this value at runtime.

Signed-off-by: Christos Longros &lt;chris.longros@gmail.com&gt;

Reviewed by:	ziaee, adrian
Differential Revision:	https://reviews.freebsd.org/D56014
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The number of packets processed per interrupt was hardcoded to 16.
Add a per-interface sysctl dev.rge.%d.rx_process_limit tunable so
users can adjust this value at runtime.

Signed-off-by: Christos Longros &lt;chris.longros@gmail.com&gt;

Reviewed by:	ziaee, adrian
Differential Revision:	https://reviews.freebsd.org/D56014
</pre>
</div>
</content>
</entry>
<entry>
<title>rge: handle interface flags changes</title>
<updated>2026-03-25T01:22:52+00:00</updated>
<author>
<name>Brad Smith</name>
<email>brad@comstyle.com</email>
</author>
<published>2026-03-25T01:22:52+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=f7fd4e79fa0943446aa5900147f737a70c73d9e3'/>
<id>f7fd4e79fa0943446aa5900147f737a70c73d9e3</id>
<content type='text'>
Handle interface flags like other drivers do.

Reviewed by:	zlei, adrian
Differential Revision:	https://reviews.freebsd.org/D55728
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Handle interface flags like other drivers do.

Reviewed by:	zlei, adrian
Differential Revision:	https://reviews.freebsd.org/D55728
</pre>
</div>
</content>
</entry>
<entry>
<title>rge: use C style comments instead of C++</title>
<updated>2026-03-15T20:10:59+00:00</updated>
<author>
<name>Christos Longros</name>
<email>chris.longros@gmail.com</email>
</author>
<published>2026-03-15T20:09:56+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=9976cff55e8897f74d970567e61512103216cf58'/>
<id>9976cff55e8897f74d970567e61512103216cf58</id>
<content type='text'>
FreeBSD style(9) mandates C style comments. The initial import from
OpenBSD left several C++ style // comments in if_rge.c and if_rgevar.h.
Replace them with proper /* */ comments.

Also fix a malformed comment that mixed // with a closing */.

Signed-off-by: Christos Longros &lt;chris.longros@gmail.com&gt;

Reviewed by:	adrian
Differential Revision:	https://reviews.freebsd.org/D55743
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
FreeBSD style(9) mandates C style comments. The initial import from
OpenBSD left several C++ style // comments in if_rge.c and if_rgevar.h.
Replace them with proper /* */ comments.

Also fix a malformed comment that mixed // with a closing */.

Signed-off-by: Christos Longros &lt;chris.longros@gmail.com&gt;

Reviewed by:	adrian
Differential Revision:	https://reviews.freebsd.org/D55743
</pre>
</div>
</content>
</entry>
<entry>
<title>rge: log silicon revision during attach</title>
<updated>2026-02-22T18:07:37+00:00</updated>
<author>
<name>Christos Longros</name>
<email>chris.longros@gmail.com</email>
</author>
<published>2026-02-22T18:06:50+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=acbf7498f5e11b00ffcd6c12bdb8bd1eddeb6d7f'/>
<id>acbf7498f5e11b00ffcd6c12bdb8bd1eddeb6d7f</id>
<content type='text'>
The initial import from OpenBSD contained chip revision printf() calls
commented out, as OpenBSD's bare printf() style does not translate to
FreeBSD's device_printf() idiom. The result is that users cannot
distinguish RTL8125 from RTL8125B, RTL8125D_1, RTL8125D_2 etc. via
dmesg alone, even though all variants show as '&lt;RTL8125&gt;' from the PCI
probe string.

Add proper device_printf() calls including the raw hwrev value,
consistent with how re(4) reports chip revisions.

Signed-off-by: Christos Longros &lt;chris.longros@gmail.com&gt;

Reviewed by:	zlei, imp, adrian
Differential Revision:	https://reviews.freebsd.org/D55402
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The initial import from OpenBSD contained chip revision printf() calls
commented out, as OpenBSD's bare printf() style does not translate to
FreeBSD's device_printf() idiom. The result is that users cannot
distinguish RTL8125 from RTL8125B, RTL8125D_1, RTL8125D_2 etc. via
dmesg alone, even though all variants show as '&lt;RTL8125&gt;' from the PCI
probe string.

Add proper device_printf() calls including the raw hwrev value,
consistent with how re(4) reports chip revisions.

Signed-off-by: Christos Longros &lt;chris.longros@gmail.com&gt;

Reviewed by:	zlei, imp, adrian
Differential Revision:	https://reviews.freebsd.org/D55402
</pre>
</div>
</content>
</entry>
</feed>
