Intel® Ethernet Adapters and Devices User Guide
UEFI Network Device Drivers
UEFI Network Stack
As of UEFI 2.1, there are two network stack configurations under UEFI. The most common configuration is the PXE based network stack. The alternate network stack provides IPv4 TCP, UDP, and MTFTP network protocol support. As of UEFI 2.1, the PXE and IP-based network stacks cannot be loaded or operate simultaneously. The following two sections describe each UEFI network stack configuration.
You can download reference implementations of the PXE and IP based network stack source code at https://www.tianocore.org/.
Loading the UEFI Network Driver
Load the network driver using the UEFI shell load command. For example:
load e3040e2.efi
Configuring the UEFI Network Stack for PXE
The PXE (Preboot eXecution Environment) based UEFI network stack provides support for UEFI network boot loaders downloaded from a WFM-compliant PXE server. Services that can be enabled include:
Windows Deployment Services (WDS)
Linux network installation (Elilo)
TFTP file transfers
To enable UEFI PXE services, the following network protocol drivers must be loaded with:
snp.efi
bc.efi
pxedhcp4.efi
These drivers can be loaded from the UEFI load shell command, but are often included as part of the UEFI system firmware.
Use the UEFI shell command drivers to determine if the UEFI PXE drivers are included in the UEFI implementation. The drivers command will output a table listing drivers loaded in the system. The following entries must be present in order to network boot a UEFI system over PXE:
DRV | VERSION | TYPE | CFG | DIAG | #D | #C | DRIVER NAME | IMAGE NAME |
---|---|---|---|---|---|---|---|---|
F5 | 00000010 | D | - | - | 2 | - | Simple Network Protocol Driver | SNP |
F7 | 00000010 | D | - | - | 2 | - | PXE Base Code Driver | BC |
F9 | 00000010 | D | - | - | 2 | - | PXE DHCPv4 Driver | PxeDhcp4 |
FA | 03004000 | B | X | X | 2 | 2 | Intel(R) Network Connection 3.0.00 | /e3000e2.efi |
A network boot option will appear in the boot options menu when the UEFI PXE network stack and Intel UEFI network driver have been loaded. Selecting this boot option will initiate a PXE network boot.
Configuring the UEFI Network Stack for TCP, UDP, and MTFTP
An IP-based network stack is available to applications requiring IP-based network protocols such as TCP, UDP, or MTFTP. The following UEFI network drivers must be built into the UEFI platform implementation to enable this stack:
SNP (Simple Network Protocol)
MNP (Managed Network Protocol)
ARP
DHCP4
IPv4
ip4config
TCPv4
UDPv4
MTFTPv4
These drivers will show up in the UEFI drivers command output if they are included in the platform UEFI implementation:
DRV | VERSION | TYPE | CFG | DIAG | #D | #C | DRIVER NAME | IMAGE NAME |
---|---|---|---|---|---|---|---|---|
F5 | 00000010 | D | - | - | 2 | - | IP4 CONFIG Network Service Driver | Ip4Config |
F7 | 00000010 | D | - | - | 2 | - | Simple Network Protocol Driver | SNP |
F8 | 00000010 | D | - | - | 2 | - | ARP Network Service Driver | Arp |
F9 | 00000010 | D | - | - | 2 | - | Tcp Network Service Driver | Tcp4 |
FA | 00000010 | D | - | - | 2 | - | IP4 Network Service Driver | Ip4 |
FB | 00000010 | D | - | - | 2 | - | DHCP Protocol Driver | Dhcp4 |
FC | 00000010 | D | - | - | 6 | - | UDP Network Service Driver | Udp4 |
FD | 00000010 | D | - | - | 2 | - | MTFTP4 Network Service | Mtftp4 |
FE | 00000010 | B | - | - | 2 | 6 | MNP Network Service Driver | /mnp.efi |
FF | 03099900 | B | X | X | 2 | 2 | Intel(R) Network Connection 3.0.00 | /e3000e2.efi |
The ifconfig UEFI shell command must be used to configure each network interface. Running
Unloading the UEFI Network Driver
To unload a network driver from memory, use the UEFI unload command. The syntax for using the unload command is:
unload [driver handle]
Where
Force Speed and Duplex
The UEFI network driver supports forced speed and duplex capability. You can access the force speed and duplex menu with the drvcfg UEFI shell command:
drvcfg -s [driver handle] [control handle]
The speed and duplex setting selected must match the speed and duplex setting of the connecting network port. A speed and duplex mismatch between ports will result in dropped packets and poor network performance. It is recommended to set all ports on a network to autonegotiate. Connected ports must be set to autonegotiate in order to establish a 1 gigabit per second connection.
Fiber-optic and 10 gigabit (and faster) Ethernet adapters do not support forced speed and duplex.
Diagnostic Capability
The UEFI network driver features built in hardware diagnostic tests. The diagnostic tests are called with the UEFI shell drvdiag command.
The following performs a basic hardware register test:
drvdiag -s
The following performs an internal loopback transmit and receive test:
drvdiag -e