mirror of
https://github.com/ipxe/ipxe.git
synced 2026-10-24 07:59:35 +03:00
intelxvf
The externally contributed commit 1d04900 ("[intel] Reset all virtual
function settings") seems to break the 82599 virtual function NICs as
found within some older AWS instance types (observed on a c3.large
instance in eu-central-1). If the transmit ring tail (VFTDT[0]) has a
non-zero value (i.e. if any packets have been transmitted), then
writing a zero to the transmit ring tail after the ring has been
disabled will permanently lock up the transmit datapath in a way that
survives even a VF reset.
Zeroing the head and tail registers when the interface is closed
appears to be completely redundant: they will be cleared anyway by the
virtual function reset (VFCTRL.RST), and they will also be explicitly
zeroed when the interface is reopened. The Linux ixgbevf driver does
not include any equivalent code to explicitly zero these registers
when the interface is closed.
Fix by leaving the head and tail registers untouched when the
interface is closed.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
iPXE network bootloader
iPXE is the leading open source network boot firmware. It provides a full PXE implementation enhanced with additional features such as:
-
boot from a web server via HTTP or HTTPS,
-
boot from an iSCSI, FCoE, or AoE SAN,
-
control the boot process with a script,
You can use iPXE to replace the existing PXE ROM on your network card, or you can chainload into iPXE to obtain the features of iPXE without the hassle of reflashing.
iPXE is free, open-source software licensed under the GNU GPL (with some portions under GPL-compatible licences).
You can download the rolling release binaries (built from the latest commit), or use the most recent stable release.
For full documentation, visit the iPXE website.
Description
Languages
C
98.5%
Assembly
0.6%
Python
0.3%
Perl
0.3%
Makefile
0.2%