Intel® Ethernet Adapters and Devices User Guide

ID Date Version Classification
705831 12/05/2024 Public
Document Table of Contents

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 ifconfig -? from the UEFI shell will display usage instructions for ifconfig.

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 [driver handle] is the number assigned to the driver in the far left column of the drivers output screen.

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