]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - share/man/man4/axp.4
Add a manual page for axp(4) / AMD 10G Ethernet driver
[FreeBSD/FreeBSD.git] / share / man / man4 / axp.4
1 .\" Copyright (c) 2020, Advanced Micro Devices Inc.
2 .\" All rights reserved.
3 .\"
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions are met:
6 .\"
7 .\" 1. Redistributions of source code must retain the above copyright notice,
8 .\"    this list of conditions and the following disclaimer.
9 .\"
10 .\" 2. Redistributions in binary form must reproduce the above copyright
11 .\"    notice, this list of conditions and the following disclaimer in the
12 .\"    documentation and/or other materials provided with the distribution.
13 .\"
14 .\" 3. Neither the name of Advanced Micro Devices Inc., nor the names of its
15 .\"    contributors may be used to endorse or promote products derived from
16 .\"    this software without specific prior written permission.
17 .\"
18 .\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19 .\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
22 .\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23 .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24 .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25 .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26 .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28 .\" POSSIBILITY OF SUCH DAMAGE.
29 .\"
30 .\" * Other names and brands may be claimed as the property of others.
31 .\"
32 .Dd January 24, 2021
33 .Dt AXP 4
34 .Os
35 .Sh NAME
36 .Nm axp
37 .Nd "Advanced Micro Devices 10G Ethernet driver"
38 .Sh SYNOPSIS
39 To compile this driver into the kernel,
40 place the following lines in your
41 kernel configuration file:
42 .Bd -ragged -offset indent
43 .Cd "device iflib"
44 .Cd "device axp"
45 .Ed
46 .Pp
47 Alternatively, to load the driver as a
48 module at boot time, place the following line in
49 .Xr loader.conf 5 :
50 .Bd -literal -offset indent
51 if_axp_load="YES"
52 .Ed
53 .Sh DESCRIPTION
54 The
55 .Nm
56 driver enables PCI-E based 10G Ethernet controller inbuilt in the
57 AMD EPYC processors.
58 .Pp
59 The following features are supported.
60 .Pp
61 .Bl -bullet -compact
62 .It
63 1G/10G SFP+ Link
64 .It
65 Jumbo frames (9000 Bytes)
66 .It
67 Transmit and Receive checksum offload
68 .It
69 TCP segmentation offload (TSO)
70 .It
71 VLAN tag insertion/extraction
72 .It
73 VLAN checksum offload
74 .It
75 VLAN TSO
76 .It
77 Receive side steering (RSS)
78 .It
79 IPV4 and IPV6 capable
80 .It
81 MSI-X interrupts
82 .It
83 Split header
84 .El
85 .Pp
86 All the above mentioned features are enabled by default.
87 .Pp
88 For hardware related questions, please refer the documentation supplied
89 along with AMD EPYC processors.
90 .Sh SYSCTL VARIABLES
91 The following variables are available as
92 .Xr sysctl 8
93 variables:
94 .Bl -tag -width indent
95 .It Va dev.ax.X.mac_stats
96 Dumps the transmit and receive statistics counter values for the controller.
97 This includes statistics specific to each transmit and receive queue.
98 .It Va dev.ax.X.channels_info
99 Dumps the permissible and default configured transmit and receive channel
100 information.
101 .It Va dev.ax.X.ringparam_info
102 Dumps the permissible and default configured descriptor information for the
103 transmit and receive queue.
104 .It Va dev.ax.X.link_ksettings_info
105 Dumps the current link setting like link mode, speed, duplex settings.
106 .It Va dev.ax.X.pauseparam_info
107 Dumps the current flow-control settings.
108 .It Va dev.ax.X.coalesce_info
109 Dumps the current interrupt coalescing settings.
110 .It Va dev.ax.X.link_info
111 Dumps the current state of the Link.
112 .It Va dev.ax.X.drv_info
113 Dumps the driver and controller firmware version information.
114 .It Va dev.ax.X.YYYY_register
115 .It Va dev.ax.X.YYYY_register_values
116 Sysctl to dump a specific register from a specific block of the controller.
117 YYYY specifies the block.
118 The following blocks are supported.
119 .Bl -bullet -compact
120 .It
121 xpcs
122 .It
123 xgmac
124 .It
125 xprop
126 .It
127 xi2c
128 .El
129 .Pp
130 Set the offset of the register to the first variable, and then read the value
131 of the register by reading the second variable.
132 .It Va dev.ax.X.axgbe_debug_level
133 Configure the log-level for the driver.
134 Default is 0.
135 Supports 0-3.
136 .It Va dev.ax.X.single_fl
137 This variable must be set before loading the driver, either via
138 .Xr loader.conf 5
139 or through the use of
140 .Xr kenv 1 .
141 This cannot be modified when driver is loaded.
142 .Pp
143 Setting this variable in
144 .Xr loader.conf 5
145 needs the system to be restarted to take effect.
146 When using
147 .Xr kenv 1 ,
148 use the wrapper variable
149 .Va dev.ax.single_fl\&,
150 which will configure all AMD interfaces with single freelist per receive queue.
151 Default is 2 freelist per receive queue.
152 .Pp
153 This variable is to configure the interface when single freelist is needed.
154 (For Eg. netmap).
155 Basically, this will control the software behavior of how the receive
156 descriptors are used.
157 .Pp
158 Setting this variable to 1, will use 1 Freelist per receive queue.
159 .Pp
160 Setting this variable to 0, will use 2 Freelist per receive queue.
161 .Pp
162 Based on the setting, the receive buffers are programmed accordingly on the
163 received descriptors.
164 .Pp
165 By default, this variable will be set to 0, meaning the interfaces will be
166 configured for regular data traffic (not netmap traffic).
167 .It Va dev.ax.X.sph_enabled
168 This variable must be set before loading the driver, either via
169 .Xr loader.conf 5
170 or through the use of
171 .Xr kenv 1 .
172 This cannot be modified when driver is loaded.
173 .Pp
174 Setting this variable in
175 .Xr loader.conf 5
176 needs the system to be restarted to take effect.
177 When using
178 .Xr kenv 1 ,
179 use the wrapper variable
180 .Va dev.ax.sph_enable\&,
181 which will configure(enable/disable) split header support in all
182 AMD interfaces.
183 .Pp
184 This variable is to control enable/disable of the split header feature in
185 the interface.
186 .Pp
187 Setting this variable to 1, will enable split header feature.
188 .Pp
189 Setting this variable to 0, will disable split header feature.
190 .Pp
191 By default, this variable will be set to 1, meaning the Split header support be
192 enabled.
193 .Pp
194 NOTE: It is recommended to use this variable only when
195 .Va single_fl\&
196 is configured.
197 Otherwise let it be default value.
198 .El
199 .Sh SEE ALSO
200 .Xr arp 4 ,
201 .Xr iflib 4 ,
202 .Xr netmap 4 ,
203 .Xr vlan 4 ,
204 .Xr ifconfig 8
205 .Sh HISTORY
206 The
207 .Nm
208 device driver first appeared in
209 .Fx 13.0 .
210 .Pp
211 Another version of the driver is already present in
212 .Fx .
213 This driver was named as "axgbe" earlier, which is renamed as "axa" now.
214 This driver is for the ACPI based Ethernet controllers in the previous/older
215 version of the hardware.
216 This driver is authored by
217 .Aq Mt andrew@FreeBSD.org .
218 .Sh AUTHORS
219 The
220 .Nm
221 device driver was written by
222 .An Advanced Micro Devices Inc .
223 .Pp
224 For any issues and support requirements, email the details to
225 .Aq Mt rajesh1.kumar@amd.com .