Index: share/man/man4/ixl.4 =================================================================== RCS file: /cvs/src/share/man/man4/ixl.4,v retrieving revision 1.4 diff -u -p -r1.4 ixl.4 --- share/man/man4/ixl.4 4 May 2019 15:57:20 -0000 1.4 +++ share/man/man4/ixl.4 11 Jul 2020 01:15:33 -0000 @@ -27,6 +27,19 @@ The .Nm driver supports Intel 700 series controllers based on the Intel X710, XXV710, XL710, and X722 Ethernet chipsets. +.Pp +The functionality of the Intel 700 series Ethernet controllers has improved as newer versions of firmware have been released. +To ensure correct driver operation, apply the most recent +.Pq stable +firmware update for the network controller. +.Pp +The +.Nm ixl +driver supports querying pluggable transceivers for information and +diagnostics. +.\" via ifconfig ixlX sff . +This functionality is available on controllers providing API version +1.6 and higher. .Sh SEE ALSO .Xr arp 4 , .Xr ifmedia 4 , Index: sys/dev/pci/if_ixl.c =================================================================== RCS file: /cvs/src/sys/dev/pci/if_ixl.c,v retrieving revision 1.65 diff -u -p -r1.65 if_ixl.c --- sys/dev/pci/if_ixl.c 11 Jul 2020 00:54:19 -0000 1.65 +++ sys/dev/pci/if_ixl.c 11 Jul 2020 01:15:33 -0000 @@ -3918,7 +3918,11 @@ err: return (rv); } -/* this returns -1 on failure, or the sff module type */ +/* + * this returns -2 on software/driver failure, -1 for problems + * talking to the hardware, or the sff module type. + */ + static int ixl_get_module_type(struct ixl_softc *sc) { @@ -3927,7 +3931,7 @@ ixl_get_module_type(struct ixl_softc *sc int rv; if (ixl_dmamem_alloc(sc, &idm, IXL_AQ_BUFLEN, 0) != 0) - return (-1); + return (-2); rv = ixl_get_phy_abilities(sc, &idm); if (rv != IXL_AQ_RC_OK) { @@ -4061,8 +4065,10 @@ ixl_get_sffpage(struct ixl_softc *sc, st int error; switch (ixl_get_module_type(sc)) { + case -2: + return (ENOMEM); case -1: - return (EIO); + return (ENXIO); case IXL_SFF8024_ID_SFP: ops = &ixl_sfp_ops; break;