You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Michael Brown 28cefdccc4 Merge from Etherboot 5.4 18 years ago
..
README.boot_over_ib Merge from Etherboot 5.4 18 years ago

README.boot_over_ib

.Boot over IB over Mellanox HCAs README - Pre-Alpha release
==========================================================
Document #2442, Rev 0.10, December 2005


1. General
-----------
This README describes the Boot over IB package which enables booting a Linux
kernel from a remote server using one of the Mellanox Technologies HCA
devices. The package is based on Etherboot 5.4.1.

The package actually implements a network driver for Etherboot. The wire
protocol is compliant with IP Over IB
(see http://www.ietf.org/html.charters/ipoib-charter.html for related
documents).

Etherboot uses a traditional setup of a DHCP server and a TFTP server to
perform a remote boot in a similar manner to Ethernet NICs. The binary code is
exported by the device as an expansion ROM image.


2. Supported Devices
---------------------
The following Mellanox Technologies HCA devices are supported:

PCI Device ID Mellanox HCA Device
----------------------------------------------
23108 InfiniHost (P/N MT23108)
25208 InfiniHost III Ex (P/N MT25208) (InfiniHost)
25218 InfiniHost III Ex (P/N MT25208) (MemFree)
25204 InfiniHost III Lx (P/N MT25204)


Note: For devices with more than one IB port, port 1 is used for
communications.


3. Compiling
----------------
From the src directory:
Run" make bin/<device>.<ext>
where device can be any of:
MT23108
MT25218
MT25208
MT25204

and ext can be rom, zrom etc. (see Etherbot doumentation for more details)

4. Directory Structure
-----------------------
All driver files are available under src/drivers/net/mlx_ipoib/. Under this
directory the following files can be found:

*** doc - Contains related documents including this file.
*** patches - Contains needed patch files.
*** samples - Contains sample files.
*** . Contains driver source files.


5. Burning the Flash Memory
----------------------------
The binary code resides in the same Flash device of the device firmware.
However the binary files are distinct and do not affect each other. Mellanox's
'mlxburn' tool is available for burning, however, it is not possible to burn
the expansion ROM image by itself; rather, both the firmware and expansion ROM
images must be burnt simultaneously.

'mlxburn' is part of the Mellanox Firmware Tools (MFT) package available for
download from www.mellanox.com under 'Firmware Downloads'.

Example:
The following command burns a firmware image and an expansion ROM image to an
InfiniHost Adapter Card (P/N MHX-CE128-T.ini):

mlxburn -fw fw-23108-a1-rel.mlx -exp_rom MT23108.bin
/dev/mst/mt23108_pci_cr0 -conf MHX-CE128-T.ini

*** Important Note: The .ini file must support burning expansion ROMs. For
example, the following lines must appear in the .ini file. If they do not,
please add them manually.

[ADAPTER]
exp_rom_en = true

Mellanox's web site contains firmware binary files with extension .bin.gz.
These files contain contain EVERYTHING the goes in the flash memory and thus
are NOT suitable for including the expansion rom image. Therefore, one use the
files with .mlx extension also available from Mellanox's web site.



6. Preparing the DHCP Server
-----------------------------
DHCP messages over IP Over IB are transmitted as broadcasts. In order to
distinguish between messages belonging to a certain DHCP session, the messages
must carry the client identifier option (see ietf documentation referred to
above). As of November 2005, ISC DHCP servers do not support this feature.
They are expected to support this at the end of 2005. In order to work this
out, the appropriate patch must be applied (see patches directory). It has
been tested on version isc-dhcpd-V3.0.4b2.

The DHCP server must run on a machine which supports IP Over IB. The Mellanox
IBGD package (gen1 or gen2) can be used to provide this.
To run the DHCP server from the command line use: dhcpd ib0

7. DHCP Server Configuration File
----------------------------------
In order for the DHCP server to provide configuration records for clients, an
appropriate configuration file dhcpd.conf must be created and put under /etc/.
A sample configuration file with comments can be found in the samples directory.


8. OpenSM
----------
To successfully boot over IB, the IB network must contain a Subnet Manager
which configures the IB network. OpenSM is part of the IBGD distribution and
can be used to accomplish that. Note that OpenSM may be run on the same host
running the DHCP server but it is not mandatory.


9. TFTP Server
---------------
When the DHCP session is completed, the client has the IP address of the TFTP
server from which it should download the kernel image. This TFTP server must
run on a machine with InfiniBand support. The client loads first a loader
image based on PXE API which then loads the kernel image. The image can be
found in the Linux kernel homepage:

http://www.kernel.org/pub/linux/boot/syslinux/


10. BIOS Configuration
-----------------------
The expansion ROM image presents itself to the BIOS as a boot device. As a
result, the BIOS will add it to the list of boot devices. The priority of this
list can be modified when entering the BIOS setup. The boot over IB image must
be set first for the BIOS to attempt to use it first.


11. Operation
--------------
When booting the client, a message appears on the screen describing the device
found and the revision of the code. The user has 3 seconds to press a key for
increased functionality:
'V' will increase verbosity.
'I' will prinit some information to aid in configuring the DHCP configuration
file. In this case the display will hold for 5 seconds to let the user
grasp the information.

Note that increasing verbosity will significantly slow boot time and will
print lots of debug messages to the screen.


12. Diskless Machines
----------------------
Most often it is required to boot a diskless machine. In these cases the
kernel mounts its root file system over NFS over one of the interfaces. For
this to happen on a client with only InfiniBand interfaces, the kernel image
must be configured accordingly and must include IP Over IB support. This can
be achieved either by compiling this into the kernel or using initrd images
that contain IP Over IB support.


13. Changing Defaults
----------------------
As stated the driver uses port 1 for its communications. To use another port
edit the file src/drivers/net/ib_driver.h and modify the definition of
PXE_IB_PORT.


14. Installing a package from Mellanox
--------------------------------------
When using a package obtained from Mellanox Technologies' web site, the
directory src/bin will contain the driver binary files. The files have a .bin
extension and are equivalent to the same files with .zrom extension.