0 Replies Latest reply on Sep 18, 2011 7:01 PM by MystiQ

    Flash Firmware Utility (BootUtil) - Details of PXE Boot Configuration "-MODE" option usage.

    MystiQ

      Dear Intel/Community

       

       

      This post might be useful to some of you wanting to divulge technical details of some older NIC cards capable of being flashed with BootUtil.

       

      I recently went through the process of updating flash on my old Compaq/HP NC3121 NIC based on Intel SB82558B to have the latest Intel Boot Agent v4.2.04 along with PXE 2.1 on it, and I discovered in documentation of BootUtil the secret "-MODE" option within PXE Configuration part that was documented there, however — not really explaining the more in-depth usage of it.

       

      The documentation does not say what value (hexadecimal, string or whatever) must be included within the "-MODE=value" option in command line to be properly written to EEPROM.

       

      This should not happen to such important things and should be well documented with example values, even if NICs and their chipsets EEPROM mappings and registers has still been evolving and differ between the evolving process.

       

      Because I am kind of intellectually curious person, I decided during my personal usage of BootUtil to send via this "-MODE" option some random value to test what will happen and surprisingly the provided value within command line was accepted by flashing utility and EEPROM of my card was updated.

       

      I did not know what EEPROM register was changed and I thought it was something important that will have a significant impact on the funcionality of my card and I had to look into document of Intel 82559ER Fast Ethernet describing EEPROM map and contents for reference to get acquainted with the EEPROM registers and their detailed working behind the scenes (even if I own SB82258B chipset as I was not able to find EEPROM mapping based on this chipset).

       

      By using some ways of dumping EEPROM content of my NIC I discovered that the "-MODE" option allows you to change both -STE(D) and -TLE(D) into enabled state by sending just one 16-bit word through this very "-MODE" option when providing it in hexadecimal notation like 0x4000 form (4000 would do the same effect and this is also the value set when using -DEFCFG (Default config - this brings everything back to Default in PXE touching all other PXE settings too), and is accepted too as long as the value is between 0000-FFFF. (Please note, however that if you specify value (prior to your knowledge of knowing what this option does) like FFFF and use later the following command: BOOTUTIL -STD -TLD -NIC 1

       

      than that will change the value "FFFF to "FFFC" in WORD 31 of EEPROM which instructs to disable Setup Menu and remove Initial Title Message from appearing on POST but after you rebooted your PC you are surprised seeing Initial Title Message and you can still reach Setup Menu by pressing CTRL+S keys. That is because value 4000 will be set again automatically, since "FFFF" value passed via "-MODE" option was initially accepted by BootUtil but not accepted by chip configuration and messed up the configuration you wanted to set in the first place and you need to rerun BootUtil to reconfigure Setup menu and Initial Title Message thingy, again.)

       

      To sum that up. The WORD 31 register in EEPROM and the two mentioned options are only changed while sending hexadecimal value through the described "-MODE" option. The other options that are part of PXE Configuration like -MSE -SETWAITTIME=x are NOT changed when passing the "-MODE" option to BootUtil.

       

      A part of documentation concerning PXE Boot Configuration at the bottom of this post is revised by me to describe (hopefully) better what this "-MODE" option really does for actually 82558B chipset based cards and Compaq/HP NC3121 when it is flashed with default BootIMG.FLB (included in BootUtil) and -up=pxe option to change a PXE feature from LANDesk Service Agent v0.99b (1997) to that of Intel Boot Agent v4.2.04 along with PXE 2.1 (2011).

       

      I believe that because as I see in documentation of Intel 82559ER Fast Ethernet describing EEPROM map and contents — the "WORD 31" is reserved in  architecture of 82559ER and some part of PXE Configuration is different in it, too — that might be the reason why Intel did not explain the "-MODE" option better.

       

      All in all, I am sure that a better description of "-MODE" option usage should be possible to be put there officially and revised by providing at least just some sort of example like I tried to explain in more details about what value must be passed in that option, i.e. hexadecimal, string, etc. with a correct syntax.

       

       

       

      Below is an excerpt of PXE Boot Configuration taken from BootUtil.txt documentation:

       

       

       

       

      Original (April 8, 2011)

       

      ------------------------------------

       

      PXE BOOT CONFIGURATION OPTIONS: (Can be used with -NIC or -ALL)

          -DEFAULTCONFIG or -DEFCFG

            Sets the PXE configuration of the selected NIC back to default settings.

          -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.

          -MESSAGEENABLE or -MSE

            Enables display of the Control-S Setup message when PXE initializes.

          -MESSAGEDISABLE or -MSD

            Disables display of the Control-S Setup message when PXE initializes.

          -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.

          -MODE

            Writes the given MODE setting to EEPROM of the given NIC(s).

       

       

      Revised (September 18, 2011)

      ----------------------------------------------

       

      PXE BOOT CONFIGURATION OPTIONS: (Can be used with -NIC or -ALL)

          -DEFAULTCONFIG or -DEFCFG

            Sets the PXE configuration of the selected NIC back to default settings.

          -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.

          -MESSAGEENABLE or -MSE

            Enables display of the Control-S Setup message when PXE initializes.

          -MESSAGEDISABLE or -MSD

            Disables display of the Control-S Setup message when PXE initializes.

          -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.

          -MODE=X

            Writes -STE(D)/-TLE(D) option MODE setting (provided in hexadecimal form)

            to EEPROM (WORD 31) of the given NIC(s) rather than using -STE(D)/-TLE(D)

            options above which produces the same effect but instead of using the two

            separate options you can use -MODE=value(in hex) option.

       

           Possible values stored in EEPROM (WORD 31) when using the -MODE option are:

       

         (Default:STE/TLE=0x4000)(STD/TLE=0x4001)(STE/TLD=0x4002)(STD/TLD=0x4003)

       

            Note: This example applies to SB82258B chipset and ONLY the -STE(D)/-TLE(D)

                      options can be modified while using the "-MODE=value" option that writes

                      the above described values as a new setting to EEPROM (WORD 31)

       

      .

       

       

       

      I hope you will find this information valuable.

       

      ___________

      Regards

      Robert M. Konopka