7. Running the Flash Management Utility

The run command is used to run the flash management utility. Before you start you will need a device available to MILO that contains the updateflash program. This (like vmlinux) can be gzip'd. You need to run the flash management utility program from the MILO using the (run) command:

     MILO> run fd0:fmu.gz

Once it has loaded and initialised, the flash management utility will tell you some information about the flash device and give you a command prompt. Again the help command is most useful.

Linux MILO Flash Management Utility V1.0

Flash device is an Intel 28f008SA
  16 segments, each of 0x10000 (65536) bytes
Scanning Flash blocks for usage
Block 12 contains the environment variables
FMU> 

Note that on systems where environment variables may be stored and where there is more than one flash block (for example, the AlphaPC64) the flash management utility will look for a block to hold MILO's environment variables. If such a block already exists, the flash management utility will tell you where it is. Otherwise, you must use the environment command to set a block and initialise it. In the above example, flash block 12 contains MILO's environment variables.

7.1. The ''help'' command

FMU> help
FMU command summary:

list                - List the contents of flash
program             - program an image into flash
quit                - Quit
environment         - Set which block should contain the environment variables
bootopt num         - Select firmware type to use on next power up
help                - Print this help text
FMU>           

Note that the environment and bootopt commands are only available on the EB66+, the AlphaPC64, EB164 and PC164 systems (and their clones).

7.2. The ''list'' command

The ''list'' command shows the current usage of the flash memory. Where there is more than one flash block, the usage of each flash block is shown. In the example below you can see that Windows NT ARC is using blocks 4:7 and block 15.

FMU> list
Flash blocks:  0:DBM  1:DBM  2:DBM  3:WNT  4:WNT  5:WNT  6:WNT  7:WNT  8:MILO  
        9:MILO 10:MILO 11:MILO 12:MILO 13:U 14:U 15:WNT
Listing flash Images
  Flash image starting at block 0:
    Firmware Id:  0 (Alpha Evaluation Board Debug Monitor)
    Image size is 191248 bytes (3 blocks)
    Executing at 0x300000
  Flash image starting at block 3:
    Firmware Id:  1 (Windows NT ARC)
    Image size is 277664 bytes (5 blocks)
    Executing at 0x300000
  Flash image starting at block 8:
    Firmware Id:  7 (MILO/Linux)
    Image size is 217896 bytes (4 blocks)
    Executing at 0x200000
FMU>

7.3. The ''program'' command

The flash management utility contains a compressed copy of a flash image of MILO. The ''program'' command allows you to blow this image into flash. The command allows you to back out, but before you run it you should use the ''list'' command to see where to put MILO. If MILO is already in flash, then the flash management utility will offer to overwrite it.

FMU> program
Image is:
    Firmware Id:  7 (MILO/Linux)
    Image size is 217896 bytes (4 blocks)
    Executing at 0x200000
Found existing image at block 8
Overwrite existing image? (N/y)? y
Do you really want to do this (y/N)? y
Deleting blocks ready to program: 8 9 10 11
Programming image into flash
Scanning Flash blocks for usage
FMU> 

Wait until it has completed before powering off your system.

Note: I cannot emphasise just how careful you must be here not to overwrite an existing flash image that you might need or render your system useless. A very good rule is never to overwrite the Debug Monitor.

7.4. The ''environment'' command

This selects a flash block to contain MILO's environment variables.

7.5. The ''bootopt'' command

This is just the same as MILO's ''bootopt'' command, see (Section Section 6.4).

7.6. The ''quit'' command

This is really pretty meaningless. The only way back to MILO (or anything else) once the flash management utility has run is to reboot the system.