Add a manual page for axp(4) / AMD 10G Ethernet driver

Submitted by:	Rajesh Kumar <rajesh1 dot kumar at amd dot com>
Reviewed by:	bcr, brueffer, rpokala
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D27800
This commit is contained in:
Gordon Bergling 2021-01-24 14:57:16 +01:00
parent b22fdf45ff
commit 1f73236b03
2 changed files with 226 additions and 0 deletions

View File

@ -69,6 +69,7 @@ MAN= aac.4 \
aue.4 \
axe.4 \
axge.4 \
axp.4 \
bce.4 \
bcma.4 \
bfe.4 \

225
share/man/man4/axp.4 Normal file
View File

@ -0,0 +1,225 @@
.\" Copyright (c) 2020, Advanced Micro Devices Inc.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions are met:
.\"
.\" 1. Redistributions of source code must retain the above copyright notice,
.\" this list of conditions and the following disclaimer.
.\"
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" 3. Neither the name of Advanced Micro Devices Inc., nor the names of its
.\" contributors may be used to endorse or promote products derived from
.\" this software without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.\" * Other names and brands may be claimed as the property of others.
.\"
.Dd January 24, 2021
.Dt AXP 4
.Os
.Sh NAME
.Nm axp
.Nd "Advanced Micro Devices 10G Ethernet driver"
.Sh SYNOPSIS
To compile this driver into the kernel,
place the following lines in your
kernel configuration file:
.Bd -ragged -offset indent
.Cd "device iflib"
.Cd "device axp"
.Ed
.Pp
Alternatively, to load the driver as a
module at boot time, place the following line in
.Xr loader.conf 5 :
.Bd -literal -offset indent
if_axp_load="YES"
.Ed
.Sh DESCRIPTION
The
.Nm
driver enables PCI-E based 10G Ethernet controller inbuilt in the
AMD EPYC processors.
.Pp
The following features are supported.
.Pp
.Bl -bullet -compact
.It
1G/10G SFP+ Link
.It
Jumbo frames (9000 Bytes)
.It
Transmit and Receive checksum offload
.It
TCP segmentation offload (TSO)
.It
VLAN tag insertion/extraction
.It
VLAN checksum offload
.It
VLAN TSO
.It
Receive side steering (RSS)
.It
IPV4 and IPV6 capable
.It
MSI-X interrupts
.It
Split header
.El
.Pp
All the above mentioned features are enabled by default.
.Pp
For hardware related questions, please refer the documentation supplied
along with AMD EPYC processors.
.Sh SYSCTL VARIABLES
The following variables are available as
.Xr sysctl 8
variables:
.Bl -tag -width indent
.It Va dev.ax.X.mac_stats
Dumps the transmit and receive statistics counter values for the controller.
This includes statistics specific to each transmit and receive queue.
.It Va dev.ax.X.channels_info
Dumps the permissible and default configured transmit and receive channel
information.
.It Va dev.ax.X.ringparam_info
Dumps the permissible and default configured descriptor information for the
transmit and receive queue.
.It Va dev.ax.X.link_ksettings_info
Dumps the current link setting like link mode, speed, duplex settings.
.It Va dev.ax.X.pauseparam_info
Dumps the current flow-control settings.
.It Va dev.ax.X.coalesce_info
Dumps the current interrupt coalescing settings.
.It Va dev.ax.X.link_info
Dumps the current state of the Link.
.It Va dev.ax.X.drv_info
Dumps the driver and controller firmware version information.
.It Va dev.ax.X.YYYY_register
.It Va dev.ax.X.YYYY_register_values
Sysctl to dump a specific register from a specific block of the controller.
YYYY specifies the block.
The following blocks are supported.
.Bl -bullet -compact
.It
xpcs
.It
xgmac
.It
xprop
.It
xi2c
.El
.Pp
Set the offset of the register to the first variable, and then read the value
of the register by reading the second variable.
.It Va dev.ax.X.axgbe_debug_level
Configure the log-level for the driver.
Default is 0.
Supports 0-3.
.It Va dev.ax.X.single_fl
This variable must be set before loading the driver, either via
.Xr loader.conf 5
or through the use of
.Xr kenv 1 .
This cannot be modified when driver is loaded.
.Pp
Setting this variable in
.Xr loader.conf 5
needs the system to be restarted to take effect.
When using
.Xr kenv 1 ,
use the wrapper variable
.Va dev.ax.single_fl\&,
which will configure all AMD interfaces with single freelist per receive queue.
Default is 2 freelist per receive queue.
.Pp
This variable is to configure the interface when single freelist is needed.
(For Eg. netmap).
Basically, this will control the software behavior of how the receive
descriptors are used.
.Pp
Setting this variable to 1, will use 1 Freelist per receive queue.
.Pp
Setting this variable to 0, will use 2 Freelist per receive queue.
.Pp
Based on the setting, the receive buffers are programmed accordingly on the
received descriptors.
.Pp
By default, this variable will be set to 0, meaning the interfaces will be
configured for regular data traffic (not netmap traffic).
.It Va dev.ax.X.sph_enabled
This variable must be set before loading the driver, either via
.Xr loader.conf 5
or through the use of
.Xr kenv 1 .
This cannot be modified when driver is loaded.
.Pp
Setting this variable in
.Xr loader.conf 5
needs the system to be restarted to take effect.
When using
.Xr kenv 1 ,
use the wrapper variable
.Va dev.ax.sph_enable\&,
which will configure(enable/disable) split header support in all
AMD interfaces.
.Pp
This variable is to control enable/disable of the split header feature in
the interface.
.Pp
Setting this variable to 1, will enable split header feature.
.Pp
Setting this variable to 0, will disable split header feature.
.Pp
By default, this variable will be set to 1, meaning the Split header support be
enabled.
.Pp
NOTE: It is recommended to use this variable only when
.Va single_fl\&
is configured.
Otherwise let it be default value.
.El
.Sh SEE ALSO
.Xr arp 4 ,
.Xr iflib 4 ,
.Xr netmap 4 ,
.Xr vlan 4 ,
.Xr ifconfig 8
.Sh HISTORY
The
.Nm
device driver first appeared in
.Fx 13.0 .
.Pp
Another version of the driver is already present in
.Fx .
This driver was named as "axgbe" earlier, which is renamed as "axa" now.
This driver is for the ACPI based Ethernet controllers in the previous/older
version of the hardware.
This driver is authored by
.Aq Mt andrew@FreeBSD.org .
.Sh AUTHORS
The
.Nm
device driver was written by
.An Advanced Micro Devices Inc .
.Pp
For any issues and support requirements, email the details to
.Aq Mt rajesh1.kumar@amd.com .