Broadcom Corporation 5300 California Avenue Irvine, CA 92617 Release Notes Broadcom BCM570x Multiple Boot Agent (MBA) [ PXE, RPL, BOOTP, and iSCSI Boot ] Copyright (c) 2002-2009 Broadcom Corporation All rights reserved. May 15, 2009 Revision History ================ Version 12.2.2 May 15, 2009 --------------------------- Fixes: ====== 1. Problem: iSCSI MPIO mode doesn't work. Cause : Incorrect FAR pointer to primary iSCSI block is not passed to routine that locates secondary iSCSI block. This issue was introduced in v12.2.1. Change: Fixed UNDI loader code to pass correct FAR pointer to primary ISCSI block. Version 12.2.1 May 11, 2009 ---------------------------- Enhancements: ============= 1. Enhanced loader so that it can load iSCSI Boot driver IPv4 or IPv6 based on the iSCSI boot configuration. Version 12.2.0 April 30, 2009 ----------------------------- Fixes: ====== 1. Problem: Option ROM displays MBA configuration screen when ECX=0x46415354 and SI=1 on Cilai OTP configuration. Change: Changed Option ROM initialization code so that it doesn't check check for the input keystroke in Cilai OTP configuration. Enhancements: ============= 1. Enhanced Option ROM to not display copyright banner for Cilai OTP configuration. (CQ#40901) Version 12.0.3 April 16, 2009 ----------------------------- Fixes: ====== 1. Problem: Link LED is not ON when UNDI driver is loaded on BCM57780/90 with OTP/selfboot configuration. Cause : UNDI driver overwrote UART/LED bit of Local Control register. Change: Changed driver initialization routine to set bit 4 of Local Control register to select LED mode. Version 12.0.2 April 14, 2009 ----------------------------- Fixes: ====== 1. Problem: PXE boot failed intermittently with BCM57780/90 with OTP configuration. Cause : ROM code inside the device doesn't initialize feature configuration in the shared memory and therefore content of feature configuration will be intermitent. This causes UNDI driver to use uninitialized configuration such as VLAN ID, etc... Change: Implemented a workaround in the UNDI driver so that driver doesn't use feature configuration in the shared memory in an OTP configuration. Version 12.0.1 March 27, 2009 ----------------------------- Enhancements: ============= 1. Added support for BCM5785 10/100 controllers. Version 12.0.0 March 19, 2009 ----------------------------- Fixes: ====== 1. Problem: TFTP timeout during PXE boot is too long if TFTP server is not available. (CQ#39447) Cause : Timeout value is not reset for each TFTP open. Subsequent TFTP open timeout will be the total timeout in the first TFTP open which can be 35s delay. Change: Fixed a problem in the Base Code to reset the timeout in the beginning of TFTP open. Version 11.9.7 January 5, 2009 ------------------------------- Enhancements: ============= 1. Added support for BCM5761S controllers. 2. Updated Copyright banner to reflect year of 2009. Version 11.9.6 November 19, 2008 -------------------------------- Fixes: ====== 1. Problem: No LEDs are lit when after loading driver.(CQ#38565) Cause: Driver did not preserve the Miscellaneous Local Control register. Change: Driver performs read and modify when setting the Miscellaneous Local Control register. Version 11.9.5 November 11, 2008 -------------------------------- Fixes: ====== 1. Problem: SUT can not boot after program MBA firmware and enable PXE on BCM5761.(CQ#38359) Cause: SUT did not have APE/DASH management firmware in NVRAM. Change: PXE init code check for APE/DASH management firmware is enabled for BCM5761. Version 11.9.4 October 30, 2008 ------------------------------- Fixes: ====== 1. Problem: PXE links at 100Mbps with BCM57780 devices. Cause: Device ID for BCM57790 (10/100) was mistakenly defined as BCM57780 device. Change: Corrected Device ID for BCM57790 device. Enhancements: ============= 1. Made changes to notify APE firmware of BCM5761 that Option ROM initialization starts. Version 11.9.3 October 24, 2008 ------------------------------- Fixes: ====== 1. Problem: PXE Option ROM failed to load phase 2 code with BCM57760 devices. (CQ#38125) Cause: PXE Init code doesn't detect NVRAM type correctly. Change: Updated PXE init code to recognize NVRAM type on BCM57760 devices correctly. Version 11.9.2 October 23, 2008 ------------------------------- Enhancements: ============= 1. Added support for BCM57760 and BCM57790 controllers. Version 11.9.1 October 15, 2008 ------------------------------- Enhancements: ============= 1. Added support for the 5785 controllers. Version 11.9.0 October 14, 2008 ------------------------------- Enhancements: ============= 1. Added support for the 57780 controllers. Version 11.4.1 June 29, 2008 ---------------------------- Fixes: ====== 1. Problem: MBA Ctrl+S setup screen, press F4 cannot save the changes. (CQ#35281) Cause: During update NVRAM checksum, MBA mistaken the device has Revision 2 Memory Map and written the check sum value to MBA data area. Change: MBA identifies for proper Revision number Memory Map and writes the check sum value to its appropriate area. Impact: None. Version 11.4.0 May 30, 2008 --------------------------- Fixes: ====== 1. Problem: DASH processor stalls when the driver applies a GRC reset while the DASH processor is also accessing the GRC reset register. Cause: A LSI bug is causing this behavior. This driver implements the LSI recommended workaround. Change: The workaround requires the driver to acquire a mutex register before issuing the GRC reset. Impact: DASH firmware 0.96 or later is required for this fix to work. 2. Problem: Failed to deploy O/S with latest Tivoli software on BCM5704-based platforms. Cause: There is race condition in L2 F/W Rx path firmware that can cause problem in enqueuing FTQ queue request to DMA write engine. Change: Fixed race condition in L2 F/W and integrated F/W v1.17.0 with the UNDI driver. Version 11.0.14 March 12, 2008 ------------------------------ Fixes: ====== 1. Problem: VLAN configuration was not taken effect immediately for iSCSI boot configuration. (CQ#34138) Change: Changed MBA configuration to update local copy of VLAN status. Version 11.0.13 March 07, 2008 ------------------------------ Fixes: ====== 1. Problem: PXE arp timeout and loss of mgmt fw connection when PXE/DASH enabled.(CQ#33998) Cause: Driver did not implement the new DASH firmware setup rules for the BCM5761/BCM5761E controllers. Change: Implemented required DASH firmware setup rules for the BCM5761/BCM5761E controllers. Version 11.0.12 February 11, 2008 --------------------------------- Fixes: ====== 1. Problem: System might hang during driver bringup/shutdown if CLKREQ and ASPM L0s/L1 are enabled on PCI-E link control registers. (CQ#33808) Cause: Issuing a GRC reset with CLKREQ enabled is causing a global chip reset which causes PCI-E link to drop. Change: When ClkReq and L0s/L1 ASPM are enabled, driver will clear ClkReq enable bit before doing GRC reset and restore it after GRC reset. Version 11.0.11 January 29, 2008 ------------------------------- Enhancements: ============= 1. Implemented GPHY software workaround so that 10Mb Rx only mode is turned off before PHY is reset. This workaround only applies to BCM5784/BCM5764/BCM5723 B0 devices. Version 11.0.10 January 28, 2008 ------------------------------- Enhancements: ============= 1. Removed support for BCM5784/BCM5764/BCM5723 Ax devices. 2. Implemented software workaround for AFE BW and Line Distortion problem based on the content of One-Time-Program (OTP) memory on the device. 3. Updated APE inter-processor interface code to work with updated DASH firmware for BCM5761/BCM5761E device. Version 11.0.9 January 14, 2008 ------------------------------- Enhancements: ============= 1. Updated Copyright banner to reflect year of 2008. 2. Implemented software workaround for AFE BW and Line Distortion problem with BCM5764/BCM5784/BCM5723 B0 devices. Version 11.0.8 December 7, 2007 ------------------------------- Enhancements: ============= 1. Added support for the 5723 controllers. Version 11.0.7 November 8, 2007 ------------------------------- Fixes: ====== 1. Problem : iSCSI Boot driver fails to establish TCP connection after a warm reboot in iSCSI Boot to Linux configuration with BCM5764. (CQ#32075) Cause : This is caused by both Linux driver and MBA driver where software workaround was not implemented when GPHY is shutdown. Change : Implemented required software workaround for BCM5764 A0/A1 where driver configures clock policy for CPMU block. Enhancements: ============= 1. Added software handshake with DASH firmware for the 5761/5761E controllers. Version 11.0.6 November 1, 2007 ------------------------------- Fixes: ====== 1. Problem : PXE protocol is used when BootP protocol is configured in BCM5784/BCM5764 self-boot configuration. Change : Changed UNDI driver to fetch MBA configuration data from correct NVRAM offset. Version 11.0.5 October 26, 2007 ------------------------------- Enhancements: ============= 1. Modifled ROM Initialization code to enable NVRAM access for BCM5761/61E devices so that ROM code can access NVRAM data correctly. Version 11.0.4 October 23, 2007 ------------------------------- Enhancements: ============= 1. Optimized Tx performance for BCM5764/BCM5784 A0 devices by programming Maximum Read Request size to 4K. Version 11.0.3 October 15, 2007 ------------------------------- Fixes: ====== 1. Problem : PXE failed to load on BCM5764M when a certain Amtel flash is used. (CQ#31857) Change : Changed the MBA initialization code to add support for all Atmel flash devices. Version 11.0.2 October 11, 2007 ------------------------------- Enhancements: ============= 1. Added support for the 5761/5761E controllers. 2. Added software workaround for BCM5784/BCM5764 A0 activity LED problem. Version 11.0.1 October 10, 2007 ------------------------------- Enhancements: ============= 1. Added support for the 5764 controllers. 2. Added self-boot configuration support for 5784 and 5764 controllers. Version 11.0.0 October 08, 2007 ------------------------------- Enhancements: ============= Added support for the 5784 controller. Version 10.7.5 September 06, 2007 --------------------------------- Fixes: ====== 1. Problem : VLAN ID of secondary interface is not passed to iSCSI boot agent correctly when VLAN of secondary interface is not enabled. (CQ#30083) Cause : When VLAN of secondary interface is disabled, MBA code doesn't initialize the VLAN ID field in the interface block. Change : Changed the MBA code to initialize VLAN ID field to zero if VLAN admin state of secondary interface is disabled. Enhancements: ============ 1. Enhanced ROM initilization code to display MAC address of the device during POST. (CQ#28544) Version 10.7.4 July 9, 2007 ---------------------------- Fixes: ====== 1. Problem : Changing VLAN ID field in the MBA configuration menu doesn't take effect immediately in the iSCSI Boot scenario. Cause : Updated VLAN ID parameter is not passed to iSCSI Boot agent. Change : Changed MBA configuration saving routine to update VLAN parameter that is passed to iSCSI Boot agent. Version 10.7.3 July 2, 2007 ---------------------------- Enhancements: ============ 1. Enhanced UNDI driver to provide an API interface so that upper layer can update iSCSI information on the secondary interface. Version 10.7.1 June 28, 2007 ---------------------------- Fixes: ====== 1. Problem : iSCSI Boot tried to boot on non-configured secondary device of second set of MPIO if the first set of MPIO was configured and failed to boot. (CQ#30280) Cause : The low memory was used for scratchpad memory block. This block was not cleared first. Change : Changed iSCSI loading logic to clear out the scrachpad block. Version 10.7.0 June 13, 2007 ---------------------------- Enhancements: =========== 1. Added logic to pass iSCSI boot configuration parameters of primary and secondary devices to iSCSI boot agent. Version 10.4.6 April 12, 2007 ----------------------------- Enhancements: =========== 1. Improve performance on PCI-express mobile devices when they are interconnected with a certain mobile Intel chipset. Cause: There is an interoperability issue between the Broadcom LAN controllers and the Intel ICH7/8 that may cause the Rx-performance at 100 Mbps to be lower then expected when L1 ASPM is enabled along with system CPU C3E, or C4, or C4E or higher state. Change: Changed the driver to disable L1 ASPM during initialization and restore the configuration at the driver shutdown. Version 10.4.5 March 26, 2007 ----------------------------- Fixes: ====== 1. Problem : NDIS driver still uses VLAN ID from the preboot software configuration when iSCSI boot fails and system boots to local Windows partition. (CQ#28878) Change: Changed the UNDI driver so that it invalidate the iSCSI block offset in the device's shared memory. Version 10.4.4 February 13, 2007 -------------------------------- Fixes: ====== 1. Problem : NDIS driver failed initialization on port#0 when SoL and iSCSI are enabled on the port#1 of BCM5704. (CQ#28268) Cause: During UNDI driver initialization, UNDI driver needs to halt the RX and TX CPU so that it can load the light-weighted L2 firmware to RX CPU's scratchpad. At this time, bootcode might be loading the ASF/IPMI firmware from the NVRAM to the scratchpad. In that scenario, the bootcode still owns the arbitration. NDIS driver will fail to acquire arbitration. Change: Changed the UNDI driver so that it will clean up NVRAM access and release NVRAM arbitration#0 if NVRAM arbitration#0 is owned by the bootcode after RX-CPU is halted. Version 10.4.3 January 25, 2007 ------------------------------ Fixes: ====== 1. Problem : Valid range for VLAN ID in MBA configuration menu is too small (0..1023). (CQ#28249) Change: Changed MBA configuration code to increase valid VLAN range to (0..4095). Version 10.4.2 January 15, 2007 ------------------------------ Fixes: ====== 1. Problem : PXE boot might fail in the following setup scenario (CQ#27953): * DHCP relay agent is used since DHCP server is on different subnet with respect to the PXE client. * PXE server is on different subnet with respect to the PXE client. * IP address of relay agent and default router are different. Cause: Base Code used IGADDR in the bootp field as default gateway IP address. It should use Router DHCP option for default gateway IP address. This causes TFTP packets routed to the wrong path. Change: Updated base code to initialize default gateway IP address from the Router DHCP option if it's present. The changes are in Base Code v1.0.9. Version 10.4.1 January 8, 2007 ------------------------------ Fixes: ====== 1. Problem : MBA configuration menu doesn't save Preboot WoL correctly for BCM5906M device. (CQ#28079) Cause: Parameter saving routine doesn't set WoL parameters correctly. Change: Fixed parameter saving routine for BCM5906M device so that WoL can be saved correctly. Version 10.4.0 January 4, 2007 ------------------------------ Fixes: ====== 1. Problem : RMCP ping will timeout after SUT sits at the PXE menu for a long period time (e.g. about 10+ minutes). (CQ#27679) Cause: In the PXE menu, base code doesn't respond to ARP requests. Change: Modified the base code to respond to ARP requests when it's polling for keystrokes in the PXE menu. The changes are in Base Code v1.0.8. Enhancements: ============= 1. Updated copyright banner to reflect year Of 2007. 2. Added support for BCM5756 and BCM5722 family devices. Version 10.0.8 December 18, 2006 -------------------------------- Fixes: ====== 1. Problem : 5755M failing IEEE compliance on certain OEM platforms. (CQ#27832) Cause: The PHY trim registers needed to be modified. Change: Modified the UNDI driver to program the PHY trim registers per recommendation from phy engineering team. Version 10.0.7 December 4, 2006 -------------------------------- Fixes: ====== 1. Problem : PXE doesn't work on BCM5787-based NICs which has buffered NVRAM. (CQ#27730) Cause : There is a bug in the NVRAM initialization routine where it doesn't detect buffered NVRAM correctly for BCM5787 devices. This issue was introduced in PXE v10.0.6 after adding Microchip 24LC0x device support. Change : Fixed NVRAM initialization routine. Version 10.0.6 November 16, 2006 -------------------------------- Fixes: ====== 1. Problem : Saving parameters in MBA configuration menu might generate invalid checksum for code patch block of BCM5787 selfboot code if a newer version of selfboot firmware and the NVRAM device is Microchip 24LC0x. Cause : MBA driver didn't have support for Microchip 24LC0x devices and it didn't handle the dynamic offset of MBA configuration parameter correctly which depends on the number of code patches. Change : Added support for Microchip serial EEPROM devices and changed the NVRAM initialization logic to determine dynamic offset of MBA configuration word correctly. 2. Problem : MBA driver doesn't retrieve MBA configuration correctly when newer version of BCM5787 selfboot code is used. One of the common symptoms is that MBA driver doesn't boot with configured boot protocol. Change : Changed MBA code to determine dynamic offset of MBA configuration word correctly. Enhancements: ============= 1. Removed support for BCM5756 and BCM5722 family devices. Version 10.0.5 November 13, 2006 -------------------------------- Fixes: ====== 1. Problem : Netware Client32 driver does not transmit/receive on 5722 when PXE is enabled. (CQ#26992) Cause : PXE driver has a S/W workaround for BCM5721/51 A0 device where it slows down the core clock before a GRC reset. This causes some problem with BCM5722 and BCM5756 devices. Change: Removed this workaround since BCM5721/51 A0 is no longer supported. Version 10.0.4 October 30, 2006 ------------------------------- Fixes: ====== 1. Problem : MBA configuration menu fails to save parameters on the BCM5906-based and BCM5787-based (self-boot)platform that has serial EEPROM protect. (CQ#27325) Change : Changed the NVRAM saving routine to disable write protect for BCM5906 devices and BCM5787-based (self-boot). Enhancements: ============= 1. Enhanced MBA menu-driven configuration code so that it prompts user to save changes if user presses ESC to exit when one or more changes were made. (CQ#26965) Version 10.0.3 October 9, 2006 ------------------------------ Fixes: ====== 1. Problem : UNDI driver will display bogus data on the Boot Protocol Entry if it was configured to iSCSI Boot and image was configured so that boot protocol is not configurable. This problem only occurs with UNDI images. Change : Fixed the mapping logic so that mapping index is correct for UNDI images. Version 10.0.2 October 6, 2006 ------------------------------ Enhancements: ============= 1. Enhanced to display MAC address of the device being configured in the MBA configuration menu. (CQ#27029) Version 10.0.1 September 28, 2006 --------------------------------- Enhancements: ============= 1. Enhanced ROM header utility (romhdr.exe) to allow user to configure Boot Protocol option to be not configurable. Version of this utility is v1.0.7. For instance, To disable MBA boot protocol configuration romhdr -v 0x14e4 -d 0x1677 -c 1 -i b57undie.lom -o rom.lom To enable MBA boot protocol configuration romhdr -v 0x14e4 -d 0x1677 -c 0 -i b57undie.lom -o rom.lom 2. Updated MBA configuration menu code to lock MBA boot protocol configuration if it's enabled in the image. Version 10.0.0 September 19, 2006 --------------------------------- Enhancements: ============= 1. Added support for BCM5906,BCM5756, and BCM5722 family devices. 2. Enabled AUTO-MDIX mode when the link is in forced speed. This allows straight-through cable to be used in forced speed configuration. Version 9.7.10 September 15, 2006 --------------------------------- Fixes: ====== 1. Problem : UNDI driver will hang up if BCM5714S/15S is connected to Marvell media conversion module and with no cable attached on the copper side. (CQ#26784) Cause : Timeout mechanism was not implemented correctly. Change : Fixed the timeout mechanism. Version 9.7.9 August 25, 2006 ----------------------------- Enhancements: ============= 1. Removed support for BCM5906 and BCM5756 family devices. 2. Changed MBA configuration menu to use "Ctrl-K" to invoke iSCSI configuration program. Version 9.7.8 August 14, 2006 ----------------------------- Fixes: ====== 1. Problem : UNDI driver might not detect link correctly on BCM5714s/ BCM5715s then the link partner is Marvell media conversion module. Cause : This particular Marvell serdes might take up to 3 or more seconds to AUTONEG after a valid link is present. Change : Changed the UNDI driver so that the timeout for BCM5714s/ BCM5715s PHY link detection is increased from 500ms to 8 seconds. Version 9.7.7 August 10, 2006 ----------------------------- Enhancements: ============= 1. Enhanced MBA configuration program to invoke iSCSI configuration program for channel#1 only if ISCSI Configuration block for channel#1 exists. Version 9.7.6 August 7, 2006 ---------------------------- Fixes: ====== 1. Problem : Driver doesn't detect link correct when autonegotiation of link partner is disabled for BCM5906 devices. Cause : BCM5906 PHY core doesn't report highest common denominator (HCD) in PHY register 0x19 when AUTONEG is not enabled at link partner. Change : For BCM5906 devices, if HCD is not available (value of zero), then driver determines link speed by looking at other status bits that are specific to BCM5706 PHY core. Version 9.7.5 August 1, 2006 ---------------------------- Fixes: ====== 1. Problem : Link timeout might be short and inaccurate for BCM5906 devices. Cause : Free running timer in BCM5906 runs at a fixed-rate at 25MHz core clock. Change : Changed time calabrating routine to use correct scaling factor. 2. Problem : non-MBA images (b57pxee.lom, b57pxee.nic, etc...) don't display iSCSI boot as boot protocol. (CQ#26121) Change: Fixed to MBA init code not to overwrite boot protocol as PXE in case of non-MBA images. Version 9.7.4 July 27, 2006 --------------------------- Enhancements: ============= 1. Enhanced driver to enable Auto MDIX when link is forced at either 10Mbps or 100Mbps on BCM5906 devices. (CQ#25849) Version 9.7.3 July 14, 2006 --------------------------- Enhancements: ============= 1. Added support for BCM5756 devices. Version 9.7.2 July 13, 2006 --------------------------- Enhancements: ============= 1. Enhanced UNDI initialization code so that it can be forced to run on a particular device with a given PCI bus/device/function number. This allows software quality group to test devices designed for LOM application only. Version 9.7.1 July 13, 2006 --------------------------- Enhancements: ============= 1. Added support for BCM5906 devices (LOM only). Version 9.7.0 June 29, 2006 --------------------------- Enhancements: ============ 1. Enhanced the bootstrap menu processing logic in the base code to poll UNDI interface for Rx packets so that IPMI/ASF traffic is not blocked. The changes are in the Base Code v1.0.7. Version 9.4.5 May 25, 2006 -------------------------- Enhancements: ============ 1. Enhanced driver to initialize the PHY DSP parameters to resolve an issue where link has problem acquiring 1000T link when link partner jitter is above IEEE limit on 5755, 5754,and 5787 controllers. (CQ#24525) Version 9.4.4 May 17, 2006 -------------------------- Fixes: ====== 1. Problem : PXE failed to boot to server if Server IP address (option 54) is different in DHCP and BINL phase. (CQ#24848) Cause : During BINL (Boot Information Negotiation Layer) phase, base code checks to make sure Server IP address in the BINL response is the same as the Server IP address in DHCP phase. If it's different, then it doesn't accept the BINL response. This can be different and valid in some configurations. Change : Changed the base code so that it doesn't have to validate the Server IP address in BINL phase. Version 9.4.3 May 11, 2006 -------------------------- Enhancements: ============= 1. Added support for BCM5786 device which is configured for self-boot ROM. (CQ#24528) Version 9.4.2 April 14, 2006 ---------------------------- Enhancements: ============= 1. Added VLAN support. 2. Enhanced DHCP logic in the base code so that it will only wait for up to 4 seconds to send out DHCP requests after one or more DHCP offers are received. Version 9.4.1 March 21, 2006 ---------------------------- Enhancements: ============= 1. Added support for BCM5786 family devices. 2. Enhanced PXE initialization code to display a warning message if the Device ID of the device doesn't match with the Devide ID field in the PCI ROM header. (CQ#23958) Version 9.4.0 March 13, 2006 ---------------------------- Enhancements: ============= 1. Added back support for BCM5755 family devices. Version 9.0.12 February 27, 2006 -------------------------------- Enhancements: ============= 1. Removed support for BCM5755 family devices. Version 9.0.11 February 9, 2006 ------------------------------- Enhancements: ============= 1. Removed iSCSI support from PCI legacy device to keep the memory footprint small for PCI device binary images. Version 9.0.10 January 26, 2006 ------------------------------- Fixes: ====== 1. Problem : Users cannot invoke iSCSI configuration program via "F7" on some systems. Cause : Some BIOS's don't return "F7" keystroke via INT16h services. Change : Changed MBA configuration menu to use "Ctrl-I" to invoke iSCSI configuration program. Enhancements: ============= 1. Enhanced MBA configuration menu so that it will load iSCSI configuration program to 5000:0 if system doesn't support PMM (Post Memory Manager). Version 9.0.9 January 23, 2006 ------------------------------- Enhancements: ============= 1. Enhanced MBA configuration menu to load iSCSI configuration program if it's available in the NVRAM. Version 9.0.8 January 11, 2006 ------------------------------- Enhancements: ============= 1. Changed PXE driver so that H/W fix for intermittent false link detection is not enabled for BCM5780S devices. Version 9.0.7 January 10, 2006 ------------------------------ Enhancements: ============= 1. Updated Copyright banner to reflect year Of 2006. Fixes: ====== 1. Problem : PXE intermittently doesn't detect link correctly in BCM5714/15 Serdes device family. Cause : It's a hardware problem where PHY status register doesn't indicate valid link intermittently. Change : Changed PXE driver to enable the H/W fix and query link status from the MAC status register. Version 9.0.6 November 14, 2005 ------------------------------- Fixes: ====== 1. Problem : Saving of PXE configuration in Ctrl-S menu hangs on BCM5755/BCM5754/BCM5787 devices if the NVRAM type is ST Flash. Cause : Nvram WRITE routine sends WREN to the flash which is not neccesary for the flash interface for these device families. Change : Changed Nvram WRITE routine not to send WREN to these families of devices. Version 9.0.5 November 1, 2005 ------------------------------ Fixes: ====== 1. Problem : Saving of PXE configuration in Ctrl-S menu hangs on BCM5714/BCM5715/BCM5780 devices if the NVRAM type is ST Flash. (CQ#14536) Cause : PXE initialization didn't support ST Flash and didn't reconfigure the Flash Interface for WRITE operation when ST flash was detected. Change : Changed PXE initialization code to support ST Flash devices. Version 9.0.4 October 26, 2005 ------------------------------ Fixes: ====== 1. Problem : PXE hangs during PXE loading with 5754 devices. (CQ#14464) Cause : BCM5754's Flash interface is different from BCM5787's and the same as BCM5755's. Change : Changed flash interface routine to use correct interface. Version 9.0.3 October 19, 2005 ------------------------------ Enhancements: ============ 1. Remove iSCSI ROM support for PCI devices to keep ROM size smaller. Version 9.0.2 October 18, 2005 ------------------------------ Enhancements: ============ 1. Removed PHY BER software workaround for BCM5755/BCM5787/BCM5754 family devices. Version 9.0.1 October 18, 2005 ------------------------------ Enhancements: ============ 1. Added support for iSCSI as one of the boot protocol. iSCSI option is only available if ISCSI image is found in the NVRAM. Version 9.0.0 October 17, 2005 ------------------------------ Enhancements: ============= 1. Request: Added support for BCM5755/BCM5787/BCM5714S/BCM5715S/ BCM5754 family devices. Change : Changed PXE init code to support above devices. Version 8.3.7 October 17, 2005 ------------------------------ Enhancements: ============= 1. Request: Removed support for BCM5755/BCM5787/BCM5714S/BCM5715S family devices. Change : Changed PXE init code to not support above devices. Version 8.3.6 September 28, 2005 -------------------------------- Fixes: ====== 1. Problem : System hangs when ASF and PXE are enabled on BCM5755 A0 devices. (CQ#14192) Cause : There is a bug in Firmware Resume Workaround routine which doesn't clear out the GRC bus by reading a "zero" register before a Resume Signature is deposited. Current workaround routine reads the "zero" register after the resume signature is deposited. Change : Changed Firmware Resume Workaround routine to read a "zero" register before a Resume Signature is deposited. Version 8.3.5 September 26, 2005 -------------------------------- Fixes: ====== 1. Problem : UNDI takes long time to determine presense of link. Cause : Incorrect delay routine is called. This problem was introduced in v8.3.4. Change : Changed UNDI code to use correct/accurate delay routine. Version 8.3.4 September 22, 2005 -------------------------------- Fixes: ====== 1. Problem : Link comes up at 10Mbps HD after PXE is loaded and before driver is loaded. (CQ#13704) Cause : There is a timing issue in MDIO block where software doesn't read correct data when this block indicates that data is ready. This causes driver to write invalid data to PHY register in a Read-Modify- Write operation. Change : Changed the PHY register reading routine to read MDIO register one more time after MDIO register indicates that data is ready. Version 8.3.3 September 20, 2005 -------------------------------- Enhancements: ============= 1. Request: Added support for BCM5755 family devices. Change : Changed PXE init code to support above devices. Version 8.3.2 September 06, 2005 -------------------------------- Enhancements: ============= 1. Request: Added support for BCM5787 family devices. Change : Changed PXE init code to support above devices. Version 8.3.1 August 31, 2005 ----------------------------- Enhancements: ============= 1. Request: Added support for BCM5903M. Change : Changed PXE init code to support above devices. Version 8.3.0 August 25, 2005 ----------------------------- Fixes: ====== 1. Problem: DOS UNDI might hang in some specific systems/environments where it doesn't handle spurious interrupts. (CQ#13762) Cause: When optimization code path is taken, there is a bug in the UNDI driver in which it might not claim it's the source of interrupt. It indicates to upper layer driver (e.g Universal NDIS2 driver) that it's not the source of interrupt. In some systems, however, the last default handler (BIOS or O/S) of the interrupt handler chain doesn't send EOI (End-Of-Interrupt) to the PIC (Programmable Interrupt Controller). This prevents the driver not getting any more interrupts even the device still generates interrupt. Change: Implement logic so that it always claims its interrupt when optimization path is taken. Enhancements: ============= 1. Enhanced to provide a way for the BIOS to select Boot protocol during PXE ROM initialization. (CQ#13671) 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 : 0x50524f54 ("PROT") SI : bit 2..0 = 000b - PXE 001b - RPL 010b - BOOTP 011b - iSCSI If the signature in ECX is valid, this parameter overwrites the configuration in the NVRAM. 2. Request: Added support for BCM5714,BCM5714S,BCM5715, BCM5715S. Change : Changed PXE init code to support above devices. Version 8.2.6 July 20, 2005 --------------------------- Enhancements: ============= 1. Request: Removed support for BCM5714,BCM5714S,BCM5715, BCM5715S. Change : Changed PXE init code to not support above devices. Version 8.2.5 June 10, 2005 --------------------------- Fixes: ====== 1. Problem: Channel 1 of HTLE device doesn't boot based on configured Boot Protocol. It instead boots with configured Boot Protocol of channel 0. (CQ#13114) Change: Changed PXE init code to use correct configured Boot Protocol for channel 1. Version 8.2.4 June 1, 2005 -------------------------- Fixes: ====== 1. Problem: PXE doesn't detect link with some of the switches (e.g Dell 5224) that only advertise Half Duplex Capability in Fiber mode. This is definitely a bug in the Dell switch. All fiber ports shouldn't advertise Half Duplex capability ONLY. Cause: By default, Serdes only advertises Full Duplex. Change: Changed UNDI driver to advertise both Full and Half duplex capability. This is purely a S/W workaround for Dell's issue so that link can be accomplished. Regardless it's established at Half or Full duplex, MAC still runs at Full duplex mode since it doesn't do CSMA at the MAC level when it's in Serdes mode. Version 8.2.3 May 27, 2005 -------------------------- Fixes: ====== 1. Problem: ISCSI boot initiator cannot connect ISCSI target when it runs over UNDI driver with BCM5704s. (CQ#13008) Cause: Serdes autonegotiation is done in the PXE firmware. When link partner is configured with AUTONEG off, when firmware takes about 1 to 1.5 seconds to force the link up via fallback mechanism. UNDI driver returns back to UNDI API users when it detects the cable is present and doesn't wait until firmware to complete autoneg. UNDI API users might transmit packets when link is not ready yet. This causes packets to be dropped. Change: Changed UNDI driver to wait until firmware to complete autoneg before returning back to UNDI API users. Version 8.2.2 May 19, 2005 -------------------------- Fixes: ====== 1. Problem: Base code doesn't process DHCP Vendor Specific option (option 43) if Class Identifier (DHCP option 60) option is after option 43. Change: Changed the DHCP logic in the base code so that it will process Vendor Specific option regardless where Class Identifier in the DHCP packet. Version 8.2.1 May 18, 2005 -------------------------- Enhancements: ============= 1. Enhance UNDI driver to terminate a network boot with media failure if cable (energy detect) is not detected on new generation of devices. 2. Enhance ROM header utility (romhdr.exe) to display detailed descriptions of a given image. Version of this utility is v1.6. For instance, romhdr -verbose -i b57undie.nic The output is : Content of PCI Data Structure in ROM Image =========================================== Vendor ID : 0x14e4 Device ID : 0x1677 Code/Data Revision : 0x8201 Content of Vendor Data Structure in ROM Image ============================================= Flags : 0x5800 ( NIC PCI-E ) UNDI Code Size : 17200 UNDI Data Size : 14720 BC Code Size : 0 BC Data Side : 0 Version : v8.2.1 This indicates that this UNDI driver is for PCI-E NIC device. The run-time memory footprint of this UNDI driver is about 31K. Fixes: ====== 1. Problem: With Hamilton/HTLE Serdes, UNDI driver doesn't detect link if link partner has AUTONEG off. Cause: Fallback mechanism doesn't work correctly. Change: Fixed fallback mechanism so that UNDI driver brings the link up if cable is attached and link partner is not sending config word. Version 8.2.0 May 17, 2005 -------------------------- Enhancements: ============= 1. Add support for Hamilton and HTLE devices. 2. Request: Reduce driver image size. See readme.txt for correct usage of PXE driver. (CQ#12531) Change : Generated specific set of driver for PCI Express devices and PCI devices. Size of drivers for PCI express devices and PCI/PCI-X devices are deduced approximately 10Kbytes and 2Kbytes, respectively. Version 8.1.54 April 28, 2005 -------------------------------- Fixes: ====== 1. Problem: TFTP download fails if TFTP responses are in multiple IP fragments. (CQ#12778) Cause: Base code doesn't support TFTP read when TFTP responses are in multiple IP fragments. Change: Added logic to handle IP reassembly when TFTP responses are in multiple IP fragments and set IP reassembly timeout to 1 second. 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.1.1: Fixed an issue in the TFTP open routine where timeout is not reset per call. This causes a tremenous delay if TFTP server is not available. (CQ#39447) v1.0.9: Base Code used IGADDR in the bootp field as default gateway IP address. It should use Router DHCP option for default gateway IP address. This causes TFTP packets routed to the wrong path. Updated base code to initialize default gateway IP address from the Router DHCP option if it's present. v1.0.8: Modified the base code to respond to ARP requests when it's polling for keystrokes in the PXE menu. v1.0.7: Enhanced the bootstrap menu processing logic in the base code to poll UNDI interface for Rx packets so that IPMI/ASF traffic is not blocked. v1.0.6: During BINL (Boot Information Negotiation Layer) phase, base code checks to make sure Server IP address in the BINL response is the same as the Server IP address in DHCP phase. If it's different, then it doesn't accept the BINL response. This can be different and valid in some configurations. Changed the base code so that it doesn't have to validate the Server IP address in BINL phase. v1.0.5: Changed the DHCP logic in the base code so that it will only wait for up to 4 seconds to send out DHCP requests after one or more DHCP offers are received. v1.0.4: Changed the DHCP logic in the base code so that it will process Vendor Specific option regardless where Class Identifier in the DHCP packet. v1.0.3: Added logic to handle IP reassembly when TFTP responses are in multiple IP fragments and set IP reassembly timeout to 1 second. v1.0.2: Changed the DHCP logic in the base code so that it only processes Vendor Specific option when Class Identifier is present and contains "PXEClient". v1.0.1: Changed to abort network boot if UNDI driver return status code of PXENV_STATUS_UNDI_MEDIATEST_FAILED. 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.