eCos Reference Manual
Prev | Chapter 5. Installation and Testing | Next

# ARM/ARM7 Atmel AT91 Evaluation Board (EB40)

## Overview

RedBoot supports both serial ports. The default serial port settings are 38400,8,N,1. RedBoot also supports minimal flash management on the EB40. However, since the flash device (AT29LV1024) is so small (only the upper 64K is available for general use), only the simple flash write command 'fis write' is supported.

The following RedBoot configurations are supported:

Configuration | Mode | Description | File
--- | --- | --- | ---
ROM | [ROM] | RedBoot running from the board's flash boot sector. | redboot_ROM.ecm
RAM | [RAM] | RedBoot running from RAM with RedBoot in the flash boot sector. | redboot_RAM.ecm
ROMRAM | [ROMRAM] | RedBoot running from RAM, but contained in the board's flash boot sector. | redboot_ROMRAM.ecm

## Initial Installation Method

This development board comes with ARM's debug tool, Angel, installed in flash. At this time, Angel will not be replaced. Rather, RedBoot will be placed in the alternate half of flash. Switch SW1 is used which monitor to boot. Selecting SW1 to "lower mem" will choose Angel. Select SW1 to "Upper mem" for RedBoot once it has been installed.

Set SW1 to "lower mem" and connect serial port A to a host computer. Using GDB from the host and Angel on the board, download the RAM mode image of RedBoot to the board. SW1 should then be set to "upper mem" just before starting RedBoot using the 'cont' command. Once RedBoot is started, the Angel session must be interrupted (on Linux this can be done using ^Z). Follow this by connecting to the board using minicom at 38400-8N1. At this point, RedBoot will be running on the board in RAM. Now, download the ROMRAM mode image and program it to flash.

    arm-elf-gdb redboot_RAM.elf
    (gdb) tar rdi s=/dev/ttyS0
    Angel Debug Monitor (serial) 1.04 (Advanced RISC Machines SDT 2.5) for
    AT91EB40 (2.00)
    Angel Debug Monitor rebuilt on Apr 07 2000 at 12:40:31
    Serial Rate:   9600
    Connected to ARM RDI target.
    (gdb) set $cpsr=0xd3
    (gdb) load
    Loading section .rom_vectors, size 0x40 lma 0x2020000
    Loading section .text, size 0x7fd8 lma 0x2020040
    Loading section .rodata, size 0x15a0 lma 0x2028018
    Loading section .data, size 0x2e4 lma 0x20295b8
    Start address 0x2020040 , load size 39068
    Transfer rate: 6250 bits/sec, 500 bytes/write.

At this point, set SW1 to "upper mem".

    (gdb) cont
    Continuing.

At this point, suspend the GDB session (use Ctrl-Z) and start a terminal emulator:

    RedBoot> version

    RedBoot(tm) bootstrap and debug environment [RAM]
    Non-certified release, version UNKNOWN - built 14:09:27, Jul 20 2001

    Platform: Atmel AT91/EB40 (ARM7TDMI)
    Copyright (C) 2000, 2001, Red Hat, Inc.

    RAM: 0x02000000-0x02080000, 0x020116d8-0x0207fd00 available
    FLASH: 0x01010000 - 0x01020000, 256 blocks of 0x00000100 bytes each.

    RedBoot> load -m ymodem -b %{FREEMEMLO}

Use minicom to send the file redboot_ROMRAM.srec via YModem.

    RedBoot> fi wr -f 0x01010000 -b %{FREEMEMLO} -l 0xe100

Press the "reset" pushbutton and RedBoot should come up on the board.

## Special RedBoot Commands

None.

## Memory Maps

This processor has no MMU, so the only memory map is for physical addresses.

    Physical Address Range     Description
    -----------------------    ----------------------------------
    0x00000000 - 0x00000fff    On-chip SRAM
    0x01000000 - 0x0101ffff    Flash
    0x02000000 - 0x0207ffff    RAM
    0xffe00000 - 0xffffffff    I/O registers

    The flash based RedBoot image occupies virtual addresses 0x01010000 - 0x0101dfff

## Rebuilding RedBoot

These shell variables provide the platform-specific information needed for building RedBoot according to the procedure described in Chapter 3:

    export TARGET=eb40
    export ARCH_DIR=arm
    export PLATFORM_DIR=at91

The names of configuration files are listed above with the description of the associated modes.

Prev | Home | Next
ARM/ARM7+ARM9 ARM PID Board and EPI Dev7+Dev9 | Up | ARM/ARM7 Cirrus Logic EP7xxx (EDB7211, EDB7212, EDB7312)