RedBoot™ User's Guide: Document Version 1.9, February 2003 | ||
---|---|---|
Prev | Chapter 5. Installation and Testing | Next |
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 'fconfig' is supported, along with the simple flash write command, 'fis write'. Two basic RedBoot configurations are supported:
RedBoot running from RAM, but contained in the board's flash boot sector (ROMRAM mode).
RedBoot running from RAM with RedBoot in the flash boot sector.
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 based version of RedBoot to the board. Once this 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 version and program it to flash. Be sure and first set SW1 to "upper mem".
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 $ps=0xd3 (gdb) lo 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. (gdb) c Continuing. |
RedBoot> ve RedBoot(tm) bootstrap and debug environment [RAM] Red Hat certified release, version R1.xx - 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 0x02040000 |
RedBoot> fi wr -f 0x01010000 -b 0x02040000 -l 0xe000 |
Since the primary RedBoot runs from RAM, it can be used to update itself directly. Simply follow the steps above, starting with a connection to RedBoot running on the board.
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 |
The RAM based RedBoot image occupies RAM addresses 0x02020000 - 0x0203ffff. RAM addresses from 0x02040000 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 instructions in Chapter 3 should be followed. The values for PLATFORM_DIR on this platform is “at91”. The value for TARGET is “eb40”. Note that the configuration export files supplied in the hal/arm/at91/VERSION/misc directory in the RedBoot source tree should be used. The ROMRAM configuration should be used to build the RedBoot image to be programmed into flash. The RAM configuration is used for the initial download of RedBoot.