xref: /freebsd/share/man/man4/axp.4 (revision ec786886661ac8d6c41420c4460eba8461308e0b)
11f73236bSGordon Bergling.\" Copyright (c) 2020, Advanced Micro Devices Inc.
21f73236bSGordon Bergling.\" All rights reserved.
31f73236bSGordon Bergling.\"
41f73236bSGordon Bergling.\" Redistribution and use in source and binary forms, with or without
51f73236bSGordon Bergling.\" modification, are permitted provided that the following conditions are met:
61f73236bSGordon Bergling.\"
71f73236bSGordon Bergling.\" 1. Redistributions of source code must retain the above copyright notice,
81f73236bSGordon Bergling.\"    this list of conditions and the following disclaimer.
91f73236bSGordon Bergling.\"
101f73236bSGordon Bergling.\" 2. Redistributions in binary form must reproduce the above copyright
111f73236bSGordon Bergling.\"    notice, this list of conditions and the following disclaimer in the
121f73236bSGordon Bergling.\"    documentation and/or other materials provided with the distribution.
131f73236bSGordon Bergling.\"
141f73236bSGordon Bergling.\" 3. Neither the name of Advanced Micro Devices Inc., nor the names of its
151f73236bSGordon Bergling.\"    contributors may be used to endorse or promote products derived from
161f73236bSGordon Bergling.\"    this software without specific prior written permission.
171f73236bSGordon Bergling.\"
181f73236bSGordon Bergling.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
191f73236bSGordon Bergling.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
201f73236bSGordon Bergling.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
211f73236bSGordon Bergling.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
221f73236bSGordon Bergling.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
231f73236bSGordon Bergling.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
241f73236bSGordon Bergling.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
251f73236bSGordon Bergling.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
261f73236bSGordon Bergling.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
271f73236bSGordon Bergling.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
281f73236bSGordon Bergling.\" POSSIBILITY OF SUCH DAMAGE.
291f73236bSGordon Bergling.\"
301f73236bSGordon Bergling.\" * Other names and brands may be claimed as the property of others.
311f73236bSGordon Bergling.\"
32*ec786886SRajesh Kumar M A.Dd February 19, 2021
331f73236bSGordon Bergling.Dt AXP 4
341f73236bSGordon Bergling.Os
351f73236bSGordon Bergling.Sh NAME
361f73236bSGordon Bergling.Nm axp
371f73236bSGordon Bergling.Nd "Advanced Micro Devices 10G Ethernet driver"
381f73236bSGordon Bergling.Sh SYNOPSIS
391f73236bSGordon BerglingTo compile this driver into the kernel,
401f73236bSGordon Berglingplace the following lines in your
411f73236bSGordon Berglingkernel configuration file:
421f73236bSGordon Bergling.Bd -ragged -offset indent
431f73236bSGordon Bergling.Cd "device iflib"
441f73236bSGordon Bergling.Cd "device axp"
451f73236bSGordon Bergling.Ed
461f73236bSGordon Bergling.Pp
471f73236bSGordon BerglingAlternatively, to load the driver as a
481f73236bSGordon Berglingmodule at boot time, place the following line in
491f73236bSGordon Bergling.Xr loader.conf 5 :
501f73236bSGordon Bergling.Bd -literal -offset indent
511f73236bSGordon Berglingif_axp_load="YES"
521f73236bSGordon Bergling.Ed
531f73236bSGordon Bergling.Sh DESCRIPTION
541f73236bSGordon BerglingThe
551f73236bSGordon Bergling.Nm
561f73236bSGordon Berglingdriver enables PCI-E based 10G Ethernet controller inbuilt in the
571f73236bSGordon BerglingAMD EPYC processors.
581f73236bSGordon Bergling.Pp
591f73236bSGordon BerglingThe following features are supported.
601f73236bSGordon Bergling.Pp
611f73236bSGordon Bergling.Bl -bullet -compact
621f73236bSGordon Bergling.It
631f73236bSGordon Bergling1G/10G SFP+ Link
641f73236bSGordon Bergling.It
651f73236bSGordon BerglingJumbo frames (9000 Bytes)
661f73236bSGordon Bergling.It
671f73236bSGordon BerglingTransmit and Receive checksum offload
681f73236bSGordon Bergling.It
691f73236bSGordon BerglingTCP segmentation offload (TSO)
701f73236bSGordon Bergling.It
711f73236bSGordon BerglingVLAN tag insertion/extraction
721f73236bSGordon Bergling.It
731f73236bSGordon BerglingVLAN checksum offload
741f73236bSGordon Bergling.It
751f73236bSGordon BerglingVLAN TSO
761f73236bSGordon Bergling.It
771f73236bSGordon BerglingReceive side steering (RSS)
781f73236bSGordon Bergling.It
791f73236bSGordon BerglingIPV4 and IPV6 capable
801f73236bSGordon Bergling.It
811f73236bSGordon BerglingMSI-X interrupts
821f73236bSGordon Bergling.It
831f73236bSGordon BerglingSplit header
841f73236bSGordon Bergling.El
851f73236bSGordon Bergling.Pp
861f73236bSGordon BerglingAll the above mentioned features are enabled by default.
871f73236bSGordon Bergling.Pp
881f73236bSGordon BerglingFor hardware related questions, please refer the documentation supplied
891f73236bSGordon Berglingalong with AMD EPYC processors.
901f73236bSGordon Bergling.Sh SYSCTL VARIABLES
911f73236bSGordon BerglingThe following variables are available as
921f73236bSGordon Bergling.Xr sysctl 8
931f73236bSGordon Berglingvariables:
941f73236bSGordon Bergling.Bl -tag -width indent
951f73236bSGordon Bergling.It Va dev.ax.X.mac_stats
961f73236bSGordon BerglingDumps the transmit and receive statistics counter values for the controller.
971f73236bSGordon BerglingThis includes statistics specific to each transmit and receive queue.
981f73236bSGordon Bergling.It Va dev.ax.X.channels_info
991f73236bSGordon BerglingDumps the permissible and default configured transmit and receive channel
1001f73236bSGordon Berglinginformation.
1011f73236bSGordon Bergling.It Va dev.ax.X.ringparam_info
1021f73236bSGordon BerglingDumps the permissible and default configured descriptor information for the
1031f73236bSGordon Berglingtransmit and receive queue.
1041f73236bSGordon Bergling.It Va dev.ax.X.link_ksettings_info
1051f73236bSGordon BerglingDumps the current link setting like link mode, speed, duplex settings.
1061f73236bSGordon Bergling.It Va dev.ax.X.pauseparam_info
1071f73236bSGordon BerglingDumps the current flow-control settings.
1081f73236bSGordon Bergling.It Va dev.ax.X.coalesce_info
1091f73236bSGordon BerglingDumps the current interrupt coalescing settings.
1101f73236bSGordon Bergling.It Va dev.ax.X.link_info
1111f73236bSGordon BerglingDumps the current state of the Link.
1121f73236bSGordon Bergling.It Va dev.ax.X.drv_info
1131f73236bSGordon BerglingDumps the driver and controller firmware version information.
1141f73236bSGordon Bergling.It Va dev.ax.X.YYYY_register
1151f73236bSGordon Bergling.It Va dev.ax.X.YYYY_register_values
1161f73236bSGordon BerglingSysctl to dump a specific register from a specific block of the controller.
1171f73236bSGordon BerglingYYYY specifies the block.
1181f73236bSGordon BerglingThe following blocks are supported.
1191f73236bSGordon Bergling.Bl -bullet -compact
1201f73236bSGordon Bergling.It
1211f73236bSGordon Berglingxpcs
1221f73236bSGordon Bergling.It
1231f73236bSGordon Berglingxgmac
1241f73236bSGordon Bergling.It
1251f73236bSGordon Berglingxprop
1261f73236bSGordon Bergling.It
1271f73236bSGordon Berglingxi2c
1281f73236bSGordon Bergling.El
1291f73236bSGordon Bergling.Pp
1301f73236bSGordon BerglingSet the offset of the register to the first variable, and then read the value
1311f73236bSGordon Berglingof the register by reading the second variable.
1321f73236bSGordon Bergling.It Va dev.ax.X.axgbe_debug_level
1331f73236bSGordon BerglingConfigure the log-level for the driver.
1341f73236bSGordon BerglingDefault is 0.
1351f73236bSGordon BerglingSupports 0-3.
136*ec786886SRajesh Kumar M A.It Va dev.ax.X.link_workaround
137*ec786886SRajesh Kumar M AThis variable enables the workaround for an intermittent link issue.
138*ec786886SRajesh Kumar M AWhen link does not come up for long time, this variable can be set to 1 to
139*ec786886SRajesh Kumar M Areset the phy and bring up the link.
140*ec786886SRajesh Kumar M A.El
141*ec786886SRajesh Kumar M A.Sh LOADER TUNABLES
142*ec786886SRajesh Kumar M AThe following variable is available as
143*ec786886SRajesh Kumar M A.Xr loader.conf 5
144*ec786886SRajesh Kumar M Atunable.
145*ec786886SRajesh Kumar M A.Bl -tag -width indent
146*ec786886SRajesh Kumar M A.It Va dev.ax.X.sph_enable
147*ec786886SRajesh Kumar M AThis variable controls split header feature for the interface.
148*ec786886SRajesh Kumar M ADefault is 1, meaning the split header support is enabled.
149*ec786886SRajesh Kumar M A.Pp
1501f73236bSGordon BerglingThis variable must be set before loading the driver, either via
1511f73236bSGordon Bergling.Xr loader.conf 5
152*ec786886SRajesh Kumar M Aor through
1531f73236bSGordon Bergling.Xr kenv 1 .
1541f73236bSGordon BerglingThis cannot be modified when driver is loaded.
1551f73236bSGordon Bergling.Pp
1561f73236bSGordon BerglingSetting this variable in
1571f73236bSGordon Bergling.Xr loader.conf 5
1581f73236bSGordon Berglingneeds the system to be restarted to take effect.
1591f73236bSGordon BerglingWhen using
1601f73236bSGordon Bergling.Xr kenv 1 ,
1611f73236bSGordon Berglinguse the wrapper variable
162*ec786886SRajesh Kumar M A.Va dev.ax.sph_enable ,
163*ec786886SRajesh Kumar M Awhich will configure(enable/disable) split header support for all
164*ec786886SRajesh Kumar M A.Nm
165*ec786886SRajesh Kumar M Ainterfaces.
1661f73236bSGordon Bergling.Pp
167*ec786886SRajesh Kumar M ATo use netmap with this device, split header support must be disabled
168*ec786886SRajesh Kumar M A(set this variable to 0).
1691f73236bSGordon Bergling.El
1701f73236bSGordon Bergling.Sh SEE ALSO
1711f73236bSGordon Bergling.Xr arp 4 ,
1721f73236bSGordon Bergling.Xr iflib 4 ,
1731f73236bSGordon Bergling.Xr netmap 4 ,
1741f73236bSGordon Bergling.Xr vlan 4 ,
1751f73236bSGordon Bergling.Xr ifconfig 8
1761f73236bSGordon Bergling.Sh HISTORY
1771f73236bSGordon BerglingThe
1781f73236bSGordon Bergling.Nm
1791f73236bSGordon Berglingdevice driver first appeared in
1801f73236bSGordon Bergling.Fx 13.0 .
1811f73236bSGordon Bergling.Pp
1821f73236bSGordon BerglingAnother version of the driver is already present in
1831f73236bSGordon Bergling.Fx .
1841f73236bSGordon BerglingThis driver was named as "axgbe" earlier, which is renamed as "axa" now.
1851f73236bSGordon BerglingThis driver is for the ACPI based Ethernet controllers in the previous/older
1861f73236bSGordon Berglingversion of the hardware.
1871f73236bSGordon BerglingThis driver is authored by
1881f73236bSGordon Bergling.Aq Mt andrew@FreeBSD.org .
1891f73236bSGordon Bergling.Sh AUTHORS
1901f73236bSGordon BerglingThe
1911f73236bSGordon Bergling.Nm
1921f73236bSGordon Berglingdevice driver was written by
1931f73236bSGordon Bergling.An Advanced Micro Devices Inc .
1941f73236bSGordon Bergling.Pp
1951f73236bSGordon BerglingFor any issues and support requirements, email the details to
1961f73236bSGordon Bergling.Aq Mt rajesh1.kumar@amd.com .
197