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