Burning iPXE into Intel network adapters

Intel provides a utility called BootUtil.exe which allows you to update the expansion ROM images on many Intel network adapters.

Preparing the tools

A USB key

Download and save the two files:

Copy your iPXE ROM image and BootUtil.exe to the FreeDOS boot disk:

  mcopy -i dosboot.img bin/808610de.rom ::
  mcopy -i dosboot.img Intel*/Driver/APPS/BootUtil/DOS/BootUtil.exe ::

where bin/808610de.rom is the iPXE ROM image that you have built.

Transfer the bootable disk image to a USB key:

  dd if=dosboot.img of=/dev/sdX

where /dev/sdX is the device representing your USB key. Please note that this will erase any existing contents of the USB key.

Burning the iPXE ROM

Boot from the USB key. At the DOS A:\> prompt, type:

  bootutil -e

You should see a list of all Intel network adapters in your system, such as:

  Port Network Address Series  WOL Flash Firmware      Version
  ==== =============== ======= === =================== =======
    1   001B210A7760   Gigabit YES PXE                 1.0.13
    2   00270e0d5678   Gigabit YES PXE                 1.0.8

Identify the network adapter that you want to update. For this example, we shall update adapter number 1 (which has address 001B210A7760).

Update the ROM on your selected network adapter:

  bootutil -nic 1 -restoreimage -file 808610de.rom

where -nic 1 specifies your chosen network adapter, and 808610de.rom is the iPXE ROM image that you have built. You should see something like:

  A:\>bootutil -nic 1 -restoreimage -file 808610de.rom
  Intel(R) Ethernet Flash Firmware Utility
  BootUtil version 1.2.26.3
  Copyright (C) 2003-2010 Intel Corporation
  
  Programming flash on port 1 with flash firmware image
  Create restore image of NIC 1 before proceeding? (Y)es or (No): y
  
  Saving flash firmware image on port 1 to file 10DE4007.NIC...saved
  
  Flash update successful
  
  Restoring image on NIC 1 from file 8086107C.IBA..done
  
  Port Network Address Series  WOL Flash Firmware      Version
  ==== =============== ======= === =================== =======
    1   001B210A7760   Gigabit YES PXE                 1.2.0
    2   00270e0d5678   Gigabit YES PXE                 1.0.8

Reboot the machine and enter the BIOS setup. You should see iPXE show up as an option in your BIOS's boot selection menu.

Congratulations on successfully burning iPXE into your network card!

A boot ROM