RedBoot™ User's Guide: Document Version 1.9, February 2003 | ||
---|---|---|
Prev | Chapter 5. Installation and Testing | Next |
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:
RedBoot being automatically executed by the on-board ARM Boot Monitor, running from RAM.
RedBoot running from RAM with RedBoot in the flash boot sector.
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 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 > |
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. |
$ cat redboot_primary_RAM/redboot.srec >/dev/ttyS1 |
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> |
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: . |
RedBoot> load -b 0x100000 redboot_primary_ROMRAM/redboot.srec |
RedBoot> load -mode ymodem -b 0x100000 |
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: . |
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 |
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:
Location Linux kernel was loaded to
Length of kernel
Parameters passed to kernel
'initrd' ramdisk location
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..... |
RedBoot> exec -b 0x60040000 -l 0xc0000 -c "console=ttyAC0,38400" Uncompressing Linux..... |
The MMU page tables are located at 0x4000.
NOTE: The virtual memory maps in this section use a C and B column to indicate whether or not the region is cached (C) or buffered (B).
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) |
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.
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.