EEUPDATE - Intel PCI NIC EEPROM Utility Version 4.2 ==================================================================== DISCLAIMER: ----------- Copyright (c) 1998-2002, Intel Corporation. All rights reserved. Intel Corporation, 5200 NE Elam Young Parkway, Hillsboro, OR 97124-6497. Intel Corporation assumes no responsibility for errors or omissions in this document or software. Nor does Intel make any commitment to update the information or software contained herein. Software product is supplied "as is" and may not be fully functional. Other product and corporate names may be trademarks of other companies and are used only for explanation and to the owners' benefit, without intent to infringe. *** WARNING *** This program must be run in a DOS only environment, not in a DOS window under a GUI or after the GUI has run. Either boot to a DOS boot disk, or boot Windows 95/98 to command line mode. VERSION CHANGES --------------- 4.02 o Implemented Intel Boot Agent support for PRO/1000 MT and PRO/1000 MF series network adapters. o Added support for device ID 1059. o Can now read MAC address correctly from dual port PRO/1000 MT and PRO/1000 MF series network adapters. 4.01 o Comments can now be added in EEPROM image files. o Added check to see if EEupdate is being run under a supported operating system. o Fixed formatting of adapter display table. o Fixed EEPROM writes for Gigabit adapters. o Fixed the boot agent configuration functions. o -all parameter now selects all adapters in the system. o -device parameter now selects all adapters with a specified device ID. 4.00 o Use of the -device parameter is now only required with the -all parameter. 3.40 o Added Gigabit adapter support for Wake On Lan, and network boot configuration. 3.39 o Added support for device ID's 100C, and 100D. 3.38 o Improved documentation to clarify usage. 3.37 o Fixed multiple error message bug associated with MAC address raw file parameter. o Updated documentation to reflect changes. 3.36 o Added support for additional device ID's. o Modified dump parameter to no longer read MAC address. 3.35 o Support for device ID 1004 must use -DEVICE parameter to program. 3.29 o Improved documentation. 3.28 o Cosmetic fixes -- updated TXT files with description of EEP format. 3.27 o Rewrote MAC address file code to fix several bugs and introduce new "count" syntax. o Fixed bug where EEUPDATE was sometimes ignoring -nochksum flag o Updated -SETWAITTIME semantics and encoding 3.26 o Better error code reporting (mostly for BROW.EXE) 3.25 o "Invalid NIC" message and error exit code generating when appropriate, rather than "No NIC specified!". o Warning issued when EELOG.DAT read from directly while being written to. 3.24 o Added setup delay time set option (word 30h) as command line parameter o Eeupdate now displays error message when no NIC is specified 3.23 o Fixed some code update problems with 3.22 3.22 o Added capability to specify card by bus and device in addition to nic # 3.21 o Fixed issue with replicated MAC addresses when using input .dat file 3.18 o Fixed issue with device ID 2449 3.17 o Added Configuration Customization Option (Word 31h) 3.16 o Added support for device ID 2449. 3.14 o Added support for device ID 1209. 3.13 o Fixed support for device ID 1001. 3.12 o Changed PCI Scan code so that it scans 32 PCI busses. 3.11 o Support for device ID 1029 must use -DEVICE parameter to program. o Support for device ID 1001 must use -DEVICE parameter to program. o Changing MAC address from command line. 3.10 o Support for device ID 1000 must use -DEVICE parameter to program. RUNNING EEUPDATE ---------------- EEUPDATE.EXE is designed to be run from a DOS 6.22 boot disk with himem.sys loaded. To load himem.sys copy the himem.sys file to your DOS boot disk and add the following line to the config.sys file on the boot disk: device=a:\himem.sys EEUPDATE64.efi must be run from the EFI shell on Intel Itanium based computers. EEUPDATE32.efi must be run from an EFI boot disk on Intel IA32 based computers. EEUPDATE can be run with any of the following command line options: OPTIONS: -------- -HELP or -? Displays command line help. -EXITCODES Displays exit code help. -ALL Selects all adapters found in the system. -NIC=XX Selects a specific adapter (1-8). -BUS=X Selects PCI bus of adapter to program. Must be used with the DEV parameter to specify an adapter. -DEV=X Selects PCI device to program. Must be used with the BUS parameter to specify an adapter. -DEFAULTCONFIG or -DEFCFG Resets words 30h to 32h back to default. -BOOTENABLE Enables Boot ROM. -BOOTDISABLE Disables Boot ROM. -SETUPENABLE or -STE Enables Setup Menu -SETUPDISABLE OR -STD Disables Setup Menu. -TITLEENABLE OR -TLE Enables Initial Title Message. -TITLEDISABLE OR -TLD Disables Initial Title Message. -PROTOCOLENABLE OR -PROE Enables Changing the Boot Protocol Option. -PROTOCOLDISABLE OR -PROD Disables Changing the Boot Protocol Option. -ORDERENABLE OR -ORDE Enables Changing the Boot Order Option. -ORDERDISABLE OR -ORDD Disables Changing the Boot Order Option. -LWSENABLE OR -LWSE Enables Changing the Legacy OS Wakeup Support Option. -LWSDISABLE OR -LWSD Disables Changing the Legacy OS Wakeup Support Option. -DUMP Dumps EEPROM memory contents of the selected network adapter to a file. -NOCHKSUM Prevents EEPROM checksum from being updated. -WOLDISABLE or -WOLD Disables WOL bit. -WOLENABLE or -WOLE Enables WOL bit. -CB Clears bits in the EEPROM, specified in . -SB Sets bits in the EEPROM, specified in . -RW Reads from the EEPROM. -WW Writes into in EEPROM. Programs EEPROM with image from and MAC address from . -A or -ADDRESS Programs the EEPROM with only the MAC address from the without changing the rest of the EEPROM. -D or -DATA Programs the EEPROM from the without changing the MAC address. -DEVICE= 4 hex digit PCI device ID of network adapter to program. -MAC=macaddr Programs EEPROM with image from and MAC address of macaddr. -MAC=macaddr Programs the EEPROM with only the MAC address of macaddr without changing the rest of the EEPROM. -SETWAITTIME=X or -SWT=X Set the setup delay time for the NIC to X seconds. Valid delay times are 0, 2, 3, and 5. BASIC USAGE GUIDELINES ---------------------- To display a list of installed adapters call EEUPDATE.EXE without any parameters as follows: EEUPDATE EEUPDATE will display a list of network adapters installed in the system similar to the following: [EEUPDATE ver 4.1.16.0] - Intel PCI NIC EEPROM Utility Copyright (C) 1995 - 2002 Intel Corporation NIC BUS Dev Vendor-Device Network Address PWA Number Size Checksum === === === ============= ================= ============ ==== ======== 1 0 0D 8086-1229 44004713CEBE 729757-006 64 708E 2 0 0F 8086-1229 4400B7DD035E A43917-001 64 7575 3 0 10 8086-1001 00D0B71100DD 738640-002 64 69DF To perform an operation on an installed network adapter you must specify the "-NIC=" parameter. For example, to perform an EEPROM dump on NIC 3 from the list above call EEUPDATE like this: EEUPDATE -NIC=3 -DUMP Alternatively you may specify the "-BUS=" and "-DEV=" parameters instead of the "-NIC=" parameter to specify which network adapter to select. For example to program NIC 1 from the list above with the EEPROM image file "image.eep" call EEUPDATE.EXE as follows: EEUPDATE -BUS=0 -DEV=D -DATA image.eep EEPROM IMAGE FILE FORMAT ------------------------ The parameter designates a text file which contains hexadecimal values with which to program the EEPROM. Each value should consist of up to four hex digits seperated by a space or newline. The data contained in must be formatted the same as the EEPROM imagefile produced by the "-dump" parameter. An imagefile produced by the "-dump" parameter may be used to program the EEPROM. Comments may be added to the EEPROM image file as long as they are preceded by a semicolon ';'. NOTE: When programming the EEPROM using the "-DATA" parameter, EEupdate will ignore the MAC Address (first 6 bytes), and EEPROM checksum (last 2 bytes). However, the MAC Address and checksum locations in the EEPROM image file must be filled with valid hexadecimal values. MAC ADDRESS FILE FORMAT ----------------------- The parameter designates a text file which contains MAC addresses to be programmed to the NIC. This file should contain a list of one or more legal MAC addresses, one per line. Each MAC address contains exactly 12 hexadecimal digits: Example: 000AC45D7800 000AC45D7801 000AC45D7802 A special "count" syntax may also be used. When a decimal integer in square brackets follows the mac address on the line, it is interpreted as a count of consecutive MAC addresses to be programmed. Example: 000AC45D7800 [3] The two examples above are the same. Both represent three consecutive MAC addresses starting at 000AC45D7800. EELOG.DAT --------- When is used as a source for MAC addresses, EEUPDATE generates a file named EELOG.DAT which contains a record of which MAC addresses in were used and which remain available. Those addresses used are tagged with a date/time stamp like this: 000AC45D7800 : 10:43:14 08/30/2000 The file format for EELOG.DAT is readable as input for in future invocations of EEUPDATE. As of EEUPDATE 3.27, the EELOG.DAT file may be used as both input and output simultaneously. EXAMPLES: -------- Example 1: To update the EEPROM, and MAC Address with the data stored in the files imagefile.eep, and addrfile.dat respectively, call EEUPDATE like this: EEUPDATE -NIC=1 imagefile.eep addrfile.dat Example 2: To update the MAC Address without changing the rest of the EEPROM on the third Intel network adapter found in your system, call EEUPDATE like this: STEP1: EEUPDATE -NIC=3 -A addrfile.dat STEP2: copy eelog.dat addrfile.dat Example 3: To update the EEPROM without changing the MAC address on all of the Intel network adapters with device ID 2449 found in your system, call EEUPDATE like this: EEUPDATE -DEVICE=2449 -D imagefile.eep Example 4: To dump the EEPROM contents on all of the Intel network adapters in your system, call EEUPDATE like this: EEUPDATE -ALL -DUMP Example 5: To clear specific bit 1 in word 0xA in the EEPROM on all of the Intel network adapters in your system with device IDs 1038, call EEUPDATE like this: EEUPDATE -DEVICE=1038 -CB 0xA 0x2 Example 6: To set bit 1 in word 0xA in the EEPROM on all of the Intel network adapters in your system, call EEUPDATE like this: EEUPDATE -ALL -SB 0xA 0x2 Example 7: To read word 0x9 from the EEPROM, call EEUPDATE like this: EEUPDATE -NIC=3 -RW 0x9 Example 8: To write word 0x9 to the EEPROM on the third Intel network adapter found in your system, and update its checksum, call EEUPDATE like this: EEUPDATE -NIC=3 -WW 0x9 0x1234 NOTE ----- * If you run EEUPDATE without any command line options, EEUPDATE will display a listing of all of the supported Intel Network adapters found in your system. * When using the '-dump' command, EEUPDATE will automatically create a file and name it, based on the last 8 bytes of your Intel Network adapter's MAC Address. For example, if your MAC Address was '00AA11223344', EEUPDATE would create the file called '11223344.EEP'. * Both and parameters *must* be sent to eeupdate in hexadecimal. * The EEPROM Checksum is automatically updated when you clear/set a bit or bits, and when you write a word to the EEPROM. This can be shut off by using the -NOCHKSUM option. -NOCHKSUM should be used sparingly, because it may cause the device to appear invalid to other utilities. DOS ERROR CODES: ---------------- EEUPDATE returns error codes to the DOS command line. A description of the error codes is shown below. CODE NAME: VALUE: ---------- ------ SUCCESS 0 OPERATOR TERMINATION 1 INVALID NIC 2 BAD COMMAND LINE PARAM 3 EEPROM CHECKSUM FAILURE 4 EEPROM READ FAILURE 5 EEPROM WRITE FAILURE 6 EEPROM DUMP FAILURE 7 BAD FILE 8 NO MEMORY 9 NO NICS FOUND 10