Agilent AAED2000 ARM9 (aaed)

Overview

RedBoot supports the serial and ethernet ports on the board. The default serial port settings are 38400,8,N,1. RedBoot also supports flash management on the AAED2000. Two basic RedBoot configurations are supported:

Initial Installation Method

It is possible to install RedBoot in one of two ways. Either as the primary bootmonitor on the board (installed to blocks 0-1 of the flash) or as the secondary bootmonitor on the board (installed to blocks 1-2 of the flash).

Presently, only the former method is supported.

RedBoot as Primary Bootmonitor

RedBoot is installed in flash using the on-board ARM Boot Monitor.

Boot the board while pressing SPACE. This should bring up the Boot Monitor:
ARM bootPROM [Version 1.3] Rebuilt on Jul 16 2001 at 16:21:36                   
Running on a P920 board Evaluation Board                                        
Board Revision V1.0, ARM920T processor Processor                                
Memory Size is 32MBytes, Flash Size is 32MBytes                                 
Copyright (c) ARM Limited 1999 - 2001. All rights reserved.                     
Board designed by ARM Limited                                                   
Hardware support provided at http://www.arm.com/                                
For help on the available commands type ? or h                                  
boot Monitor >                                                                  
Download the RAM startup version of RedBoot configured as a primary bootmonitor using the ARM bootmonitor's SREC-download command:
boot Monitor > m                                                                
Load Motorola S-Record image into memory and execute it                         
The S-Record loader only accepts input on the serial port.                      
Record addresses must be between 0x00008000 and 0x01E0F510.                     
Type Ctrl/C to exit loader.                                                     
Use the terminal emulator's ASCII upload command, or (on Linux) simply cat the file to the serial port:
$ cat redboot_primary_RAM/redboot.srec >/dev/ttyS1
You should see RedBoot start up:
FLASH configuration checksum error or invalid key
Ethernet eth0: MAC address 00:30:d3:03:04:99                                    
IP: 192.168.42.111, Default server: 192.168.42.3                                
                                                                                
RedBoot(tm) bootstrap and debug environment [RAM]                               
Non-certified release, version UNKNOWN - built 13:15:40, Nov  9 2001            
                                                                                
Platform: AAED2000 system (ARM9) [Primary]                                      
Copyright (C) 2000, 2001, Red Hat, Inc.                                         
                                                                                
RAM: 0x00000000-0x01f80000, 0x0006f208-0x01f51000 available                     
FLASH: 0x60000000 - 0x62000000, 256 blocks of 0x00020000 bytes each.            
RedBoot>
As can be seen from the output above, the network has been configured to give the board an IP address and information about the default server. If things are not set up on your network, you can still continue, but use the Y-modem download method when loading the RedBoot ROMRAM image. Now initialize RedBoot's FIS:
RedBoot> fi init                                                                
About to initialize [format] FLASH image system - are you sure (y/n)? y
*** Initialize FLASH Image System                                               
    Warning: device contents not erased, some blocks may not be usable          
... Erase from 0x61fe0000-0x62000000: .                                         
... Program from 0x01f5f000-0x01f5f300 at 0x61fe0000: .                         
Download the ROMRAM version of RedBoot via ethernet:
RedBoot> load -b 0x100000 redboot_primary_ROMRAM/redboot.srec
or using serial Y-modem protocol:
RedBoot> load -mode ymodem -b 0x100000
(Use the terminal emulator's Y-modem upload command to send the file redboot_primary_ROMRAM/redboot.srec.) When the image has been downloaded, program it into flash:
Address offset = 0x00ff8000                                                     
Entry point: 0x00008040, address range: 0x00008000-0x0002da80                   
RedBoot> fi cr RedBoot -b 0x100000
An image named 'RedBoot' exists - are you sure (y/n)? y
* CAUTION * about to program 'RedBoot'                                          
            at 0x60000000..0x6003ffff from 0x00100000 - are you sure (y/n)? y
... Erase from 0x60000000-0x60040000: ..                                        
... Program from 0x00100000-0x00140000 at 0x60000000: ..                        
... Erase from 0x61fe0000-0x62000000: .                                         
... Program from 0x01f5f000-0x01f7f000 at 0x61fe0000: .                         
Now reset the board. You should see the RedBoot banner.

Flash management

Updating the RedBoot image

Since the RedBoot image is a ROMRAM-startup type, it is not necessary to load and run the RAM startup RedBoot image to update the image in flash. Doing so causes no harm though - but ignoring the step saves some time. For the same reason, there has not been reserved space in the flash for a "RedBoot[backup]" image.

To update the primary RedBoot image, follow the procedures detailed in the Section called Update the primary RedBoot flash image in Chapter 4, but let RedBoot find the correct flash address (the -f option) since this is different between the bootmonitor configurations. If specifying it, be sure to get it right - the actual numbers used with the flags in the sample commands should for a RedBoot image configured to be the primary bootmonitor be:
-f 0x60000000
-b 0x100000
-l 0x40000

Special RedBoot Commands

The exec command which allows the loading and execution of Linux kernels, is supported for this board (see the Section called Executing Programs from RedBoot in Chapter 2). The exec parameters used for the AAED2000 are:

-b <addr>

Location Linux kernel was loaded to

-l <len>

Length of kernel

-c "params"

Parameters passed to kernel

-r <addr>

'initrd' ramdisk location

-s <len>

Length of initrd ramdisk

The parameters for kernel image base and size are automatically set after a load operation. So one way of starting the kernel would be:
RedBoot> load -r -b 0x100000 zImage
Raw file loaded 0x00100000-0x001a3d6c
RedBoot> exec -c "console=ttyAC0,38400"
Using base address 0x00100000 and length 0x000a3d6c
Uncompressing Linux.....
An image could also be put in flash and started directly:
RedBoot> exec -b 0x60040000 -l 0xc0000 -c "console=ttyAC0,38400"
Uncompressing Linux.....

Memory Maps

The MMU page tables are located at 0x4000.

Physical Address Range     Description
-----------------------    ----------------------------------
0x00000000 - 0x01ffffff    Flash
0x10000000 - 0x100fffff    Ethernet
0x30000000 - 0x300fffff    Board registers
0x40000000 - 0x4fffffff    PCMCIA Slot (0)
0x50000000 - 0x5fffffff    Compact Flash Slot (1)
0x80000000 - 0x800037ff    I/O registers
0xb0060000 - 0xb00fffff    On-chip SRAM
0xf0000000 - 0xfd3fffff    SDRAM

Virtual Address Range    C B  Description
-----------------------  - -  ----------------------------------
0x00000000 - 0x01f7ffff  Y Y  SDRAM
0x01f80000 - 0x01ffffff  Y Y  SDRAM (used for LCD frame buffer)
0x10000000 - 0x100fffff  N N  Ethernet
0x30000000 - 0x300fffff  N N  Board registers
0x40000000 - 0x4fffffff  N N  PCMCIA Slot (0)
0x50000000 - 0x5fffffff  N N  Compact Flash Slot (1)
0x60000000 - 0x61ffffff  N N  Flash
0x80000000 - 0x800037ff  N N  I/O registers
0xf0000000 - 0xffffffff  N N  SDRAM (uncached)

Resource Usage

The RAM based RedBoot image occupies RAM addresses 0x40000 - 0x7ffff. The flash based RedBoot image occupies RAM addresses 0x00000000 - 0x0003ffff. RAM addresses from 0x80000 to the end of RAM are available for general use such as a temporary scratchpad for downloaded images before they are written to flash. If configured to use the LCD screen, additional DRAM from 0x01f80000 - 0x01ffffff is used for the LCD frame buffer.

Rebuilding RedBoot

The instructions in Chapter 3 should be followed. The values for ARCH_DIR and PLATFORM_DIR on this platform are “arm” and “arm9/aaed2000” respectively. The value for TARGET is “aaed”. Note that the configuration export files supplied in the hal/arm/arm9/aaed2000/VERSION/misc directory in the RedBoot source tree should be used.