Preboot Execution Environment
(PXE) Specification
Version 2.1
September 20, 1999
Intel Corporation
with special contributions from
SYSTEMSOFT
Preboot Execution Environment (PXE) Specification
This document is for informational purposes only. INTEL MAKES NO WARRANTIES, EXPRESS OR
IMPLIED, IN THIS DOCUMENT.
Intel Corporation may have patents or pending patent applications, trademarks, copyrights, or other
intellectual property rights covering subject matter in this document. The furnishing of this document does
not give you any license to the patents, trademarks, copyrights, or other intellectual property rights except
as expressly provided in any written license agreement from Intel Corporation.
Intel does not make any representation or warranty regarding specifications in this document or
any product or item developed based on these specifications. INTEL DISCLAIMS ALL EXPRESS
AND IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OR
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND FREEDOM FROM
INFRINGEMENT. Without limiting the generality of the foregoing, Intel does not make any warranty
of any kind that any item developed based on these specifications, or any portion of a
specification, will not infringe any copyright, patent, trade secret or other intellectual property
right of any person or entity in any country. It is your responsibility to seek licenses for such
intellectual property rights where appropriate. Intel shall not be liable for any damages arising out
of or in connection with the use of these specifications, including liability for lost profit, business
interruption, or any other damages whatsoever. Some states do not allow the exclusion or
limitation of liability or consequential or incidental damages; the above limitation may not apply to
you.
† Other product and corporate names may be trademarks of other companies and are used only for
explanation and to the owners’ benefit, without intent to infringe.
Copyright © 1998, 1999 Intel Corporation. All rights reserved.
Version 2.1 September 20, 1999
Copyright © 1998, 1999 Intel Corporation. All rights reserved.
Preboot Execution Environment (PXE) Specification
i
1.
INTRODUCTION................................................................................................................................4
Table of Contents
1.1
1.2
Structure of this Document..........................................................................................................5
Related Documents .......................................................................................................................5
1.2.1 Wired for Management ..........................................................................................................5
BIOS Specifications................................................................................................................6
1.2.2
1.2.3
UUID Documents ...................................................................................................................6
Other PC System Documents .................................................................................................6
1.2.4
Data Types and Terms Used in This Guide................................................................................6
1.3
1.4
Required vs. Recommended Features ........................................................................................9
1.5 Overview......................................................................................................................................10
PXE Protocol ........................................................................................................................10
PXE APIs ..............................................................................................................................11
1.5.1
1.5.2
2. PXE CLIENT / SERVER PROTOCOL ..........................................................................................12
2.1
2.2
2.3
2.4
2.2.1
2.2.2
2.2.3
Relationship to the Standard DHCP Protocol .........................................................................12
Protocol Details ...........................................................................................................................12
PXE Boot...............................................................................................................................13
Protocol Timeouts.................................................................................................................15
Proxy DHCP .........................................................................................................................16
DHCP Tags used for PXE Protocol ..........................................................................................18
Client Behavior ...........................................................................................................................23
PXE Option Precedence .......................................................................................................23
2.4.1
DHCPDISCOVER................................................................................................................23
2.4.2
DHCPOFFER ......................................................................................................................24
2.4.3
Boot Server Discovery ..........................................................................................................25
2.4.4
Boot Server Reply .................................................................................................................26
2.4.5
Network Bootstrap Program (NBP) Download...................................................................28
2.4.6
NBP Authentication .............................................................................................................28
2.4.7
Boot Server Credentials Reply .............................................................................................29
2.4.8
2.4.9
NBP Execution .....................................................................................................................31
2.4.10 MTFTP Operation................................................................................................................31
Server Behavior ..........................................................................................................................35
Redirection Service Behavior...............................................................................................35
Boot Service Behavior ..........................................................................................................35
Response to DHCPREQUEST.............................................................................................35
2.5.1
2.5.2
2.5.3
2.5
3.1
3.2
3.3
3.4
3. PXE APIS ...........................................................................................................................................39
PXE Installation Check..............................................................................................................40
Real mode (Int 1Ah Function 5650h) .................................................................................40
PXENV+ Structure ...............................................................................................................40
Protected mode (Scanning base memory) ...........................................................................41
!PXE Structure .....................................................................................................................42
PXE API Calling Convention ....................................................................................................44
Early UNDI API Usage ..............................................................................................................45
PXE API Service Descriptions...................................................................................................47
Preboot API Service Descriptions........................................................................................47
TFTP API Service Descriptions...........................................................................................52
3.1.1
3.1.2
3.1.3
3.1.4
3.4.1
3.4.2
Version 2.1 September 20, 1999
Copyright © 1998, 1999 Intel Corporation. All rights reserved.
Preboot Execution Environment (PXE) Specification
ii
3.4.3
3.4.4
UDP API Service Descriptions ............................................................................................55
UNDI API Service Descriptions ..........................................................................................57
PXE Return Status Definitions..................................................................................................69
3.5
4. PXE INITIAL PROGRAM LOAD (IPL)........................................................................................71
4.4
4.3.1
4.3.2
4.3.3
4.3.4
4.3.5
4.1 Overview......................................................................................................................................71
PXE Split ROM Architecture....................................................................................................74
4.2
PXE Option ROM Components................................................................................................75
4.3
Option ROM header .............................................................................................................75
Initialization Routine ...........................................................................................................76
IPL Routine ..........................................................................................................................76
Loader Routine .....................................................................................................................76
UNDI Driver .........................................................................................................................76
PXE Boot Sequence ....................................................................................................................76
Option ROM Scan and Initialization...................................................................................77
UNDI Initial Program Load (IPL) ......................................................................................83
BC Loader Routine...............................................................................................................85
BC Runtime ..........................................................................................................................86
Client State at Bootstrap Execution Time (Remote.0)........................................................86
Client State at Bootstrap Execution Time (Remote.1)........................................................89
Requirements on individual PXE participants........................................................................90
UNDI Option ROM ..............................................................................................................90
BUSD Option ROM ..............................................................................................................93
Base-Code (BC) Option ROM..............................................................................................96
Network Bootstrap Program ................................................................................................98
4.4.1
4.4.2
4.4.3
4.4.4
4.4.5
4.4.6
4.5.1
4.5.2
4.5.3
4.5.4
4.5
5. PXE BIOS SUPPORT .......................................................................................................................99
5.1
5.2
5.1.1
5.1.2
BIOS Support..............................................................................................................................99
BIOS Requirements..............................................................................................................99
BIOS Recommendations ......................................................................................................99
PXE Support .............................................................................................................................100
UUID Support.....................................................................................................................100
5.2.1
Remote Wake Up Source....................................................................................................101
5.2.2
5.2.3
Bootstraps ...........................................................................................................................101
5.2.4 Memory Management ........................................................................................................101
5.2.5
Boot Integrity Services .......................................................................................................101
Version 2.1 September 20, 1999
Copyright © 1998, 1999 Intel Corporation. All rights reserved.
Preboot Execution Environment (PXE) Specification
iii
List of Tables
Table 1-1 Data Type Definitions.................................................................................................................................. 9
Table 2-1 PXE DHCP Options (Full List) ................................................................................................................. 19
Table 2-2 DHCPDISCOVER Packet to DHCP/Proxy DHCP Server ........................................................................ 24
Table 2-3 DHCPOFFER Packet from DHCP/Proxy DHCP Server........................................................................... 25
Table 2-4 Boot Server Request Packet....................................................................................................................... 26
Table 2-5 Boot Server ACK Packet ........................................................................................................................... 27
Table 2-6 Boot Server Credentials Request Packet.................................................................................................... 29
Table 2-7 Boot Server Credentials ACK Packet ........................................................................................................ 30
Table 2-8 DHCP/Proxy DHCPACK to Boot Service ................................................................................................ 37
Table 3-1 PXENV+ Structure .................................................................................................................................... 41
Table 3-2 !PXE Structure........................................................................................................................................... 43
Table 4-1 Option ROM Header for PXE ROMs........................................................................................................ 76
Table 4-2 Memory Map after video initialization ...................................................................................................... 78
Table 4-3 Memory Map after UNDI ROM Transferred to UMB from BIOS ROM.................................................. 79
Table 4-4 Memory Map after UNDI ROM Initialized ............................................................................................... 80
Table 4-5 Memory Map after BUSD ROM Transferred to UMB from BIOS ROM ................................................. 81
Table 4-6 Memory Map after BUSD ROM Initialized .............................................................................................. 81
Table 4-7 Memory Map after BC ROM Transferred to UMB from BIOS ROM ...................................................... 82
Table 4-8 Memory Map after BC Option ROM Initialized........................................................................................ 83
Table 4-9 Memory Map after PXE BC Runtime Loaded........................................................................................... 86
Table 4-10 Memory Map after REMOTE.0 Downloaded ......................................................................................... 88
Table 4-11 Memory Map after REMOTE.1 Downloaded ......................................................................................... 89
Table 4-12 Memory Map after REMOTE.1 Started .................................................................................................. 90
Table 4-13 UNDI ROM ID Structure ........................................................................................................................ 91
Table 4-14 BUSD ROM ID Structure........................................................................................................................ 94
Table 4-15 BC ROM ID Structure ............................................................................................................................. 97
Table 5-1 Format of SYSID Entry Point Structure .................................................................................................. 100
Table 5-2 Format of the SYSID BIOS structures..................................................................................................... 100
Table 5-3 Format of the UUID BIOS structure........................................................................................................ 100
List of Figures
Figure 1-1 PXE APIs ................................................................................................................................................. 11
Figure 2-1 PXE Boot ................................................................................................................................................. 13
Figure 2-2 PXE Client Timeouts................................................................................................................................ 16
Figure 2-3 PXE Client Response to DHCP Server Containing a Proxy DHCP Service ............................................ 17
Figure 2-4 PXE Client Response to DHCP Server Supplying Boot Service Discovery Code ................................... 18
Figure 2-5 MTFTP Listen .......................................................................................................................................... 32
Figure 2-6 MTFTP Open ........................................................................................................................................... 33
Figure 2-7 MTFTP Receive ........................................................................................................................................ 34
Figure 3-1 PXE Stack–Before and After Remote Boot.............................................................................................. 39
Figure 3-2 PXE API Calling Sequence ...................................................................................................................... 45
Figure 3-3 Early UNDI API Usage ............................................................................................................................ 46
Figure 3-4 Unloading the base code........................................................................................................................... 48
Figure 3-5 Interrupt Service Routine Operation......................................................................................................... 68
Figure 4-1 Pre-Split ROM PXE Architecture ............................................................................................................ 74
Figure 4-2 Split Base Code and UNDI Code ............................................................................................................. 75
Figure 4-3 PXE IPL ................................................................................................................................................... 77
Figure 4-4 UNDI Option ROM Initialization............................................................................................................. 79
Figure 4-5 Base-Code Option ROM Initialization ..................................................................................................... 82
Figure 4-6 UNDI Option ROM Boot ......................................................................................................................... 85
Version 2.1 September 20, 1999
Copyright © 1998, 1999 Intel Corporation. All rights reserved.
Preboot Execution Environment (PXE) Specification
4
1. Introduction
A common problem faced by IT managers is to ensure that client systems in their enterprises can
boot appropriate software images using appropriate configuration parameters. These selected boot
images and configuration parameters must be acquired from selected servers in the enterprise as
dictated by the needs of the particular environment, the capabilities or mission of the user, the
resources available within the client, etc. Furthermore, these clients should boot consistently and in
an interoperable manner regardless of the sources or vendors of the software and the hardware of
both client and server machines.
This goal can be accomplished only through a uniform and consistent set of pre-boot protocol
services within the client that ensure that network-based booting is accomplished through industry
standard protocols used to communicate with the server. In addition, to ensure interoperability, the
downloaded Network Bootstrap Program (NBP) must be presented with a uniform and consistent
pre-boot operating environment within the booting client, so it can accomplish its task independent
of, for example, the type of network adapter implemented in the system. This capability is useful in
enhancing the manageability of the client machine in several situations; for example:
! Remote new system setup. If the client does not have an OS installed on its hard disk, or the
client has no hard disk at all, downloading an NBP from a server can help automate the OS
installation and other configuration steps.
! Remote emergency boot. If the client machine fails to boot due to a hardware or software
failure, downloading an executable image from a server can provide the client with a specific
executable that enables remote problem notification and diagnosis.
! Remote network boot. In instances where the client machine has no local storage, it can
download its system software image from the server in the course of normal operation.
This document specifies the Preboot Execution Environment (PXE). PXE embodies three
technologies that will establish a common and consistent set of pre-boot services within the boot
firmware of Intel Architecture systems:
! A uniform protocol for the client to request the allocation of a network address and
subsequently request the download of an NBP from a network boot server.
! A set of APIs available in the machine’s pre-boot firmware environment that constitutes a
consistent set of services that can be employed by the NBP or the BIOS.
! A standard method of initiating the pre-boot firmware to execute the PXE protocol on the
client machine.
In summary, using the capabilities described above, a newly installed networked client machine
should be able to enter a heterogeneous network, acquire for itself a network address from a DHCP
server, and then download an NBP to set itself up. This sets the stage to enable IT managers to
customize the manner in which their network client machines go through a network-based booting
process.
Version 2.1 September 20, 1999
Copyright © 1998, 1999 Intel Corporation. All rights reserved.
Preboot Execution Environment (PXE) Specification
5
1.1 Structure of this Document
This document is organized in a top down manner from the point of view of the PXE client “boot
behavior”. This section contains an overview. The next two sections specify the external behavior of
PXE in platform architecture independent terms, so both sections specify the functionality PXE
provides, and are of interest to all system providers regardless of platform or BIOS type. The last two
sections specify implementation details and required platform support for PXE in the Intel
Architecture PC platform.
Section 2 begins with a description of the network protocol used by the booting PXE client and the
Redirection and Boot servers that provide the client with boot information and files. This section
covers the network visible behavior of PXE and is defined in terms of network protocol.
Section 3 describes the PXE APIs available to the boot program(s) downloaded from the Boot
Server. This section specifies the standard interface provided by PXE to the downloaded boot
program. With the exception of finding the API entry point, this section is platform architecture
independent.
Section 4 specifies the procedure a standard Intel Architecture PC BIOS uses to find and load the
boot ROM code (the PXE Initial Program Load) and the PXE loader behavior in this environment.
Section 5 PXE BIOS Support, specifies the BIOS support required to support PXE in a standard
Intel® Architecture PC.
Three new capabilities, described for the first time in this document, have been added to the PXE
specification:
! Boot Server Discovery.
! Protected Remote Boot.
! The ability to split PXE Base Code and UNDI code into separate ROMs.
1.2 Related Documents
After referring to a related specification the first time, this document uses the [TAG] reference from
this section to refer to related specifications.
1.2.1 Wired for Management
[WFM]
Wired for Management (WfM) Baseline
Version 2.0, December 23, 1998
http://developer.intel.com/ial/wfm/wfmspecs.htm
PXE PDK
http://www.intel.com/ial/wfm/tools/pxe/index.htm
PXE Powerpoint Presentation
http://www.intel.com/ial/wfm/class/index.htm
Version 2.1 September 20, 1999
Copyright © 1998, 1999 Intel Corporation. All rights reserved.
Preboot Execution Environment (PXE) Specification
6
Boot Integrity Services API Specification
Version 1.0
http://www.intel.com/ial/wfm/wfmspecs.htm
[BIS]
1.2.2 BIOS Specifications
System Management BIOS Reference Specification
Version 2.2, March 16, 1998
ftp://download.intel.com/ial/wfm/smbios.pdf
http://www.phoenix.com/techs/specs.html
BIOS Boot Specification
Version 1.01, January 11, 1996
http://www.phoenix.com/techs/specs.html
POST Memory Manager Specification
Version 1.01, January 8, 1998
http://www.phoenix.com/techs/specs.html
Plug and Play BIOS Specification
Version 1.0A, May 5, 1994
http://www.phoenix.com/techs/specs.html
1.2.3 UUID Documents
CAE Specification
DCE 1.1: Remote Procedure Call
Document Number: C706
Universal Unique Identifier Appendix
Copyright (c) 1997 The Open Group
http://www.opengroup.org/onlinepubs/9629399/toc.htm
1.2.4 Other PC System Documents
PC 9x System Design Guide, v1.0
http://developer.intel.com/design/pc98
Network PC Design Guidelines, v1.0b
http://developer.intel.com/design/netpc/netovr.htm
ftp://download.intel.com/ial/wfm/netpc.pdf
[SM BIOS]
[BBS]
[PMM]
[PnP BIOS]
[UUID]
[PC98]
[NETPC]
1.3 Data Types and Terms Used in This Guide
The following conventions and terms are used in this specification:
!PXE
BAID
Acronym for the !PXE structure. This structure is used by protocol
drivers that need to locate and use PXE services.
Acronym for a BIOS Aware IPL Device. The BIOS contains all code
required to IPL from the device.
Base Memory
The first 640K bytes of memory in the system.
BCV
Acronym for Boot Connection Vector. A field in the PnP header for a
device with an associated option ROM
Version 2.1 September 20, 1999
Copyright © 1998, 1999 Intel Corporation. All rights reserved.