Download raw body.
axen: add support for ax88772d
On Mon, Oct 07, 2024 at 01:28:05PM +0800, Kevin Lo wrote:
> On Mon, Oct 07, 2024 at 01:05:46PM +0800, Kevin Lo wrote:
> >
> > Hi,
> >
> > AX88772D is a USB 2.0 device. It is very similar to AX88192A overall.
> > The most significant difference is that AX88192A supports 1000Mbps speeds
> > while AX88772D does not.
>
> My typo: s/AX88192A/AX88179A
>
> > Tested on:
> > axen0 at uhub0 port 1 configuration 1 interface 0 "ASIX AX88772D" rev 2.10/3.00 addr 2
> > axen0: USB_SPEED_HIGHaxen0: AX88772D, address 20:7b:d2:xx:xx:xx
> > ukphy0 at axen0 phy 3: Generic IEEE 802.3u media interface, rev. 1: OUI 0x00070b, model 0x0006
> >
> > ok?
Grammer fixed by jmc@.
Index: share/man/man4/axen.4
===================================================================
RCS file: /cvs/src/share/man/man4/axen.4,v
diff -u -p -u -p -r1.10 axen.4
--- share/man/man4/axen.4 4 Jan 2024 08:41:59 -0000 1.10
+++ share/man/man4/axen.4 7 Oct 2024 02:31:09 -0000
@@ -19,7 +19,7 @@
.Os
.Sh NAME
.Nm axen
-.Nd ASIX Electronics AX88179/AX88179A 10/100/1Gb USB Ethernet device
+.Nd ASIX Electronics AX88179/AX88179A/AX88772D 10/100/1Gb USB Ethernet device
.Sh SYNOPSIS
.Cd "axen* at uhub?"
.Cd "rgephy* at mii?"
@@ -28,7 +28,7 @@
The
.Nm
driver provides support for USB Ethernet adapters based on the ASIX
-Electronics AX88179/AX88179A USB 3.0 chipset, including the following:
+Electronics AX88179/AX88179A/AX88772D chipset, including the following:
.Pp
.Bl -tag -width Ds -offset indent -compact
.It D-Link DUB-1312
@@ -38,7 +38,13 @@ Electronics AX88179/AX88179A USB 3.0 chi
.It StarTech USB31000S
.It TP-LINK UE300C v2
.It TP-Link UE306
+.It Ugreen CM650-15632
.El
+.Pp
+The AX88772D is a USB 2.0 device which supports both
+10 and 100Mbps speeds in either full or half duplex.
+The AX88179 and AX88179A are USB 3.0 devices, which contain
+a 10/100/1Gb Ethernet MAC with a GMII/MII interface.
.Pp
The
.Nm
Index: share/man/man4/usb.4
===================================================================
RCS file: /cvs/src/share/man/man4/usb.4,v
diff -u -p -u -p -r1.219 usb.4
--- share/man/man4/usb.4 15 May 2024 01:41:18 -0000 1.219
+++ share/man/man4/usb.4 7 Oct 2024 02:31:09 -0000
@@ -112,7 +112,7 @@ ADMtek AN986/ADM8511 Pegasus family 10/1
.It Xr axe 4
ASIX Electronics AX88172/AX88178/AX88772 10/100/1Gb USB Ethernet device
.It Xr axen 4
-ASIX Electronics AX88179/AX88179A 10/100/1Gb USB Ethernet device
+ASIX Electronics AX88179/AX88179A/AX88772D 10/100/1Gb USB Ethernet device
.It Xr cdce 4
USB Communication Device Class Ethernet device
.It Xr cue 4
Index: sys/dev/usb/if_axen.c
===================================================================
RCS file: /cvs/src/sys/dev/usb/if_axen.c,v
diff -u -p -u -p -r1.33 if_axen.c
--- sys/dev/usb/if_axen.c 23 May 2024 03:21:08 -0000 1.33
+++ sys/dev/usb/if_axen.c 7 Oct 2024 02:31:11 -0000
@@ -17,7 +17,7 @@
*/
/*
- * ASIX Electronics AX88178a USB 2.0 ethernet and
+ * ASIX Electronics AX88178a/AX88772d USB 2.0 ethernet and
* AX88179/AX88179a USB 3.0 Ethernet driver.
*/
@@ -251,6 +251,8 @@ axen_miibus_statchg(struct device *dev)
sc->axen_link++;
break;
case IFM_1000_T:
+ if ((sc->axen_flags & AX772D) != 0)
+ break;
sc->axen_link++;
break;
default:
@@ -658,8 +660,14 @@ axen_attach(struct device *parent, struc
}
dd = usbd_get_device_descriptor(sc->axen_udev);
- if (UGETW(dd->bcdDevice) == 0x200)
+ switch (UGETW(dd->bcdDevice)) {
+ case 0x200:
sc->axen_flags = AX179A;
+ break;
+ case 0x300:
+ sc->axen_flags = AX772D;
+ break;
+ }
s = splnet();
@@ -683,6 +691,8 @@ axen_attach(struct device *parent, struc
printf(" AX88178a");
else if (sc->axen_flags & AX179)
printf(" AX88179");
+ else if (sc->axen_flags & AX772D)
+ printf(" AX88772D");
else
printf(" AX88179A");
printf(", address %s\n", ether_sprintf(eaddr));
@@ -968,7 +978,7 @@ axen_rxeof(struct usbd_xfer *xfer, void
/* skip pseudo header (2byte) */
padlen = 2;
/* skip trailer padding (4Byte) for ax88179 */
- if (!(sc->axen_flags & AX179A))
+ if (!(sc->axen_flags & (AX179A | AX772D)))
padlen += 4;
do {
Index: sys/dev/usb/if_axenreg.h
===================================================================
RCS file: /cvs/src/sys/dev/usb/if_axenreg.h,v
diff -u -p -u -p -r1.7 if_axenreg.h
--- sys/dev/usb/if_axenreg.h 4 Jan 2024 08:41:59 -0000 1.7
+++ sys/dev/usb/if_axenreg.h 7 Oct 2024 02:31:11 -0000
@@ -228,6 +228,7 @@ struct axen_type {
#define AX178A 0x0001 /* AX88178a */
#define AX179 0x0002 /* AX88179 */
#define AX179A 0x0004 /* AX88179a */
+#define AX772D 0x0008 /* AX88772d */
};
struct axen_softc;
axen: add support for ax88772d