Table of Contents
This document describes the procedure to update an Arcom board to Arcom Embedded Linux V4I1 from any previous release. The procedure is specific to a particular board but in general involves: starting RedBoot, loading the flash image into RAM and programming it to flash.
When using the RedBoot load command you can transfer files using one of three methods:
If you're using TFTP or HTTP to transfer files you may need to specify IP address information with the RedBoot ip_address command. Refer to the AEL Technical Manual and eCos Reference Manual for details on the load and ip_address commands.
The examples in this document from command to type and the expected output are displayed in this document using the following conventions.
Text typed in by the user
Text output by the application
[An action to be taken at this point]
[…]
The ellipsis (…) in square brackets indicates where output has been omitted from the example.
This covers V4I1 mod B.
The BIOS in the boot ROM needs to be updated to include the RedBoot Loader BIOS extension. Note that there is an issue with the RedBoot loader that may result in the system being unable to boot from a CD or other BIOS device. Refer to the Arcom Embedded Linux v4i1 errata document for details and a workaround.
Boot off the development kit CD into RedBoot.
Load and execute the variant of RedBoot that can program the boot ROM (BIOS) flash device.
RedBoot>load redboot-pegasus-v1i1-ram-boot-rom.elfUsing default protocol (TFTP) Entry point: 0x00408000, address range: 0x00408000-0x0042cae3 RedBoot>go+ […] RedBoot(tm) bootstrap and debug environment [RAM] Non-certified release, version W485 V1I1 (Boot ROM) Platform: PEGASUS (SC520) […] RedBoot>
Load the BIOS image containing the RedBoot Loader.
RedBoot> load -r -b 0x800000 gs-bios-pegasus-v1i4-redboot-v1i2.bin
Using default protocol (TFTP)
Raw file loaded 0x00800000-0x0083ffff, assumed entry at 0x00800000
RedBoot>
Confirm the image is uncorrupted.
RedBoot> cksum
Computing cksum for area 0x00800000-0x00840000
POSIX cksum = 753289785 262144 (0x2ce64a39 0x00040000)
RedBoot>
Do not proceed if the checksum you obtain does not match that given above.
Program the image to the boot ROM flash.
RedBoot>fis write -f 0 -l 0x40000 -b 0x800000* CAUTION * about to program FLASH at 0x00000000..0x0003ffff from 0x00800000 - continue (y/n)?y... Erase from 0x00000000-0x00040000: .... ... Program from 0x00800000-0x00840000 at 0x00000000: .... RedBoot>
Reset the board and boot into RedBoot from the CD again.
Load the flash image into RAM.
RedBoot> load -r -b %{FREEMEMLO} ael-pegasus-v4i1b-f16.bin
Using default protocol (TFTP)
Raw file loaded 0x00400000-0x013fffff, assumed entry at 0x00400000
RedBoot>
Confirm the image is uncorrupted.
RedBoot> cksum
Computing cksum for area 0x00400000-0x01400000
POSIX cksum = 481919716 16777216 (0x1cb982e4 0x01000000)
RedBoot>
Do not proceed if the checksum you obtain does not match that given above.
Program the image to flash (unlocking it first).
RedBoot>fis unlock -f 0 -l 0x1000000Unlocking... ... Unlock from 0x00000000-0x01000000: ....[…] RedBoot>fis write -f 0 -l 0x1000000 -b %{FREEMEMLO}* CAUTION * about to program FLASH at 0x00000000..0x00ffffff from 0x00400000 - continue (y/n)?y... Erase from 0x00000000-0x01000000: ....[[…] ... Program from 0x00400000-0x01400000 at 0x00000000: ....[[…] RedBoot>
Remove the CD and reset the board.
Enter the BIOS setup and in the 'Basic CMOS Configuration' set 'Ide 0' to 'Ide 3' in the 'IDE DRIVE GEOMETRY' section to 'Not installed'. Save the settings and the board will then boot automatically into Arcom Embedded Linux v4i1b.
This covers V4I1 mod B.
Boot off the development kit CD into RedBoot.
Update the BIOS if required.
Load and execute the variant of RedBoot that can program the boot ROM (BIOS) flash device.
RedBoot>load redboot-sbc-gx1-v1i2-ram-boot-rom.elfUsing default protocol (TFTP) Entry point: 0x00400000, address range: 0x00400000-0x00426c23 RedBoot>go+ […] RedBoot(tm) bootstrap and debug environment [RAM] Non-certified release, version W492 V1I2 (Boot ROM) Platform: SBC-GX1 (I386) […] RedBoot>
Load the BIOS image containing the RedBoot Loader.
RedBoot> load -r -b %{FREEMEMLO} gs-bios-sbc-gx1-v1i2-linux.bin
Using default protocol (TFTP)
Raw file loaded 0x00800000-0x0083ffff, assumed entry at 0x00800000
RedBoot>
Confirm the image is uncorrupted.
RedBoot> cksum
Computing cksum for area 800000-840000
POSIX cksum = 522918991 262144 (0x1f2b1c4f 0x00040000)
RedBoot>
Do not proceed if the checksum you obtain does not match that given above.
Program the image to the boot ROM flash.
RedBoot>fis write -f 0 -l 0x40000 -b %{FREEMEMLO}* CAUTION * about to program FLASH at 0x00000000..0x0003ffff from 0x00800000 - continue (y/n)?y... Erase from 0x00000000-0x00040000: .... ... Program from 0x00800000-0x00840000 at 0x00000000: .... RedBoot>
Reset the board and boot into RedBoot from the CD again. You may need to reset the CMOS settings to their default values by entering the BIOS setup and selecting 'Reset CMOS to factory defaults' then 'Write to CMOS and Exit'.
Load the flash image into RAM.
RedBoot> load -r -b %{FREEMEMLO} ael-sbc-gx1-v4i1b-f16.bin
Using default protocol (TFTP)
Raw file loaded 0x00400000-0x013fffff, assumed entry at 0x00400000
RedBoot>
Confirm the image is uncorrupted.
RedBoot> cksum
Computing cksum for area 0x00400000-0x01400000
POSIX cksum = 1521227582 16777216 (0x5aac173e 0x01000000)
RedBoot>
Do not proceed if the checksum you obtain does not match that given above.
Program the image to flash (unlocking it first).
RedBoot>fis unlock -f 0 -l 0x1000000Unlocking... ... Unlock from 0x00000000-0x01000000: ....[…] RedBoot>fis write -f 0 -l 0x1000000 -b %{FREEMEMLO}* CAUTION * about to program FLASH at 0x00000000..0x00ffffff from 0x00400000 - continue (y/n)?y... Erase from 0x00000000-0x01000000: ....[…] ... Program from 0x00400000-0x01400000 at 0x00000000: ....[…] RedBoot>
Remove the CD and reset the board.
Enter the BIOS setup and in the 'Basic CMOS Configuration' set 'Ide 0' to 'Ide 3' in the 'ATA DRV ASSIGNMENT' section to 'Not installed'. Save the settings and the board will then boot automatically into Arcom Embedded Linux v4i1b.
This covers V4I1 mod A.
RedBoot must be updated prior to updating AEL.
Load and execute a RAM startup RedBoot to access the boot ROM flash.
RedBoot>load redboot-viper-v3i6-ram-amd.elfUsing default protocol (TFTP) Entry point: 0x00400040, address range: 0x00400000-0x0041e69c RedBoot>go+ […] RedBoot(tm) bootstrap and debug environment [RAM] Non-certified release, version W468 V3I6 - built 11:22:25, Jun 7 2005 Platform: VIPER (XScale PXA255) […] RedBoot>
Load the new ROM RedBoot image into RAM. Note that the -ram-amd image does not pay attention to the fconfig settings for IP address. If you want to load this image via Ethernet then you will need to use the ip_address command to set an IP address as described in the AEL Technical Manual.
RedBoot> load -r -b %{FREEMEMLO} redboot-viper-v3i6-rom.bin
Using default protocol (TFTP)
Raw file loaded 0x00800000-0x008397ef, assumed entry at 0x00800000
RedBoot>
Confirm the image is uncorrupted.
RedBoot> cksum
Computing cksum for area 800000-8397f0
POSIX cksum = 2375997530 235504 (0x8d9ed85a 0x000397f0)
RedBoot>
Do not proceed if the checksum you obtain does not match that given above.
Program the image to the boot ROM flash.
RedBoot>fis write -f 0 -l 0x40000 -b 0x800000* CAUTION * about to program FLASH at 0x00000000..0x0003ffff from 0x00800000 - continue (y/n)?y... Erase from 0x00000000-0x00040000: .... ... Program from 0x00800000-0x00840000 at 0x00000000: .... RedBoot>
Reset the board and boot to the RedBoot prompt.
RedBoot> reset
Now the main flash image can be installed.
Load the flash image into RAM.
RedBoot> load -r -b %{FREEMEMLO} ael-viper-v4i1a-f16.bin
Using default protocol (TFTP)
Raw file loaded 0x00400000-0x01400000, assumed entry at 0x00400000
RedBoot>
Subsitute an -f32, -cyclops or -lite image as required.
Confirm the image is uncorrupted.
RedBoot> cksum
Computing cksum for area […]
POSIX cksum = […]
RedBoot>
For the -f16 image the cksum should be
POSIX cksum = 1256968601 16777216 (0x4aebd199 0x01000000)
For the -f32 image the cksum should be
POSIX cksum = 130073553 33554432 (0x07c0c3d1 0x02000000)
For the -lite image the cksum should be
POSIX cksum = 2872571828 16777216 (0xab37f7b4 0x01000000)
For the -cyclops image the cksum should be
POSIX cksum = 2692250505 33554432 (0xa0787b89 0x02000000)
Do not proceed if the checksum you obtain does not match that given above.
Program the image to flash (unlocking it first), for the -lite or -f16 images
RedBoot>fis unlock -f 0 -l 0x1000000Unlocking... ... Unlock from 0x00000000-0x01000000: ....[…] RedBoot>fis write -f 0 -l 0x1000000 -b %{FREEMEMLO}* CAUTION * about to program FLASH at 0x00000000..0x00ffffff from 0x00400000 - continue (y/n)?y... Erase from 0x00000000-0x01000000: ....[…] ... Program from 0x00400000-0x01400000 at 0x00000000: ....[…] RedBoot>
or for the -f32 and -cyclops images
RedBoot>fis unlock -f 0 -l 0x2000000... Unlock from 0x00000000-0x02000000: ....[…] RedBoot>fis write -f 0 -l 0x2000000 -b %{FREEMEMLO}* CAUTION * about to program FLASH at 0x00000000..0x01ffffff from 0x00400000 - continue (y/n)?y... Erase from 0x00000000-0x01000000: ....[…] ... Program from 0x00400000-0x01400000 at 0x00000000: ....[…] RedBoot>
Reset the board to boot automatically into Arcom Embedded Linux V4I1a.
This covers V4I1 mod B.
List the current configuration and make a note of the network hardware address [MAC] stored for NPE eth0 and eth1
RedBoot> fconfig -l
[…]
Network hardware address [MAC] for NPE eth0: 0xaa:0xbb:0xcc:0xdd:0xee:0xff
Network hardware address [MAC] for NPE eth1: 0x11:0x22:0x33:0x44:0x55:0x66
RedBoot>
You may find it useful to write the addresses here:
npe_eth0_esa: npe_eth1_esa:
Load and execute a RAM startup RedBoot.
RedBoot>load redboot-vulcan-v1i5-ram.elfUsing default protocol (TFTP) Entry point: 0x00400040, address range: 0x00400000-0x00451190 RedBoot>go+ […] RedBoot(tm) bootstrap and debug environment [RAM] Non-certified release, version W473 V1I5 Platform: Arcom VULCAN (XScale) […] RedBoot>
Load the flash image into RAM.
RedBoot> load -r -b %{FREEMEMLO} ael-vulcan-v4i1b-f16.bin
Using default protocol (TFTP)
Raw file loaded 0x00800000-0x017fffff, assumed entry at 0x00800000
RedBoot>
or (for an F32 board)
RedBoot> load -r -b %{FREEMEMLO} ael-vulcan-v4i1b-f32.bin
Using default protocol (TFTP)
Raw file loaded 0x00800000-0x027fffff, assumed entry at 0x00800000
RedBoot>
Confirm the image is uncorrupted.
RedBoot> cksum
Computing cksum for area 0x00800000-0x01800000
POSIX cksum = 1061278965 16777216 (0x3f41d4f5 0x01000000)
RedBoot>
or (for an F32 board)
RedBoot> cksum
Computing cksum for area 0x00800000-0x02800000
POSIX cksum = 33865512 33554432 (0x0204bf28 0x02000000)
RedBoot>
Do not proceed if the checksum you obtain does not match that given above.
Program the image to flash.
RedBoot>fis write -f 0 -l 0x1000000 -b %{FREEMEMLO}* CAUTION * about to program FLASH at 0x00000000..0x00ffffff from 0x00800000 - continue (y/n)?y... Erase from 0x00000000-0x01000000: ....[…] ... Program from 0x00800000-0x01800000 at 0x00000000: ....[…] RedBoot>
or (for an F32 board)
RedBoot>fis write -f 0 -l 0x2000000 -b %{FREEMEMLO}* CAUTION * about to program FLASH at 0x00000000..0x01ffffff from 0x00800000 - continue (y/n)?y... Erase from 0x00000000-0x01000000: ....[…] ... Program from 0x00800000-0x01800000 at 0x00000000: ....[…] RedBoot>
Reset the board (using the reset switch or by power cycling the board) and boot to the RedBoot prompt.
Set the NPE MAC addresses stored in fconfig to match those on the sticker.
RedBoot>fconfig npe_eth0_esa 0x00:0x80:0x66:0xXX:0xXX:0xXXnpe_eth1_esa: Setting to 0x00:0x80:0x66:0xXX:0xXX:0xXX Update RedBoot non-volatile configuration - continue (y/n)?nRedBoot>fconfig npe_eth1_esa 0x00:0x80:0x66:0xXX:0xXX:0xXXnpe_eth1_esa: Setting to 0x00:0x80:0x66:0xXX:0xXX:0xXX Update RedBoot non-volatile configuration - continue (y/n)?y... Erase from 0x00ff0000-0x01000000: . ... Program from 0x03ff0000-0x04000000 at 0x00ff0000: . RedBoot>
Reset the board to boot automatically into Arcom Embedded Linux V4I1b.