Altera Excalibur ARM9 (excalibur_arm9)

Overview

RedBoot supports the serial port labelled P2 on the board. The default serial port settings are 57600,8,N,1. RedBoot also supports flash management on the Excalibur. Two basic RedBoot configurations are supported:

Initial Installation Method

A Windows utility (exc_flash_programmer.exe) is used to program flash using the ByteBlasterMV JTAG unit. See board documentation for details on in situ flash programming.

For ethernet to work (under Linux) the following jumper settings should be used on a REV 2 board:

SW2-9    : OFF
U179     : 2-3
JP14-18  : OPEN
JP40-41  : 2-3
JP51-55  : 2-3

Flash management

Updating the primary RedBoot image

To update the primary RedBoot image (of startup type ROMRAM or REDBOOT), follow the procedures detailed in the Section called Update the primary RedBoot flash image in Chapter 4, but the actual numbers used with the flags in the sample commands should be:
-f 0x40000000
-b 0x40000
-l 0x20000
When updating the image, the flash should be unlocked before programming, and relocked afterwards (a board reset will also cause the flash to be relocked). This is done with the commands:
fis unlock -f 0x40000000 -l 0x20000
and
fis lock -f 0x40000000 -l 0x20000

NOTE: The ROMRAM and REDBOOT configurations differ only in the memory layout (ROMRAM mode runs RedBoot from 0x00008000 while REDBOOT mode runs RedBoot from 0x07f80000). The REDBOOT configuration allows applications to be loaded and run from address 0x00008000.

NOTE: Since the default RedBoot flash image is of startup type ROMRAM or REDBOOT, it is not necessary to use the two-step update process with the RAM startup type of RedBoot; it is possible to update the image in flash directly.

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 Excalibur 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=ttyUA0,57600"
Using base address 0x00100000 and length 0x000a3d6c
Uncompressing Linux.....
An image could also be put in flash and started directly:
RedBoot> exec -b 0x40400000 -l 0xc0000 -c "console=ttyUA0,57600"
Uncompressing Linux.....

Memory Maps

The MMU page tables are located at 0x4000.

Physical Address Range     Description
-----------------------    ----------------------------------
0x00000000 - 0x07ffffff    SDRAM
0x08000000 - 0x0805ffff    On-chip SRAM
0x40000000 - 0x40ffffff    Flash
0x7fffc000 - 0x7fffffff    I/O registers
0x80000000 - 0x8001ffff    PLD

Virtual Address Range    C B  Description
-----------------------  - -  ----------------------------------
0x00000000 - 0x07ffffff  Y Y  SDRAM
0x08000000 - 0x0805ffff  Y Y  On-chip SRAM
0x40000000 - 0x403fffff  N Y  Flash
0x7fffc000 - 0x7fffffff  N N  I/O registers
0x80000000 - 0x8001ffff  N N  PLD

The flash based RedBoot image occupies virtual addresses 0x40000000 - 0x4001ffff.

Resource Usage

The ROMRAM startup type RedBoot image occupies RAM addresses 0x00000 - 0x3ffff. RAM addresses from 0x40000 to the end of RAM are available for general use such as a temporary scratchpad for downloaded images before they are written to flash.

The REDBOOT startup type RedBoot image occupies RAM addresses 0x07f80000 - 0x07fffffff. RAM addresses from 0x8000 to about 0x07f00000 are available for general use such as a temporary scratchpad for downloaded images before they are written to flash.

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/excalibur” respectively. The value for TARGET is “excalibur_arm9”. Note that the configuration export files supplied in the hal/arm/arm9/excalibur/VERSION/misc directory in the RedBoot source tree should be used.