Index | Thread | Search

From:
Kevin Lo <kevlo@kevlo.org>
Subject:
Re: add another RTL8125D revision 0x68900000
To:
Greg Steuck <gnezdo@openbsd.org>
Cc:
tech@openbsd.org
Date:
Sat, 24 Jan 2026 12:09:58 +0800

Download raw body.

Thread
On Fri, Jan 23, 2026 at 01:04:47PM -0800, Greg Steuck wrote:
> 
> Thanks so much Kevin!

You're welcome, I'm happy to help :)

> Kevin Lo <kevlo@kevlo.org> writes:
> 
> > Hi,
> >
> > This diff adds support for RTL8125D revision 0x68900000 found on 
> > gnezdo@'s machine.
> >
> > ok?
> 
> Works like a charm, I ran an install over this driver. See the dmesg
> below.

Awesome, thanks for testing.

> OK gnezdo@, with a question inside the patch body.
> 
> >
> > Index: sys/dev/pci/if_rge.c
> > ===================================================================
> > RCS file: /cvs/src/sys/dev/pci/if_rge.c,v
> > diff -u -p -u -p -r1.41 if_rge.c
> > --- sys/dev/pci/if_rge.c	17 Nov 2025 08:59:22 -0000	1.41
> > +++ sys/dev/pci/if_rge.c	23 Jan 2026 01:36:34 -0000
> > @@ -97,7 +97,8 @@ void		rge_phy_config_mac_r26_1(struct rg
> >  void		rge_phy_config_mac_r26_2(struct rge_softc *);
> >  void		rge_phy_config_mac_r25(struct rge_softc *);
> >  void		rge_phy_config_mac_r25b(struct rge_softc *);
> > -void		rge_phy_config_mac_r25d(struct rge_softc *);
> > +void		rge_phy_config_mac_r25d_1(struct rge_softc *);
> > +void		rge_phy_config_mac_r25d_2(struct rge_softc *);
> >  void		rge_phy_config_mcu(struct rge_softc *, uint16_t);
> >  void		rge_set_macaddr(struct rge_softc *, const uint8_t *);
> >  void		rge_get_macaddr(struct rge_softc *, uint8_t *);
> > @@ -146,7 +147,7 @@ static const struct {
> >  	MAC_R25_MCU
> >  }, mac_r25b_mcu[] = {
> >  	MAC_R25B_MCU
> > -}, mac_r25d_mcu[] = {
> > +}, mac_r25d_1_mcu[] = {
> >  	MAC_R25D_MCU
> >  };
> >  
> > @@ -261,7 +262,11 @@ rge_attach(struct device *parent, struct
> >  		sc->rge_type = MAC_R26_2;
> >  		break;
> >  	case 0x68800000:
> > -		sc->rge_type = MAC_R25D;
> > +		sc->rge_type = MAC_R25D_1;
> > +		printf(": RTL8125D");
> > +		break;
> > +	case 0x68900000:
> > +		sc->rge_type = MAC_R25D_2;
> >  		printf(": RTL8125D");
> 
> Do we care to give a visual indication about D1 vs D2?

It doesn't seem necessary.  The different revisions of the RTL8125D chip 
only require different firmware, the driver code path itself remains the same.
If a firmware update for the RTL8125D is ever needed, I will review all 
revisions accordingly.  Thanks.