This is an old revision of the document!


Burning gPXE into Broadcom BCM57xx based cards

<referback>This page is part of the ROM-burning tutorial.</referback>

Various manufacturers supply their own flash utilites, unfortuantly these do not appear to work correctly with etherboot, and due to this, we require the Broadcom “diagnostic” utility set.

Obtaining the ROM image

In order to build the rom for my HP card the PCI id had to be added to src/drivers/net/tg3.c

  PCI_ROM(0x0e11, 0x00ca, "tg3-hp",	"tg3 HP"),

The above was added to tg3.c and the rom made with the following command

  make bin/tg3-hp.rom

Preparing the tools

Now that we have the image, I would suggest copying this to media that will be accessable from FreeDOS (such as a FAT formated USB Drive)

Once we have the rom saved else where we need to obtain the Broadcom Diagnostic utility

Burn this image to CD using your favourite CD burning method

Burning the gPXE ROM

Boot from the CD selecting option 1.

At the next prompt choose the “Install to HD using FD setup” option, please note this won't actually install to your HDD without more confirmation

At the next screen, choose your language, and then select “Run FreeDOS from CD ROM (return to command prompt)”

You should now have an X:\ prompt

From here change your current working directory to X:\B57UDIAG\

From here you will want to execute the following command

  B67UDIAG.exe -ver

You should see something like

  X:\B57UDIAG\>b57diag.exe -ver
  ****************
  Copyright notice
  ***************
  C	Brd:Rv	Bus		PCI	Spd	Base	Irq		EEP		MAC		Fmw		Configuration
  ----------------------------------------------------------------------------------------------------------------------
  0	5703:B0	05:04:0		32	33	FC50	11		128K		012345567810	5703-v.235	WMp,auto
  

This shows the list of broadcom cards in the machine. We in this case have only the one card. We want to check the current payload in the card, so we need to run the following

  X:\B57UDIAG\>b57diag.exe -c 0 -dir
  ****************
  Copyright notice
  ***************
  C	Brd:Rv	Bus		PCI	Spd	Base	Irq		EEP		MAC		Fmw		Configuration
  ----------------------------------------------------------------------------------------------------------------------
  0	5703:B0	05:04:0		32	33	FC50	11		128K		012345567810	5703-v.235	WMp,auto
  
  0	5703:B0	05:04:0		32	33	FC50	11		128K		012345567810	5703-v.235	WMp,auto
  Entry	Type		SRAM Addr	EEP Offset		Length		Execute		Version
  	Bootcode	08003000	00000200		00001860	CPUE(2)		5703-v2.35
  0	PXE		00010000	00001A60		0000EA04	no		v73.67.80
  

This lists the current NRAM filesystem on the card. Please note the PXE rom on this card is already a gPXE rom, however the same process holds true for replacing the rom

In order to burn the rom we need to run the following

  A:\>b57diag.exe -c 0 -pxe c:\tg3-hp.rom
  ****************
  Copyright notice
  ***************
  C	Brd:Rv	Bus		PCI	Spd	Base	Irq		EEP		MAC		Fmw		Configuration
  ----------------------------------------------------------------------------------------------------------------------
  0	5703:B0	05:04:0		32	33	FC50	11		128K		012345567810	5703-v.235	WMp,auto
  
  0	5703:B0	05:04:0		32	33	FC50	11		128K		012345567810	5703-v.235	WMp,auto
  Updating PCI Rom Header with Vendor ID = 0x14e4 Device ID = 0x16c7
  Updating PXE-UNDI16 code (length = 59908 bytes ) ...
  Programing 59908 bytes to NVRAM offset 00001A60
  <counter that ends at 59908 for my rom>
  Updating Directory
  code len		= 0000ea04
  sram_start_address	= 00010000
  code_start_address	= 00001a60
  Reading current NVRAM ... OK
  Programing... 512
  
  Totally 1 card(s) has been programmed

Reboot the machine and enter the BIOS setup. You should see gPXE show up as an option in your BIOS's boot selection menu.

Congratulations on successfully burning gPXE into your network card!


QR Code
QR Code romburning:tg3 (generated for current page)