                              Broadcom Corporation
                             5300 California Avenue,
                                Irvine, CA 92617

                     Broadcom BCM570x Mutiple Boot Agent (MBA)
                         [ PXE,RPL,BOOTP, and iSCSI Boot ]

                     Copyright (c) 2000-2008 Broadcom Corporation
                                All rights reserved.

******************************** IMPORTANT NOTE *******************************
*                                                                             *
* 1. All of the released binary images (except b57base.bin) have standard ROM *
* header which has embedded Vendor ID/Device ID. Some BIOS only load MBA image*
* if Vendor ID/Device ID matches the Vendor ID/Device ID of the controller.   *
* The default Vendor ID/Device ID in the released images are for BCM5701      *
* controller (0x14e4/0x1645). If this image is programmed to NIC without using*
* Broadcom's flashing utilities such as b57util.exe or upgfrm command in      *
* b57diag.exe, then the provided romhdr.exe must be used to update ROM header *
* with the Vendor ID/Device to match with intended controller.                *
* Similarily, in LOM application where MBA image is integrated to BIOS, it's  *
* mandatory to use romhdr.exe to update image's ROM header to match with      *
* intended target controller's Vendor ID/Device ID.                           *
*                                                                             *
* 2. MBA v3.1.22 and newer requires b57diag v5.0.5 and newer for NIC upgrade. *
*                                                                             *
* 3. UNDI driver is not fully supported in EFI IA-64 environment.  It might   *
*    not work correctly some platforms/environments.                          *
*                                                                             *
* 4. The first bootstrap for BOOTP download has to be within the range of     *
*    640K - 32K - sizeof(UNDI)+sizeof(base code).  This is normally about     *
*    520K.  The first phase of BOOTP bootstrap can download the rest of       *
*    image by interfacing with PXE API which is still in conventional         *
*    memory.                                                                  *
*    memory.                                                                  *
*                                                                             *
* Note: Base code image, b57base.bin, does not contain Vendor ID/Device ID    *
* information.  Therefore the "romhdr.exe"  utility does not apply to this    *
* type of image.                                                              *
*******************************************************************************

Introduction
============

This file describes the Broadcom Multiple Agent for Broadcom's BCM570X
10/100/1000 Mbps Ethernet Network Interface Controller.  Broadcom Multiple
Boot Agent (MBA) supports PXE,RPL,BOOTP, and iSCSI.  Multiple Agent driver is 
released in two set of binaries.  One for PCI/PCI-X devices and one for PCI 
Express devices.  The filename of PCI Express image is appended with an (e).

Use PCI Express images for the following devices:
BCM5751, BCM5721, BCM5751M, BCM5751F, BCM5789, BCM5753,    
BCM5753M, BCM5753F, BCM5781, BCM5752, BCM5752M, BCM5714,
BCM5714S, BCM5715, BCM5715S, BCM5780, BCM5780S, BCM5754,
BCM5754M,BCM5755, BCM5755M, BCM5787, BCM5787M,BCM5906,
BCM5906M,BCM5722,BCM5756,BCM5761,BCM5784,BCM5723

Use PCI/PCI-X images for the following devices:
BCM5700, BCM5701, BCM5702, BCM5703, BCM5704, BCM5705,
BCM5705M, BCM5705MFE, BCM5901, BCM5782, BCM5788,
BCM5705F.

Descriptions of binary images are as follows:

b57pxe.bin: This is a monolithic image that consists of both 
            base-code (BC) and UNDI code. This image should be used 
            on the NIC application.
            However, an adapter programmed with this image is still 
            operational in the motherboard's BIOS with built-in BC; 
            the BC on the adapter will be used.  This image only
            supports PXE. 

b57undi.bin: This is an UNDI image that consists of UNDI code only 
             (split implementation) which is intended for NIC 
             application.

b57base.bin: This is a BC image that consists of BC code only 
             (split implementation) which is intended for LOM application. 
             This module should be programmed on the motherboard's BIOS. 

b57undi.lom: This is an UNDI image that consists of UNDI code only 
             (split implementation) which is intended for LOM application.
             This module should be programmed on on the motherboard's BIOS.

b57pxe.lom : This is a monolithic image that consists of both 
             base-code (BC) and UNDI code. This image is intended for 
             LOM application.  This image only supports PXE.

b57umba.lom : This is an UNDI image that consists of UNDI code only 
             (split implementation) which is intended for LOM application.
             This UNDI driver supports PXE and RPL.
             This module should be programmed on on the motherboard's BIOS.

b57mmba.nic : This is a monolithic image that consists of both 
              base-code (BC) and UNDI code. This image should be used 
              on the NIC application. An adapter programmed with this image is 
              still operational in the motherboard's BIOS with built-in BC; 
              the BC on the adapter will be used.  This image supports
              both PXE and RPL.

b57mmba.lom : This is a monolithic image that consists of both 
              base-code (BC) and UNDI code. This image should be used 
              on the LOM application. This image supports both PXE and RPL.

b57rpl.lom : This is an image with RPL support only.  This image is intended
             for LOM application.

b57rpl.nic : This is an image with RPL support only.  This image is intended
             for NIC application.

romhdr.exe : This tool can be used to customize PXE image for different
             ASIC-based LOM applications.  It basically modifies the
             Vendor ID/Device ID in the ROM header of the image and
             then recalculates the checksum.  For instance, use b57undi.lom
             for BCM5700-based LOM.
               romhdr -v 0x14e4 -d 0x1644 -i b57undi.lom 

The following images are no longer released for PXE v3.1.17 or newer:

b57mba.lom: This is a BC image that consists of BC code only 
            (split implementation) which is intended for LOM application. 
             This module should be programmed on the motherboard's BIOS. 
             This base-code supports PXE and RPL.


b57mba.nic : This is a monolithic image that consists of both 
             base-code (BC) and UNDI code. This image is intended for 
             NIC application.  This image only supports PXE and RPL.


iSCSI support
=============

Broadcom Multiple Boot Agent also supports iSCSI Boot. iSCSI Boot driver is 
released seperately and is not a part of Multiple Boot Agent.  To add
iSCSI Boot support, iSCSI Boot ROM has to be programmed on the device's NVRAM.
For instance,

User can update/program iSCSI Boot ROM in the b57diag engineering shell
 
    upgfrm -fa:\iscsi.rom -i
     

Application
===========

Some example applications are used to clarify the usage of these binary 
images.

1. BCM570X LOM with PXE and RPL support: b57base.bin and b57umba.lom
   should be integrated with system BIOS.

2. BCM570X LOM with PXE support ONLY: b57base.bin and b57undi.lom
   should be integrated with system BIOS.

3. BCM570X NIC with PXE and RPL support: b57mmba.nic should be programmed
   to NIC's NVRAM (serial EEPROM/FLASH).

4. BCM570X NIC with PXE ONLY support: b57pxe.bin should be programmed
   to NIC's NVRAM (serial EEPROM/FLASH).



