###############################################################################

CHELSIO EFI UNDI v0.1 User Guide

###############################################################################

_____________________________________________________________________________


Contents

Copyright and Trademark Notice
Preface
1. EFI PXE Boot Process Brief
2. What's in the package
2.1 EFI Flash Utility
2.2 EFI Shell loadable driver binary
2.3 Driver Binary for Option ROM
2.4 Bug/Issue tracker document
2.5 About the EULA
2.5 Release Information
3. Getting started
3.1 Flashing Option ROM to the HBA
3.2 Configuring PXE Server
3.3 Starting PXE boot
3.4 Adding PXE bootable OS entry statically in Boot Manager
4. Support
_____________________________________________________________________________


Copyright and Trademark Notice

Chelsio is a registered trademark of Chelsio Communications.
Any references to third party copyrighted terms or trademarks belong to
their respective owners.
_____________________________________________________________________________


Preface

This document describes the installation and use of the EFI PXE boot solution
designed for Chelsio's T3 series HBA hardware. This solution requires an
x64 system with UEFI 2.1 enabled platform.
_____________________________________________________________________________


*** 1. EFI PXE Boot Process Brief ***

As a general overview, a high level view of the network EFI PXE boot process
from a PXE based server follows:

a. The EFI PXE client boots up and starts up the PXE boot Option ROM.
b. The EFI PXE boot Option ROM sends a DHCP request to the DHCP server.
c. The responding DHCP request (should) contain an additional DHCP option,
the "filename" options.
d. The EFI PXE client attempts to download the OS image file specified over
TFTP from the PXE server.
e. Once the PXE client downloads the file it executes it and from this
point PXE is out of the picture and the bootable OS takes over.
_____________________________________________________________________________


*** 2. What's in the package ***

The software supplied in .zip file are:
a. EFI based Chelsio Flash Utility (ChelsioFw.efi)
b. EFI-PXE manually loadable binary (UNDI.efi)
c. EFI-PXE Option ROM binary (UNDI.rom)
d. Bug/Issue tracker document (ERRATA.txt)
e. Chelsio End User License Agreement (EULA.txt)
f. This document (README.txt)
g. Release information (RELEASE.txt)

Note:Platform specific binaries (ChelsioFw.efi, UNDI.efi, and
UNDI.rom) are found in three directories, either in "IPF" (for Itanium
based machines), in "x86" (for x86 based machines), and "x64" (for x64 /
x86-64 based machines).

*** 2.1 EFI Flash Utility (ChelsioFw.efi) ***

The EFI flash utility is used in one of the steps needed to program the EFI
PXE image into the Chelsio HBA Option ROM. This is needed for a Chelsio
card that does not already have a valid EFI image on it.

*** 2.2 EFI Shell loadable driver binary (UNDI.efi) ***

The Chelsio EFI driver binary which is loaded into memory manually from EFI
Shell prompt using the EFI shell "load" command. If there is no EFI image
on the Chelsio HBA card use this image into memory first.

*** 2.3 Driver Binary for Option ROM (UNDI.rom) ***

This is the Chelsio EFI driver binary that is meant to be burned onto the
Option ROM using the EFI flash utility "ChelsioFw.efi". If there is no EFI
image on the Chelsio HBA card, first load the "UNDI.efi" into the
host memory and then use this image ("UNDI.rom") to burn to the
Option ROM.

*** 2.4 Bug/Issue tracker document (ERRATA.txt) ***

Describes the known bugs and issues with this release.

*** 2.5 About the EULA (EULA.txt) ***

Use of the software means that you accept the terms of the EULA.

*** 2.6 Release Information (RELEASE.txt) ***

ReleaseNotes.txt file gives information about released driver version,
enhancements, bug fixes and know issues.
_____________________________________________________________________________


*** 3. Getting started ***

*** 3.1 Flashing Option ROM to the HBA ***

An EFI Flash utility (ChelsioFw.efi) is used to program the EFI PXE Option
ROM image onto the Chelsio HBAs. You may have to put the file UNDI.rom
image into the /EFI/Network directory from where Flash utility is run.

Note: The Chelsio EFI-PXE driver should be loaded in system RAM before
using ChelsioFw.efi EFI Flash utility. In the case where there is no EFI
driver image on Chelsio HBA Option ROM, the EFI driver should be loaded
manually from the EFI shell prompt using the load command on the file
"UNDI.efi". As an example, type: "load UNDI.efi". After this is
done then the "ChelsioFw.efi" flash utility should be run with the EFI PXE
Option ROM image "UNDI.rom".

Example # 1: This examples assumes you are using an USB flash drive as a
storage media for the necessary files and you already have the EFI PXE driver
loaded on system RAM. Follow the steps below:
a. Create "ChelsioImages" folder on USB flash drive.
b. Put the file "ChelsioFw.efi" in the "ChelsioImages" folder.
c. Create an "/EFI/Network" directory under root folder(fs0).
d. Put the file "UNDI.rom" image under "fs0:/EFI/Network" dir.
e. Plug in the USB flash drive in the server.
f. Execute the command "map -r" from the EFI shell.
g. You should be able to see the USB drive as one of the attached drives.
Device mapping table
USB --> fs0 : Acpi(PNP0A03,1)/PCI(0|0)/Usb(0,0)/HD(Part1,Sig1B16CC00-ABD0-0)
fs1 : Acpi(PNP0A03,1)/PCI(0|0)/Scsi(Pun0,Lun0)/HD(Part4,SigG0)
blk0 : Acpi(PNP0A03,1)/PCI(0|0)/Usb(0,0)
blk1 : Acpi(PNP0A03,1)/PCI(0|0)/Usb(0,0)/HD(Part1,Sig1B16CC00-ABD0-0)
blk2 : Acpi(PNP0A03,1)/PCI(0|0)/Scsi(Pun0,Lun0)
h. Go to fs0:
i. cd ChelsioImages
j. Run "ChelsioFw.efi". It should program the EFI PXE driver on Chelsio HBA
Option ROM.
k. User MUST reboot the system to bring Chelsio EFI PXE driver in effect.

Example # 2: This examples assumes you are using an USB flash drive as a
storage media for the necessary files and the EFI PXE driver is not already
loaded in system RAM. Follow the steps below:
a. Put the "ChelsioFw.efi" & "UNDI.efi" files in the root folder e.x: fs0.
b. Create the "/EFI/Network" directory under the root "fs0:" folder.
c. Put the "UNDI.rom" file under the "/EFI/Network" dir.
d. Plug in the USB flash drive into the Itanium server.
e. Execute the command "map -r" from the EFI shell.
f. You should be able to see USB drive as one of the attached drives.
Device mapping table
USB --> fs0 : Acpi(PNP0A03,1)/PCI(0|0)/Usb(0,0)/HD(Part1,Sig1B16CC00-ABD0-0)
fs1 : Acpi(PNP0A03,1)/PCI(0|0)/Scsi(Pun0,Lun0)/HD(Part4,SigG0)
blk0 : Acpi(PNP0A03,1)/PCI(0|0)/Usb(0,0)
blk1 : Acpi(PNP0A03,1)/PCI(0|0)/Usb(0,0)/HD(Part1,Sig1B16CC00-ABD0-0)
blk2 : Acpi(PNP0A03,1)/PCI(0|0)/Scsi(Pun0,Lun0)
g. Go to fs0:
h. cd ChelsioImages
i. Run the "load UNDI.efi" command on the EFI shell. This should
load the EFI PXE driver into the system RAM.
j. Run "ChelsioFw.efi". It should program the EFI PXE driver on Chelsio HBA
Option ROM.
k. You MUST reboot the system to bring Chelsio EFI PXE driver into effect.

You can verify if Chelsio EFI PXE driver is programmed properly in Options ROM
by executing following steps in the EFI shell:
a. After rebooting the Itanium server, Run "driver -b" on the EFI shell
b. Look for "Chelsio SNP Driver" string in the drivers list
c. Make sure if driver version matches the version mentioned in
ReleaseNotes.txt.

For example:
T D
D Y C I
R P F A
V VERSION E G G #D #C DRIVER NAME IMAGE NAME
== ======== = = = == == ===================== =================
15 00000020 B - - 5 13 PCI Bus Driver PciBus
23 01000021 D - X 1 - Chelsio SNP Driver PciROM:03:00:00:000<--Chelsio Drv
27 00000020 D X - 2 - Usb Keyboard Driver UsbKb

Display Format:
DRV - The handle number of the EFI driver
VERSION - The version number of the EFI driver
TYPE - The driver type.
[B] Bus Driver
[D] Device Driver
CFG - The driver supports the Driver Configuration Protocol
DIAG - The driver supports the Driver Diagnostics Protocol
#D - The number of devices that the driver is managing
#C - The number of child devices that this driver has produced
DRIVER NAME - The name of the driver from the Component Name Protocol
IMAGE NAME - The file path from which the driver was loaded
Note: PciROM:03:00:00:000 = PciROM::::


*** 3.2 Configuring PXE Server ***

The following components are required to configure a server as PXE Server:
a. DHCP Server
b. TFTP Server

PXE server configuration steps for Linux could be found on following links:
a. http://linux-sxs.org/internet_serving/pxeboot.html
b. http://www.softorchestra.com/pxe/
c. http://linux.duke.edu/doc/pxe-Quick-Start.ptml
d. http://www.howtoforge.com/ubuntu_pxe_install_server

PXE server configuration steps for Windows could be found on following links:
a. http://tftpd32.jounin.net/ (Use port # 67, set PXE option and provide
bootable file name in settings)
b. http://unattended.sourceforge.net/pxe-win2k.html

Note: Chelsio Communications does not take any resposibility about contents
given in above mentioned links. Those are given for example purposes only.

*** 3.3 Starting PXE boot ***

There are two ways to do PXE boot in EFI once Chelsio the EFI PXE driver is
loaded.
a. From the EFI Boot Manager

a. From the EFI Boot Manager
a.1) On EFI Boot Manager, go to "Boot Configuration" option
a.2) On "Boot Configuration" menu, go to "Boot From File" option
a.3) On "File System Explore" menu, select proper MAC address identifying
Chelsio HBA interface
a.4) After selecting proper MAC interface, "Select a db-profile" as "- none -".
a.5) At this stage, Chelsio EFI PXE driver will grab the image from PXE server
and boot the OS.


*** 3.4 Adding PXE bootable OS entry statically in Boot Manager ***

The following are steps to add a PXE bootable OS entry statically in the Boot
Manager. These steps are needed to avoid executing the PXE boot steps mentioned
above every time the server boots up.

a) On the EFI Boot Manager, go to the "Boot Configuration" option
b) On "Boot Configuration" menu, go to the "Add Boot Entry" option
c) On "File System Explore" menu, select the proper MAC address identifying
the Chelsio HBA interface for the OS to be booted
d) Enter the description for the entry (For example, PXE-Linux)
e) After selecting the proper MAC interface, "Select a db-profile" as "- none -".
f) Enter 'none' for the Load Options
g) Press "Y" to save the changes in NVRAM
i) Go to the Boot Menu of the EFI Boot Manager
j) At this stage, select the newly added entry from the list. The Chelsio EFI PXE
driver will grab the image from the PXE server and boot the OS.

Note1: You have to create the proper partitions on the local disks with a valid
file system created on partitions for booting an OS from the PXE server.

Note2: If there is no link detected during driver install and if the link is connected
later, you need to wait for 45 sec to 1min before you can start ping or any application.
_____________________________________________________________________________


*** 4. Support ***

Please contact Chelsio support at support@chelsio.com for any issues regarding
the product.