Broadcom Corporation
16215 Alton Parkway,
Irvine, CA 92619-7013
Release Note
Broadcom BCM570x Multiple Boot Agent (MBA)
[ PXE,RPL, and BOOTP ]
April 07, 2005
Revision History
================
Version 8.1.53 April 07, 2005
--------------------------------
Enhancements:
=============
1. Remove support for Hamilton and HTLE devices.
Version 8.1.52 March 25, 2005
-----------------------------
Fixes:
======
1. Problem: PXE driver causes causing policy error in bit 31:28 of
register 0x7000. This problem only occurs with Baxter devices
when address lockout feature is enabled.
Cause: When Address Lockout feature is enabled, the NVRAM Access
register (0x7024) is not writable. If a write is attempted, a
policy error 0x9 will be posted in bit 31:28 of 0x7000.
Change: Changed PXE driver so that it doesn't write to register 0x7024
if address lockout feature is enabled on Baxter devices.
Impact: This policy error status is originally designed for diagnostic
purpose. However, TPM software may use this status and when there is an
error, it shuts down the TPM software. This shutdown feature can be
disabled via the OTP. When it is disabled, the policy error has no
effect on operation of the device other than to make the most significant
nibble of 0x7000 non-zero.
Version 8.1.51 March 16, 2005
-----------------------------
Enhancements:
=============
1. Add support for new device IDs, 5780 devices. The Vendor/
Device IDs for 5780 and 5780s are 0x14e4/0x166a and 0x14e4/0x166b,
respectively.
Version 8.1.50 March 15, 2005
-----------------------------
Enhancements:
=============
1. Add back support for Hamilton, HTLE, and Baxter devices.
Version 8.1.8 March 8, 2005
----------------------------
Fixes:
======
1. Problem: PXE processes DHCP Vendor Specific option (option 43) when
Class Identifier (DHCP option 60) is not present or doesn't contain
"PXEClient".
Change: Changed the DHCP logic in the base code so that it only
processes Vendor Specific option when Class Identifier is present
and contains "PXEClient".
Version 8.1.7 February 28, 2005
--------------------------------
Enhancements:
=============
1. Remove support for Hamilton, HTLE, and Baxter devices.
2. Request : Change driver so that it doesn't disable ASF/IPMI fix (set bit
18 of register 0x2018) for a problem where H/W generates double ACKs for
a single request.
Change : Change driver so that it doesn't write to register 0x2018
for Shasta, Baxter, and Hamilton devices. ASF/IPMI firmware can
enable/disable this fix anytime by clearing/setting that bit.
3. Enhance utility romhdr.exe (v1.0.5) to allow users to dump current
Vendor/ID of given ROM image.
For instance,
romhdr -verbose -i b57pxe.bin
The output is shown as follows:
Content of PCI Data Structure in ROM Image
===========================================
Vendor ID : 0x14e4
Device ID : 0x1645
Code/Data Revision : 0x8107
Version 8.1.6 February 25, 2005
--------------------------------
Fixes:
======
1. Problem: PXE hangs after BootIt utility to cycle through BIOS
sequence. (CQ# 12247)
Cause : During the boot sequence, devices on PCI slots get
reset. It causes the indirect access setting cleared.
Change: Changed PXE init code to re-enable indirect access
before reloading run-time code from the NIC.
Version 8.1.5 February 9, 2005
--------------------------------
Fixes:
======
1. Problem: MBA doesn't work with Hamilton/HTLE A1 or newer
devices.
Cause : ASIC IDs for Hamilton and HTLE A1 or newer have been
changed from 5 to 9 and 8, respectively.
Change: Changed PXE driver to accommodate the ASIC ID changes.
Version 8.1.4 January 11, 2005
--------------------------------
Fixes:
======
1. Problem: MBA doesn't work with Hamilton devices.
Cause : There is an ASIC problem where the device misdetects
parity errors. This causes DMA engine to halt after first
DMA write transaction.
Change: Added software workaround by disabling device's parity
detection logic.
Version 8.1.3 January 5, 2005
--------------------------------
Fixes:
======
1. Problem: Device still generates interrupts when device is in
the CLOSE state when there is incoming traffic. This should only
occur with firmware-based PXE NICs such as BCM5701/02/03/04.
Cause: In the receiving path, firmware doesn't check for value
of mailbox before DMAing status block to the host memory.
Change: Changed PXE firmware to DMA status block to the host
memory only when interrupt mailbox is zero.
2. Problem: MBA parameters are always retrieved/stored from/to NVRAM
of channel 0 region of Hamilton devices. (CQ#11806)
Cause: Ctrl-S menu initializing routine doesn't consider Hamilton
as dual MAC device.
Change: Changed Ctrl-S menu initializing routine so that it
considers Hamilton as dual MAC device in addition to BCM5704.
Enhancements:
=============
1. Updated Copyright banner to reflect year Of 2005.
Version 8.1.2 December 30, 2004
--------------------------------
Fixes:
======
1. Problem: UDP_WRITE API service sends out oversized packets during
IP fragmentation process if the datagram is larger than 1500.
(CQ#11775)
Cause: UNDI driver incorrectly returns MTU field as 1514 instead of
1500 in GET_ADAPTER_INFORMATION API.
Change: Changed UNDI driver to correcly return correct value for
MTU field in GET_ADAPTER_INFORMATION API.
Version 8.1.1 December 16, 2004
--------------------------------
Enhancements:
=============
1. Request: Added support for Baxter family devices (BCM5752,BCM5752M)
Change : Changed PXE code to support Baxter hardware.
Version 8.1.0 November 11, 2004
--------------------------------
Enhancements:
=============
1. Request: Added support for Hamilton family devices (BCM5714,BCM5714S,
BCM5715, BCM5715S).
Change : Changed PXE code to support Hamilton hardware.
Version 7.7.2 November 10, 2004
--------------------------------
Enhancements:
=============
1. Request: Minimize usage of UMB memory space.
Change : Changed PXE initialization code to initialize ROM size to
512-byte alignment instead of 2K-alignment when discarding unused
init code. In addition, NVRAM driver code is reorganized so that
programming and initializing code are discarded after ROM
initialization is done. Usage of UMB is reduced from 8K to 5.5K
per NIC.
2. Request: Preserve content of lower 14-bit of Serdes control
register which includes parameters of Predriver current,
Tx driver current, and pre-emphasis coefficient.
Change : Changed PXE firmware to preserve content of lower 14-bit
of Serdes control when TX Serdes overwrite feature is enabled.
Version 7.7.1 November 05, 2004
--------------------------------
Enhancements:
=============
1. Request: Added ST M45PExxx/Saifun SA25Fxxx/AT25F512N support for
Shasta family devices.
The following is the supported NVRAM summary:
SO : Bit 25, Flash Size, internal pull-up
SI : Bit 24, Protected Mode, internal pull-down
SCLK : Bit 1, Buffered Mode, internal pull-down
CS : Bit 0, Flash Mode, internal pull-down
[SO,SI,SCLK,CS] Device Description
--------------- ------------ ----------------------
1000 AT24C512 SEEPROM, AT24Cxxx, any size
0111 SA25F0xx Saifun SA25F005/010/020 (512KB/1MB/2MB)
1011 AT45DB011B Atmel Buffered 1MB Flash
1101 ST M45PEx0 ST M45PE80/M45PE40/M45PE20/M45PE10
8/4/2/1MB Flash
Change : Modified Flash driver to support above devices.
Version 7.7.0 September 23, 2004
--------------------------------
Enhancements:
=============
1. Request: Added support for BCM5751 devices in 12x12 packages.
Change : Changed PXE code to recognize devices with PCI vendor ID/device
ID of 0x14e4/0x16f7,0x14e4/0x16fd,0x14e4/0x16fe, and 0x14e4/0x16dd.
2k
. Request: Added interface to support ISCSI boot.
Change : Added EXTENDED INITIALIZE API to allow ISCSI boot software
to initialize the device with ISCSI parameters.
Fixes:
======
1. Problem: IPMI-PT path doesn't work when PXE is initialized first time.
Cause : There is a synchronization issue between IPMI firmware and PXE in
which PXE driver can overwrite the BMC MAC address which is previously
programmed by the IPMI firmware.
Change : Changed the PXE code to indicate to IPMI firmware when it's done
initialization and before polling for link state.
2. Problem: PXE doesn't display PFN (PCI Function Number) correctly
when PCI bus number contains HEX number. (CQ10831)
Change : Fixed converting routine to handle HEX number correctly.
Version 7.6.3 June 22, 2004
---------------------------
Enhancements:
=============
1. Request: Enhanced PXE driver so that PHY is not always reset
when ASF is enabled.
Change : Modified PXE code so that driver doesn't always reset
PHY when ASF is enabled and restarts autoneg if PHY advertising
registers were not set to advertise maximum capability by
running software entity before PXE.
Version 7.6.2 June 17, 2004
---------------------------
Enhancements:
=============
1. Request: Added Capacitive Coupling support for BCM5705 devices.
Change : Changed PXE code to enable capacitive coupling feature on
the PHY if this feature is administratively enabled.
Version 7.6.1 June 1, 2004
---------------------------
Enhancements:
=============
1. Request: Added support for BCM5789 devices.
Change : Changed PXE code to recognize devices with PCI vendor ID/device
ID of 0x14e4/0x169d.
Version 7.6.0 May 28, 2004
---------------------------
Enhancements:
=============
1. Request: Added support for BCM5751F devices.
Change : Changed PXE code to recognize devices with PCI vendor ID/device
ID of 0x14e4/0x167e.
Version 7.5.15 May 13, 2004
----------------------------
Fixes:
======
1. Problem : CIOBE parts with multiple split transactions enabled may
cause system to hang.
Cause : CIOBE has an errata related to the multiple split transaction
feature.
Change:
Changed the UNDI driver to disable multiple split transaction
feature in CIOBE parts.
Impact:
None.
2. Problem : PXE cannot returns control to BIOS when the BIOS stack is
corrupted on some rare platforms. This is a software workaround for
system BIOS issue.
Cause : Some BIOS incorrectly setup processor stack space which is
above 0:7c00. It should setup the stack space below 0:7c00.
NBP (Network Boot Program) might corrupt this stack space and then
returns back to the PXE's Initial Program Loader. Since BIOS stack
is corrupted, PXE cannot return control back to the BIOS.
Change: Changed the PXE's IPL code to detect if the BIOS stack is
corrupted or not. If it's corrupted, then PXE's IPL code returns
control back to the system BIOS via INT 18h instead of a far return.
Version 7.5.14 April 21, 2004
-------------------------------
Fixes:
======
1. Problem : TFTP download fails if TFTP server doesn't response to
the first TFTP ACK. (CQ#9924)
Cause : This is a bug in the base code. Whenever the TFTP server
doesn't response the first TFTP ack, the TFTP open code intends to
send TFTP Read Request again with different UDP source port number
(incremented by 1). There is a bug in the code where it doesn't
reinitialize the packet as TFTP Read Request packet. Therefore, it
sends out the packet as TFTP ACK packet since the last packet being
sent was a TFTP ACK.
Change : Changed TFTP open routine to reinitialize the packet as TFTP
Read Request whenever a read request is transmitted.
Enhancements:
=============
1. Change Base code banner to have Broadcom copyright and use standard
version number.
Version 7.5.13 April 19, 2004
-------------------------------
Enhancements:
=============
1. Enhance UNDI driver to have better a Bit Error Rate (BER)
performance for BCM5705 and Shasta family devices.
Change : Changed UNDI driver to initialize the PHY core in
order to adjust the bias current for the ADC but not the
hybrid or DPLL.
Fixes:
======
1. Problem: UNDI driver might not detect link if RJ-45 cable
has broken pairs with Shasta family devices.
Cause : Ethernet@WireSpeed is not enabled and UNDI doesn't
wait long enough before declaring no link.
Change : Changed UNDI driver to enable Ethernet@WireSpeed and
wait longer before declaring no link.
Version 7.5.12 March 26, 2004
-------------------------------
Fixes:
======
1. Problem: Shasta shared traffic/link LED mode doesn't work.
Cause : There is a bug in Shasta A0/A1 (MAC block) where shared
traffic/link LED mode doesn't work correctly.
Change : Changed UNDI driver to program the device to use this feature
provided by the PHY block.
Impact :
None.
Version 7.5.11 March 26, 2004
-------------------------------
Fixes:
======
1. Problem: RIS instalation fails with BCM5751 A1. (CQ#9619)
Cause : There is a bug in UNDI GET_NIC_TYPE API routine where it always
returns PCI revision ID with a value of 0.
Change : Fixed GET_NIC_TYPE API routine so that it returns correct
revision ID of the device.
Impact :
None.
Enhancements:
=============
1. Enhanced so that UNDI driver doesn't program LED mode for Shasta family
devices. LED mode is now programmed only by the boot code firmware.
Impact :
None.
Version 7.5.10 March 1, 2004
-------------------------------
Enhancements:
=============
1. Added support so that PXE can run concurrently with ASF for
BCM575x/BCM572x.
Impact :
None.
Version 7.5.9 Feburary 23, 2004
-------------------------------
Enhancements:
=============
1. Enable H/W fixes for BCM5721/51.
Change : Changed PXE code to enable Rx FIFO fix.
Impact :
None.
Version 7.5.8 Feburary 17, 2004
-------------------------------
Fixes:
======
1. Problem: PCI Express link drops after a GRC reset.
Change : BCM5721/51 A1 or new silicon has fixes so that PCI Express
link is maintained after a GRC reset. Changed PXE code to enable this
fix so that PCI express link doesn't drop.
Impact :
None.
Version 7.5.7 January 28, 2004
-------------------------------
Fixes:
======
1. Problem: If Boot Protocol is configured to other than PXE, then
network boot will be PXE protocol in the second network boot
retry. (CQ#9305)
Cause : Technically, this is a bug in the bootcode since it doesn't
put proper boot protocol information into shared memory under PXE
info after a software reset.
Change : Changed PXE code to access NVRAM directly to extract boot
protocol information, PXE speed, etc...
Impact :
None.
Version 7.5.6 January 23, 2004
-------------------------------
Fixes:
======
1. Problem: System generates a NMI whenever driver issues software
GRC reset.
Cause : There is a bug in the BCM5751/21 A0 silicon where PCI-E
link drops whenever device GRC reset issued. This causes device
not generating Completion TLP associated with the last Configuration
Write to the chipset. Due to this abnomality, the chipset will
generate a NMI as fatal completion timeout error.
Change : Added a software workaround in PXE driver so that core clock
is slowed down to 6.25MHz which will give some time for the PCI-E block
to send back Completion TLP to the chipset.
Impact :
None.
Version 7.5.5 January 14, 2004
-------------------------------
Enhancements:
=============
1. Request: After a GRC reset, link is dropped and therefore retrained
with link partner. Link retrain might take up to 500ms. If device
is accessed before link retrain is complete, system might lock up or
encounter fatal errors. This change only applies to BCM5751/21
(PCI express family) revision A0 devices..
Change: Changed chip reset routine to delay 500ms after A GRC reset.
Impact:
None.
2. Request: Update Copyright banner to reflect year Of 2004.
Change: Changed Copyright banners.
Impact:
None.
3. Request: Add additional LED modes for BCM575x/2x family.
Change: Changed to support new LED modes.
Impact:
None.
Version 7.5.4 December 23, 2003
-------------------------------
Fixes:
======
1. Problem: Blink LED function doesn't work on a certain systems. (CQ#9054)
Cause : Keyboard input buffer is flushed first in the blinking LED
routine. However, keyboard buffer flushing routine might stuck in a
loop if there is a key returned via INT 16h AH=1.
Change : Fixed the keyboard flushing routine so that INT 16h AH=0 is
used to retrieve the key if a key is available via INT 16h AH=1.
Impact :
None.
Enhancements:
=============
1. Request: After a GRC reset, link is retrained with link partner. Link
retrain might take up to 300ms. If device is accessed before link
retrain is complete, system might lock up.
Change: Changed chip reset routine to delay 300ms after a GRC reset.
Impact:
None.
Version 7.5.3 November 24, 2003
-------------------------------
Fixes:
======
1. Problem: System locks up when PXE boot is aborted or PXE server is not
found. This problem only occurs with BCM5721/51-based
NICs/LOMs and PCI-E system is v1.0. (CQ#8917)
Cause : PXE exit code doesn't have the reset workaround for BCM5721/
51-based NICs/LOMs.
Change: Add reset workaround in PXE exit code.
Impact:
None.
Version 7.5.2 November 19, 2003
-------------------------------
Fixes:
======
1. Problem: PXE loader cannot load phase 2 of PXE run-time image. PXE displays
"!PXE structure was not found in UNDI driver code segment.". This
problem only occurs in BCM575x-based NICs. (CQ#8892)
Cause : NVRAM interface access has to enabled in order to read/write to
NVRAM. PXE init code enables access during init time but is turned
off later by the boot code.
Change: Enable NVRAM access on every NVRAM lock and disable NVRAM access
on every NVRAM unlock.
Impact:
None.
Version 7.5.1 November 18, 2003
-------------------------------
Enhancements:
=============
1. Request: Add full support for BCM5751/21-based NICs/LOMs (PCI Express
interface).
Change: Changed PXE to initialize proper register setting for PCI express
interface.
Impact:
None.
2. Request: Add Shared/Link Led option for BCM575x family.
Change: Initialize LED register based on NVRAM configuration.
Impact:
None.
Version 7.5.0 November 4, 2003
-------------------------------
Fixes:
=====
1. Problem: Multicast MAC address is not filtered correctly if the most
significant bit (bit 7) of any byte in the multicast MAC address
is set. (CQ#8786)
Cause : Multicast filtering function in BCM570x uses hashing scheme of
CRC-32 value of the multicast MAC address. There is a problem
in the CRC-32 calculating routine when the most significant
bit (bit 7) of any byte in byte stream is set.
Change: Fixed CRC-32 calculating routine.
Impact:
None.
2. Problem: ASF/IPMI doesn't work if BIOS just calls UNDI interface to query
MAC address and doesn't call UNDI interface to initialize the
interface for a network boot.
Cause : When UNDI API UNDI_GET_INFO is called, UNDI code halts CPUs so that
there is no contention and PXE firmware will be loaded on.
Change : Changed UNDI shutdown routine so that CPUs are reset in the above
scenario.
Impact :
None.
Enhancements:
=============
1. Request:
Add support for BCM575x-based NICs/LOMs.
Change:
Changed PXE code to recognize and support BCM575x-based
NICs/LOMS.
Impact:
None.
Version 7.0.2 September 22, 2003
-------------------------------
Enhancements:
=============
1. Request:
Add support for BCM5705F-based NICs/LOMs.
Change:
Changed PXE code to recognize and support BCM5705F-based
NICs/LOMS.
Impact:
None.
Version 7.0.1 August 28, 2003
----------------------------
Fixes:
=====
1. Problem: BCM5701-based NIC/LOM PXE might use zero MAC address
when it's used with older version of boot code. This
will cause PXE to fail in network boot. (CQ#8382)
Cause : PXE assumes that MAC address are programmed by the bootcode.
However, older version of boot code doesn't program MAC
address correctly in a certain scenario. PXE v6.8.1 should
have fixed this problem. However, serial EEPROM driver has
a bug which causes MAC address in the serial EEPROM cannot
be read correctly.
Change: Fixed serial EEPROM driver so that MAC address can be read
correctly.
Impact:
None.
Version 7.0.0 August 18, 2003
----------------------------
Enhancements:
=============
1. Request:
Improve bit error performance of 5703AX and 5704AX when used
with long cable lengths.
Change:
Program the phy's ADC and Gamma registers to more optimum
settings.
Impact:
None.
2. Request:
Improve Serdes drive levels on 5704s.
Change:
Programed the serdes config registers so that SerDes' drive
transmission level is 1.2V.
Impact:
None.
Fixes:
======
1. Problem: UNDI initializing doesn't detect presence of base code if BIOS
doesn't load base code into 2K-boundary of UMB. This should
only occur when split image is used.
Cause : UNDI initializing code scans for presence of base code in
2K-boundary.
Change: UNDI initializing code is changed to scan for presence of
base code in 512 byte boundary.
Impact: None.
Version 6.8.3 August 5, 2003
----------------------------
Fixes:
======
1. Problem: One of the hardware fixes in BCM5704 B0 causes problem in some
of the PCI-X systems.
Change: PXE driver is changed to disable this fix.
Impact: None.
Version 6.8.2 July 22, 2003
----------------------------
Fixes:
======
1. Problem: BCM5704-based LOM cannot be waken up after shutdown from DOS
during PXE boot. This problem can only occur on systems that
don't issue a PCI reset to the LOM device during DOS shutdown.
Cause : In SLIM PXE implementation, PXE firmware is loaded to the
RX-CPU to handle RX path traffic and other miscellaneous
management functions. Boot code firmware, that monitors PCI
main power going away and setup WoL, running on Rx-CPU no
longer runs.
Change: PXE firmware is changed to monitor presence of main PCI power in
addition to its main function that handles Rx path traffic.
If main power is detected going away, PXE firmware issues a
device reset so that bootcode can run again in order to setup WoL.
Impact:
None.
Enhancements:
=============
1. Request:
Enable hardware fixes in 5704_Bx parts for known 5704 Ax errata.
Change:
Added code to driver init routines to enable hardware fixes in
5704 B0 silicon. See 5704 errata for more details info about
the changes/fixes in B0 silicon.
Impact:
None.
Version 6.8.1 July 10, 2003
----------------------------
Fixes:
======
1. Problem: PXE might use zero MAC address when it's used with older
version of boot code. This will cause PXE to fail in
network boot. This should only happen on a certain
LOM applications where WoL is disabled.
Cause : PXE assumes that MAC address are programmed by the bootcode.
However, older version of boot code doesn't program MAC
address correctly in a certain scenario.
Change: If MAC registers contain zero MAC address, PXE will retrieve
MAC address from the NVRAM directly.
Impact:
None.
Version 6.8.0 May 29, 2003
----------------------------
Enhancements:
=============
1. Request: Request to have RPL support only ROM image. (CQ#7895)
Change: Created a set of binary image with RPL support only. Users
cannot configure Boot Protocol in Ctrl-S configuration menu.
See readme.txt for detailed descriptions of RPL binary
images.
Impact:
None.
Version 6.2.10 May 12, 2003
----------------------------
Enhancements:
=============
1. Request: Allow users to turn off autonegotiation for fiber interface.
Change: Changed driver and firmware to allow users to configure
autonegotiation off. This can be useful for some backplane
applications where backplane switching ASIC has fiber
AUTONEG turned off.
Impact:
None.
2. Request: Reduce DHCP timeout of the last retry to 4s.
Change: Changed the base code so that DHCP timeout of the
last retry to 4s. The new timeout is 4s,8s,16s,32s,4s.
Impact:
None.
Version 6.2.9 May 09, 2003
----------------------------
Fixes:
======
1. Problem: APITEST is intermittently slow with BCM5704 Serdes/
CIOBE Serdes.
Change: Changed the firmware so that it will not perform
autonegotiation when link is up and hardware
autonegotiation logic indicates AUTONEG complete.
Impact:
None.
2. Problem: Link detection intermittently fails when ASF is enabled.
(CQ7759)
Change: Changed to stop Rx/Tx CPU before accessing PHY during
initialization. This is due to contention that
ASF firmware also polls for PHY registers.
Impact:
None.
Version 6.2.8 May 1, 2003
----------------------------
Enhancements:
=============
1. Request: Optimize to improve both Tx and Rx performance.
Change: Optimized code in the forwarding path.
Impact:
None.
Version 6.2.7 April 30, 2003
----------------------------
Fixes:
======
1. Problem: Fixed a problem where dynamic 10/100 or 10/100/1000 phy auto-neg
advertising based on GPIO2 state might not work correctly.
This issue was introduced in the phy workaround which was
added in v6.2.6. This problem only occurs on the platform
where GPIO2 state is used for dynamic PHY auto-neg.
Change: Changed the PHY lockup workaround code so that it restores
AUTONEG configuration.
Impact:
None.
Version 6.2.6 April 29, 2003
----------------------------
Fixes:
======
1. Problem: In some extremely rare situations, 5702/03/04 Copper NICs
may not link up after a PHY reset.
Cause: On some 5702/03/04 PHY cores, there is a small probability of
lock up after a PHY reset.
Change: Added code to detect PHY lock up after a PHY reset and
reset again if lock up is detected.
Impact: The added lock up detection and recovery code affects
driver reset and link down events where PHY resets are
performed.
Enhancements:
=============
1. Request: Added PXE version information in the standard PCI
structure information.
Change: Added PXE revision in the "Revision Level of Code/Data"
field of PCI data structure (offset 0x12). This field
is a 16-bit quantity and is encoded as follows:
bit 15..12 : Major version.
bit 11..8 : Minor version.
bit 7..0 : Build version.
Impact:
None.
Version 6.2.5 April 25, 2003
----------------------------
Fixes:
======
1. Problem: Upper 16-bit of register EAX might be corrupted after a PXE
API is called. (CQ #7617)
Change: Added logic to save and restore upper 16-bit of register EAX
in PXE API routine.
Impact:
None.
2. Problem: Under heavy traffic conditions, clients might lose connection
intermittently during an overnight read/write test. There is a
small timing window where packets are not processed in a timing
manner. (CQ #7437)
Change: Added logic in the interrupt service routine so that status
block is checked again to see if any event pending before
exiting.
Impact:
None.
Version 6.2.4 April 22, 2003
----------------------------
Enhancements:
=============
1. Request: Added support for dynamic 10/100 or 10/100/1000 phy auto-neg
advertising for certain platforms.
Change: Added a check for the state of GPIO2 during link change events
and adjust auto-neg capability advertising accordingly.
Impact:
None.
Version 6.2.3 April 21, 2003
----------------------------
Fixes:
======
1. Problem: In some extremely rare situations, 5704 Copper NICs
may not link up after a PHY reset.
Cause: On some 5704 PHY cores, there is a small probability of
lock up after a PHY reset.
Change: Added code to detect PHY lock up after a PHY reset and
reset again if lock up is detected.
Impact: The added lock up detection and recovery code affects
driver reset and link down events where PHY resets are
performed.
Version 6.2.2:
1. Enhanced for a customer who doesn't want some particular
fields configurable in MBA configuration menu. (CQ7515)
Version 6.2.1:
1. Removed device description banner per customer's request.(CQ7431)
2. Fixed a problem where PXE client cannot connect to PXE server
when BCM5704s connects to 3COM SuperStack 4900SX.(CQ7486)
3. Fixed a problem in the base code where DHCP timeout doesn't
adhere to PXE spec. The original timeouts are 2s,4s,8s,16s.
The new timeouts are 4s,8s,16s,32s. (CQ7116)
Version 6.2.0:
1. Added support for BCM5788.
Version 6.1.3:
1. Fixed a problem where Ctrl-S doesn't work in remote keyboard
application. This application returns keystrokes via BIOS
service INT 16h. But it doesn't put keystrokes in keyboard
buffer in the Bios Data Area (BDA).
Version 6.1.2:
1. Fixed a problem where PXE fails to work on BCM5701. (CQ7123)
Version 6.1.1:
1. Fixed a problem where configuration doesn't take effect
immediately when boot protocol is changed from BOOTP to PXE or
RPL to BOOTP. (CQ7074)
2. Enhanced so that device description and device location (bus/
device/function) are displayed in the banner and MBA configuration
menu. (CQ7101)
3. Enhanced so that users can blink LEDs of the device that is being
configured in the MBA configuration Menu. (CQ4948)
4. Fixed a problem where GPIO configuration is overwritten. This
can cause a issue where preboot-WOL doesn't work in BCM5701-based
application. (CQ6904)
5. Fixed a problem where system is locked up when parameters are
saved via F4 in MBA configuration menu. This problem only occurs
in BCM5700 and BCM5701.
6. Enhanced so that UNDI_GET_INFORMATION API call doesn't affect
ASF and other firmware applications. In some platforms, BIOS
loads UNDI and then issues UNDI_GET_INFORMATION API call to
retrieve adapter information without booting from the network
with PXE.
7. Enhanced romhdr.exe application so that it can handle image
size up to 128K.
Version 6.1.0:
1. Added native BOOTP support. (CQ7005)
Version 6.0.3:
1. Fixed a problem where Novell login after RPL download might
cause system stack overflow in a certain systems. (CQ6534)
2. Added support for family of BCM5705 A3 and newer.
Version 6.0.2:
1. Fixed a problem where BCM5704 fails on multicast TFTP test when
it's configured in half-duplex mode. There is a bug a in the base
code where base code can drop packets. If two packets are
received back-to-back, base-code will drop the second packet.
In this scenario, unicast and multicast TFTP packets are received
back-to-back. UNDI indicates both packets to base code receive logic,
but it drops the MTFTP packet. The fix is now implemented in the
base code (build 082f). (CQ6874)
2. Fixed a problem where link failure is not detected in a timely
manner if link is not configured to AUTONEG. It might take up
to 30 seconds instead of 8 seconds. (CQ6877)
3. Enhanced so that packet is always padded with 0's if the packet
length is less than minimum ethernet packet size. The padding
is now padded by hardware ASICs instead of software.
4. Fixed a problem where a PCI configuration parameter (cache line
size and maximum latency timer) is not restored if PXE boot
is terminated due to user's abort or boot failure.
5. Fixed a problem where RPL download might fail if other heavy
non-IPX traffic on the network. (CQ6844)
Version 6.0.1:
1. Fixed a problem where system hangs at POST with b57pxe.bin
image. (CQ6802)
Version 6.0.0:
1. Enhanced so that hot-key is configurable. The choices for hot-keys
are Ctrl-S or Ctrl-B (default is Ctrl-S).
2. Enhanced so that users can configure whether Setup Prompt is displayed
or not.
3. Fixed a typo in the copyright banner. (CQ6759)
4. Added BCM5704 support.
Version 3.1.30:
1. Enhanced so that users are still able to invoke MBA configuration
via Cltrl-S when timeout is set to 0 second. (CQ6598)
2. Updated copyright banner to reflect year of 2003.
Version 3.1.29:
1. Added software workaround for PCI clock-run issue in mobile
environment.
Version 3.1.28:
1. Removed BCM5704 support.
Version 3.1.27:
1. Fixed a problem where API test is slow when the link is configured
to half-duplex mode. (CQ6086)
2. Fixed a problem where BCM5704 fiber link intermittently loses
link on a certain systems. (CQ6465)
Version 3.1.26:
1. Added support for new PCI devices (0x14e4/0x16c7,0x14e4/0x16c6,
0x14e4/0x1696).
Version 3.1.25:
1. Fixed a problem where MBA configuration menu cannot be involked
via Ctrl-S on a certain rare systems. (CQ6050)
2. Fixed a problem where cable presence is not correctly detected
when cable is broken (EthernetWireSpeed mode) and WOL is
enabled. (CQ6147)
3. Added Broadcom revision to base code banner so that changes made
by Broadcom can be kept track of.
Version 3.1.24:
1. Enhanced to provide a way for the BIOS to control MBA configuration
setup time. (CQ6069)
BIOS sets up the following registers before passing control
to PXE initialization entry point:
AX : Contains PCI bus/device/function number.
ES:DI : Pointer to System BIOS Plug and Play Installation Check
Structure.
ECX : 0x46415354 if register SI is valid.
SI : 1 - BIOS requests quiet boot (Not show PXE banner).
0 - BIOS request to show PXE banner and delay time is in
bit 4..1 of register SI.
Version 3.1.23:
1. Fixed a problem where Fiber autonegotiation might fail on a certain
switches. (CQ5923)
2. Fixed a problem where boot entry might not show up on a certain
system that don't support BBS. (CQ6146)
3. Fixed a problem where PXE doesn't work with BCM5704 A2 Fiber.
Version 3.1.22:
1. Added support for Netware RPL. This allows RPL clients connecting
to Netware server for remote booting/installation.
Version 3.1.21:
1. Added support for BCM5705MFE.
Version 3.1.20:
1. Added support CIOBE Serdes.
2. Fixed a problem where UNDI API test fails on some of the TYAN
systems.
Version 3.1.19:
1. Fixed a problem where link speed doesn't take effect immediately
when it's configured in MBA configuration menu. (CQ5878)
2. Fixed a problem where UNDI might not work properly if UNDI APIs
are called in a mixed sequence of real mode and protected mode.
Version 3.1.18:
1. Fixed a problem where system fails to boot with multicast
TFTP on a certain system. This is definitely a base code
issue. If two packets are received back-to-back, base-code
will drop the second packet. In this scenerio, unicast and
multicast TFTP packets are received back-to-back. UNDI
indicates both packets to base code receive logic, but it
drops the MTFTP packet. Workaround is put into UNDI to
minimize impact on other UNDI implementation which might
assume this base code behavior. (CQ5617)
Version 3.1.17:
1. Fixed a problem where RPL doesn't work in LOM application.
RPL logic is now in the UNDI code instead of the base code.
2. Enhanced so that 1000MBps Full/1000Mbps Half option is not
selectable in MBA configuration menu. (CQ5794)
3. Fixed a problem where RPL doesn't shutdown gratefully if
download is not successful.
Version 3.1.16:
1. Added hot-key configuration menu support. Configuration Menu can
be invoked with Ctrl-S.
Version 3.1.15:
1. Fixed a problem where PXE/RPL client waits for a long time if
cable is not attached. (CQ5653 & CQ5588)
2. Enhanced so that Broadcom PXE PnP description will have
version and PCI slot number (CQ 5552).
3. Enhanced to display unique string for images with RPL support.
(CQ5553)
Version 3.1.14:
1. Added BCM5704 Fiber support.
Version 3.1.13:
1. Fixed a problem where PXE cannot establish link when it's
connected to Gigabit-only switch and ASF is enabled. (CQ5530)
Version 3.1.12:
1. Fixed a problem where API test intermittently fails
with BCM5705. (CQ5006).
Version 3.1.11:
1. Fixed a problem where PXE doesn't work with RIS.
2. Fixed a problem where multicast packets are not filtered
correctly.
Version 3.1.10:
1. Fixed a problem in the base code where UDP_READ API routine
doesn't receive packets correctly if there is other UDP traffic
on the network. (CQ5403)
Version 3.1.9:
1. Fixed a problem in the base code so that GUID/UUID is displayed in
correct format (GUID in wire format).
Version 3.1.8:
1. Added BCM5705 support.
2. Fixed a problem where PXE hangs up in BCM5704 XBAR mode. (CQ5035)
Version 3.1.7:
1. Removed BCM5705 support.
2. Fixed a problem where link presence is not detected correctly on
a certain systems. (CQ 5153)
3. Added PCI reset workaround for BCM5704 A1.
Version 3.1.6:
1. Added support for Mini-PCI NICs.
Version 3.1.5:
1. Added BCM5901 support.
2. Fixed a problem where UNDI code doesn't work with base code build 83
in DOSUNDI mode.
3. Fixed a problem where PXE might hang up if NVRAM ARB is not released
by other entities (boot code or ROM code). This happens when NVRAM
content is corrupted. (CQ4942)
Version 3.1.4:
1. Added BCM5705 support.
Version 3.1.3:
1. Enhanced to support BCM5703/BCM5703S.
Version 3.1.2:
1. Enhanced so that PXE download is exited immediately if no link
is detected. (CQ3773)
2. Fixed a problem where system hangs if F1 is hitted to retry
when no flopy disk/harddisk (NIC only). (CQ4793)
3. Fixed a problem where it fails to detect BBS capability when
BBS version is newer than BBS v1.01.
Version 3.1.1:
1. Fixed a problem where PXE API test is slow on some IBM PCI-X systems.
(CQ4734)
2. Fixed a problem where some PCI-X systems reboots when running stress
testing with BCM5701-based NICs. (CQ4714)
Version 3.1.0:
1. Enhanced so that memory footprint for UNDI driver is significantly
reduced. (81K is down to 34K)
2. Fixed a problem where 10/100 half duplex fails API test. (CQ3371)
Version 3.0.2:
1. Fixed a problem where BBS capability is not properly detected
if BIOS Information Type 0 is not the first entry of the SMBIOS
database.
Version 3.0.1:
1. Added BCM5704 support.
2. Fixed a problem where PXE doesn't boot on the second port when
the first port fails on BCM5704. (CQ3952)
3. Fixed a problem where base code doesn't load correctly when
BIOS doesn't support PMM (Post Memory Manager).
4. Fixed a problem where PXE doesn't load correctly when NVRAM
is blank.
Version 2.2.8:
1. Enhanced so that it can run concurrently with ASF.
Version 2.2.7:
1. Fixed a problem where it fails to boot if on some PCI-X systems.
Version 2.2.6:
1. Fixed a problem where it fails to operate with a certain model
of Cisco switches. Whenever there is a link change, Cisco
switch doesn't forward packets after 5 to 10 seconds even spanning
tree protocol is disabled. It drops all packets during this
period of time. Base-code is changed to retry more times.
However, Cisco switch can be configure to work with previous
versions of PXE. The workaround is to configure Cisco port, where
PXE client is connected to, to portfast mode. For instance,
set spantree portfast 4/12 enable
2. Enhanced so that wait time for physical link stability is shortened.
Version 2.2.5:
1. Optimized phase2 loader and minimized serial EEPROM corruption
(This applies to NIC application ONLY).
Version 2.2.4:
1. Added support for different LED configurations.
Version 2.2.3:
1. Fixed a problem Dell PowerEdge7150 (Dual Processor IA-64) hangs up
during EFI initialization if PXE-enabled NIC is installed. This
problem is caused by a bug in EFI IA-64 core firmware where it
passes invalid PCI bus/device/function parameter to UNDI.
Workaround around is implemented by using initial parameter
passed during UNDI init. (CQ3534)
2. Fixed a problem where HPi2000 (IA-64 system) intermittently doesn't
boot if PXE-enabled NIC is installed.
Version 2.2.2:
1. Fixed a problem where AutoNeg of Fiber NIC might not work on a
certain systems. (CQ3462)
2. Rebooted system if RPL downloading fails. (CQ3606)
Version 2.2.1:
1. Added software workaround for high bit error rate with 5703S fiber.
Version 2.2.0:
1. Added Remote Program Load (RPL) support. Since it's implemented
based on IBM standard, it should interoperate with RPL service
running on popular O/S such as Windows NT and IBM OS/2. However,
It will not work with Novell Netware yet since bootstrap (downloaded
via RPL) requires ODI driver interface to download the rest of
image with Netware protocol (Netware Core Protocol - NCP).
This features should allow users to remote/boot/install DOS/Win95/
Win98/OS2.
2. Fixed PXE version banner. (CQ3435).
Version 2.1.8:
1. Added support for Ethernet WireSpeed feature for BCM5702/
BCM5703 NICs/LOMs.
2. Added support for NICs with device ID 0x16a6 and 0x16a7.
3. Fixed a problem where EFI UNDI core firmware detects
UNDI16 with zero MAC address (CQ3337).
Version 2.1.7:
1. Added support for BCM5702/BCM5703 (Rev. A0 silicon).
Version 2.1.6:
1. Changed so that PXE cannot be loaded if ASF is enabled.
2. Added scheme to prevent serial EEPROM corruption in BCM5702/BCM5703.
Version 2.1.5:
1. Fixed a problem where DOSUNDI hangs up with BCM5703 NICs (CQ3113)
2. Fixed a problem where PXE performance is slow on BCM5702/BCM5703
NICs (CQ3125).
3. Fixed a problem where PXE is slow then BCM5701 NICs is on the
Dual AMD Tyan (CQ3165).
4. Fixed a problem where UNDI performance is slow when it's in
some of OEM PCI-X systems. (CQ2800).
Version 2.1.4:
1. Removed personized banner per OEM's request.
2. Added features to allow user to configure delay time for banner,
and boot strap type (BBS,INT18h, INT19h).
Version 2.1.3:
1. Fixed a problem where PXE might lock up in some systems which implement
"Fast Boot Initiative". This only happens on NICs but not LOMs.
It's neccessary to have to use latest tools to upgrade PXE and latest
boot code firmware.
Version 2.1.2:
1. Fixed a problem where UNDI speed is very slow when BCM5701 Fiber
NICs/LOMs on a certain platform.
Version 2.1.0:
1. Fixed a problem where PXE doesn't work with BCM5702/BCM5703 NICs.
Version 2.0.11:
1. Fixed a problem where download with MTFTP fails. (CQ1793 & CQ2679)
Version 2.0.10:
1. Added support for future BCM5702 and BCM5703 NICs/LOMs.
Version 2.0.9:
1. Fixed a problem where PXE is not operatable if preboot WOL is
enabled.
Version 2.0.8:
1. Improve performance.
Version 2.0.7:
1. Fixed a problem where Tx or Rx can be hung when it's in PCI-X.
Version 2.0.6:
1. Fixed a problem where PXE is not detected by BIOS when it's in
PCI-X slot.
Version 2.0.5:
1. Fixed a problem where PXE might not boot in some systems which
have SMBIOS database built at preboot but don't support BBS.
Version 2.0.4:
1. Enhanced so that BIOS's BBS capability can be detected though SMBIOS.
Version 2.0.3:
1. Added support for BCM95701A12 NIC.
2. Enhanced to utilize shared memory interface for future compatibility.
Version 2.0.2:
1. Added support for BCM95701A10 NIC.
Version 2.0.1:
1. Added BCM5700 Fiber NIC support.
2. Added BCM5701 Fiber NIC support.
3. Added support for some OEM NICs.
Version 2.0.0:
1. Added BCM5701 support.
Version 1.06:
1. Added PCI-X workaround for B2 silicon.
Version 1.05:
1. Changed to provide a scheme for users to boot via Int 18h, Int 19h, or
BBS.
After the Broadcom banner is displayed, users have 4 seconds to select:
* Ctrl F8 : Int 18h
* Ctrl F9 : Int 19h
* Ctrl F10 : BBS
2. Changed to allow users to force PXE run at a certain speed.
Version 1.04:
1. Changed due to changes in ASIC version format in B1 silicon.
Version 1.03:
1. Eliminated unused code to save more memory so that it works fine with
IBM 300GL.
2. Changed to accomodate different LED configurations based on System
Vendor ID.
Version 1.02:
1. Fixed a problem where client hangs up during setup phase of windows 2000
installation with RIS.
2. Fixed copyright banner string.
Version 1.01:
1. Changed to accomodate different LED configurations.
Version 1.0:
1. Fixed a problem where base-code cannot be unloaded.
2. Fixed a problem where Linux Universal Driver crashes when it binds to
UNDI. UNDI now can run in protected mode.
Version 0.10:
1. Fixed a problem where some system might lock up if BIOS calls
UNDI API SHUTDOWN before call UNDI API INITIALIZE. IBM 300PL
PC is one of them.
2. Changed so that Broadcom copyright banner is displayed during
ROM initialization.
This version should fix SAR Prod0000344,and SAR Prod0000283
Version 0.9:
1. Fixed a problem where PXE is not recognized is some systems where
BIOS don't support BBS (BIOS Boot Specification). Logic is
added to PXE initialization code to detect if BIOS support BBS or
not. If not, then use Interrupt 18h for boot. This should
fix SAR Prod0000225,SAR Prod0000604, SAR Prod0000606.
Version 0.8:
1. Fixed a problem where APITEST failed. (SAR Prod0000426)
Version 0.7:
1. Fixed a problem where mapping a network drive can intermittently lock
up the client system. (SAR Prod0000236)
Version 0.6:
1. Fixed a problem where PHY speed for Gigabit links are not displayed
correctly.
Version 0.5:
1. Added support for B0 Silicon.
2. Fixed a problem where 10Mbps doesn't work.
Version 0.4:
1. Initial release.
Revision History of Base Code
=============================
Intel developed base code and distributed it as a part of PXE SDK
to the NIC hardware vendors who develop UNDI drivers for their
NIC products. During testing and development process, Broadcom has
found various bugs and has provided appropriate fixes. Details of
various fixes are listed as follows:
v1.0.0:
1. Changed to add Broadcom copyright.
2. Changed revision number to standard version number format.
3. Whenever the TFTP server doesn't response the first TFTP ack,
the TFTP open code intends to send TFTP Read Request again
with different UDP source port number (incremented by 1).
There is a bug in the code where it doesn't reinitialize the
packet as TFTP Read Request packet. Therefore, it sends out
the packet as TFTP ACK packet since the last packet being
sent was a TFTP ACK.
Build 082k
1. TFTP service uses INT15h AH=87h (one of BIOS services) to copy
a block of memory from conventional memory to extended memory.
In some systems, this call intermittently fails the first time.
Changed the base code to issue second try if this call fails
the first time to work around these systems' issue.
Build 082j
1. Fixed the basecode so that provided length field is used to
nullify the filename which is used for TFTP/MTFTP download.
This causes PXE failing to boot with some PXE servers.
This PXE server provides filename of the boot image in
one of the DHCP option fields (OPTION 67) instead of filename
field in the BOOTP major section. There is a bug in the base
code where it doesn't use the provided length information for
filename string.
Build 082i
1. Reduced DHCP timeout of the last retry to 4s. The new timeout
is 4s,8s,16s,32s,4s.
Build 082h
1. Fixed a problem in the base code where DHCP timeout doesn't <
adhere to PXE spec. The original timeouts are 2s,4s,8s,16s.
The new timeouts are 4s,8s,16s,32s,32s.
Build 082g :
1. Modified so that it can support native BOOTP request. Some
BOOTP servers don't send BOOTP reply if it's not native
BOOTP request.
Build 082f :
1. Fixed a problem where base code can drop packets if packets
are received back-to-back. Specifically, if two packets are
received back-to-back, base-code will drop the second packet.
In a MTFTP test scenario, unicast and multicast TFTP packets
are received back-to-back. UNDI indicates both packets to base
code receive logic, but it drops the MTFTP packet.
Build 082e :
1. Added Broadcom revision to base code so that Broadcom can keep
track changes in the base code.
Build 082 (shipped via MBA v3.1.10 and newer) :
1. Fixed a problem in the base code where UDP_READ API routine
doesn't receive packets correctly if there is other UDP traffic
on the network.
Build 082 (shipped via MBA v3.1.9 and newer) :
1. Fixed a problem so that GUID is displayed in correct format.
Build 082 (shipped via MBA v3.0.1 and newer) :
1. Fixed a problem in the base code where it doesn't load correctly
when BIOS doesn't support PMM (Post Memory Manager).
Build 082 (shipped via MBA v2.2.6 and newer) :
1. Changed DHCP timeout so that retry timeout is 2,4,8,16,32 seconds.
Download Driver Pack
After your driver has been downloaded, follow these simple steps to install it.
Expand the archive file (if the download file is in zip or rar format).
If the expanded file has an .exe extension, double click it and follow the installation instructions.
Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.
Find the device and model you want to update in the device list.
Double-click on it to open the Properties dialog box.
From the Properties dialog box, select the Driver tab.
Click the Update Driver button, then follow the instructions.
Very important: You must reboot your system to ensure that any driver updates have taken effect.
For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.