|CDF VxWorks Flash RAM Disaster Recovery|
Described below is the procedure that can be followed in case the flash ram in a VME processor becomes corrupted.
Each processor contains two flash rams. The boards are normally configured to boot from the 4MB "soldered" flash ram, which contains a VxWorks boot image. The 1MB "socketed" flash ram contains PPCbug, a basic CPU monitor program from Motorola.
If the soldered flash becomes corrupted, the strategy is to boot the board to PPCbug, and use various monitor commands to install a basic VxWorks boot image into the 4MB flash ram. Then the board is booted to the basic VxWorks kernel, and the full CDF flash ram image installed.
To do this, perform the following steps:
SET mmddyyhhmmsubstituting the correct date and time.
PPC1-Bug>niot Controller LUN =00? Device LUN =00? Node Control Memory Address =07F9E000? Client IP Address =184.108.40.206? 220.127.116.11 Server IP Address =18.104.22.168? 22.214.171.124 Subnet IP Address Mask =255.255.0.0? Broadcast IP Address =255.255.255.255? Gateway IP Address =126.96.36.199? 188.8.131.52 Boot File Name ("NULL" for None) =? . Update Non-Volatile RAM (Y/N)? ySubstitute the correct IP address for the processor for "Client IP Address" above.
PPC1-Bug>niop Controller LUN =00? Device LUN =00? Get/Put =G? g File Name =? vxWorks-2301.st_rom.bin Memory Address =00004000? Length =00000000? Byte Offset =00000000? Bytes Received =&310508, Bytes Loaded =&310508 Bytes/Second =&103502, Elapsed Time =3 Second(s)If the board is a 2304, use "vxWorks-2305.st_rom.bin" for the "File Name" above; if the board is a 2400, use "vxWorks_romCompress-2400.bin". The files are located in the /cdf/onln/data/vxworks/tftpboot directory, accessible from the online linux cluster. Alternatively, a very minimal VxWorks boot image can be found in the boot.bin (and similarly named) files.
PPC1-Bug>pflash 4000:FFF00 ff000100 Source Starting/Ending Addresses =00004000/00103EFF Destination Starting/Ending Addresses =FF000100/FF0FFFFF Number of Effective Bytes =000FFF00 (&1048320) Program FLASH Memory (Y/N)? y FLASH Memory Programming Complete
# setting time in format mmddyyhhmmss set -t030304134500 # copy MOTLoad from /dev/flash1 (8MB) to /dev/flash0 (32MB) (not normally necessary) dla = malloc -x100000 bmb -a0xfff00000 -bffffffff -cdla flashProgram -o0x1f00000 -sdla -v # copy MOTLoad from /dev/flash0 (32MB) to /dev/flash1 (8MB) (not normally necessary) dla = malloc -x100000 bmb -a0xf3f00000 -bf3ffffff -cdla flashProgram -d/dev/flash1 -o0x700000 -sdla -v # general commands MVME5500> time MON MAR 22 16:52:42.00 2004 MVME5500> netShow Interface EAddress Status Speed Duplex /dev/enet0 0001AF0BD569 Up 100MBS Full /dev/enet1 0001AF0BD56A Down Unknown UnknownInitially (from the factory) both /dev/flash0 and /dev/flash1 are installed with MOTload. The VxWorks kernel should be written to /dev/flash0 via tftp (trivial file transfer protocol). You need to use /dev/flash0 since the kernel expects to reside there. At CDF, b0server00, b0server01 and b0server02 have tftp enabled, with the /cdf/onln/data/vxworks/tftpboot directory accessible to remote tftp clients. To load the minimal boot image:
tftpGet -c184.108.40.206 -g220.127.116.11 -s18.104.22.168 -d/dev/enet0 -fboot-5500.bin flashProgram -o0x1f00100 -n0xfff00 -vTo load the full kernel into Flash RAM: (recommended)
tftpGet -c22.214.171.124 -g126.96.36.199 -s188.8.131.52 -d/dev/enet0 -fvxWorks_romCompress-5500.bin flashProgram -o0x1f00100 -n0xfff00 -vIn this example, 184.108.40.206 (b0diag01) is the target client running MOTload, 220.127.116.11 is the subnet gateway, and 18.104.22.168 is one of the tftp servers (b0vxboot02, also known as b0server02 on the 236 subnet). The device /dev/enet0 is the 10/100T ethernet interface. The file boot-5500.bin is specific to the MVME5500. After this binary file is loaded, unplug the MVME5500 and make sure the jumper J8 is installed between pins 1 and 2 (for flashRam0). If the jumper was already on flashRam0, then press and hold the front panel reset button for three seconds, until the BFL front panel LED lights up. To install the full CDF VxWorks kernal in flashRam0, replace boot-5500.bin file name with vxWorks_romCompress.bin.5500, as noted above.* Unlike the 2000 series MVME processors, you do not have to go through the intermediary step of loading boot-5500.bin first.
If you loaded the minimal boot image boot-5500.bin , then at the [VxWorks Boot]: prompt, you can type c to change the boot parameters according the the CDF Boot Parameters web page. If you loaded the full kernel, type bootChange to alter the boot parameters.
* NB 1: The Trigger Supervisor crate b0tsi00 uses both the 100BaseT and the Gigabit Ethernet spigots, and requires a kernel with gigabit ethernet enabled: vxWorks_romCompress.bin.gigE.5500
v* NB 2: When loading a kernel from VxWorks, you must choose the vxWorks.romCompress file without the .bin suffix. The VxWorks based flash loader cannot handle the binary file.