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.
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).
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>
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.
This selects a flash block to contain MILO's environment variables.
This is just the same as MILO's ''bootopt'' command, see (Section E.6.4).
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.