How to update to Arcom Embedded Linux V4I1

An Arcom Embedded Linux guide


Table of Contents

1. Introduction
2. Typographical conventions
3. Updating a PEGASUS
4. Updating an SBC-GX1
5. Updating a VIPER
6. Updating a VULCAN
7. Further information

1. Introduction

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:

  • YModem serial protocol (very slow)
  • TFTP
  • HTTP

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.

2. Typographical conventions

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.

3. Updating a PEGASUS

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.

  1. Boot off the development kit CD into RedBoot.

  2. Load and execute the variant of RedBoot that can program the boot ROM (BIOS) flash device.

    RedBoot> load redboot-pegasus-v1i1-ram-boot-rom.elf
    Using 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>
    

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

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

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

  6. Reset the board and boot into RedBoot from the CD again.

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

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

  9. Program the image to flash (unlocking it first).

    RedBoot> fis unlock -f 0 -l 0x1000000
    Unlocking...
    ... 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>
    

  10. Remove the CD and reset the board.

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

4. Updating an SBC-GX1

This covers V4I1 mod B.

Important

The General Software BIOS V1I2 for Linux is required. AEL V4I1 and later no longer work with the Award BIOS.

  1. Boot off the development kit CD into RedBoot.

  2. Update the BIOS if required.

    1. 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.elf
      Using 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>
      

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

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

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

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

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

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

  5. Program the image to flash (unlocking it first).

    RedBoot> fis unlock -f 0 -l 0x1000000
    Unlocking...
    ... 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>
    

  6. Remove the CD and reset the board.

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

5. Updating a VIPER

This covers V4I1 mod A.

RedBoot must be updated prior to updating AEL.

  1. Load and execute a RAM startup RedBoot to access the boot ROM flash.

    RedBoot> load redboot-viper-v3i6-ram-amd.elf
    Using 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>
    

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

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

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

  5. Reset the board and boot to the RedBoot prompt.

    RedBoot> reset
    

Now the main flash image can be installed.

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

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

  3. Program the image to flash (unlocking it first), for the -lite or -f16 images

    RedBoot> fis unlock -f 0 -l 0x1000000
    Unlocking...
    ... 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>
    

  4. Reset the board to boot automatically into Arcom Embedded Linux V4I1a.

6. Updating a VULCAN

This covers V4I1 mod B.

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

  2. Load and execute a RAM startup RedBoot.

    RedBoot> load redboot-vulcan-v1i5-ram.elf
    Using 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>
    

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

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

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

  6. Reset the board (using the reset switch or by power cycling the board) and boot to the RedBoot prompt.

  7. Set the NPE MAC addresses stored in fconfig to match those on the sticker.

    RedBoot> fconfig npe_eth0_esa 0x00:0x80:0x66:0xXX:0xXX:0xXX
    npe_eth1_esa: Setting to 0x00:0x80:0x66:0xXX:0xXX:0xXX
    Update RedBoot non-volatile configuration - continue (y/n)? n
    RedBoot> fconfig npe_eth1_esa 0x00:0x80:0x66:0xXX:0xXX:0xXX
    npe_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>
    

  8. Reset the board to boot automatically into Arcom Embedded Linux V4I1b.

7. Further information

  • The RedBoot section of the Arcom Embedded Linux Technical Manual.

  • The RedBoot section of the board's Quickstart manual.

  • The Arcom Embedded Linux v4i1 Errata and History.