RedBoot supports both front
facing serial ports and the built in ethernet port for communication and downloads.
The default serial port settings are 38400,8,N,1. RedBoot runs from and supports
flash management for the system flash region.
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 is installed using the code download facility built into the
Malta board. See the Malta User manual for details, and also the Malta download
format in the Section called Malta download format.
In order to download RedBoot to the Malta board, it must be converted
to the Malta download format.
The Atlas/Malta Developer's Kit CD contains an srecconv.pl utility which requires Perl. This utility is part
of the yamon/yamon-src-02.00.tar.gz tarball
on the Dev Kit CD. The path in the expanded tarball is yamon/bin/tools. To use
srecconv to convert the S-record file:
$ cp redboot_ROM.srec redboot_ROM.rec
$ srecconv.pl -ES L -A 29 redboot_ROM
Location to store command line and environment passed to kernel
-w <time>
Wait time in seconds before starting kernel
-c "params"
Parameters passed to kernel
<addr>
Kernel entry point, defaulting to the entry point of the last image
loaded
Linux kernels on MIPS platforms expect the entry point to be called with arguments
in the registers equivalent to a C call with prototype:
void Linux(int argc, char **argv, char **envp);
RedBoot will place the appropriate data at the offset specified by the
-b parameter, or by default at address 0x80080000, and will set the
arguments accordingly when calling into the kernel.
The default entry point, if no image with explicit entry point has been loaded and
none is specified, is 0x80000750.
The data
passed to the ISR is pulled from a data table (hal_interrupt_data) which immediately follows the interrupt vector table. With
22 interrupts, the data table starts at address 0x80000258.
An application may create a normal C function with the above prototype
to be an ISR. Just poke its address into the table at the correct index and
enable the interrupt at its source. The return value of the ISR is ignored
by RedBoot.
Memory Maps RedBoot sets up the following memory map on the Malta board.
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 C B Description
----------------------- - - -----------
0x80000000 - 0x81ffffff Y Y SDRAM
0x9e000000 - 0x9e3fffff Y N System flash (cached)
0x9fc00000 - 0x9fffffff Y N System flash (mirrored)
0xa8000000 - 0xb7ffffff N N PCI Memory Space
0xb4000000 - 0xb40fffff N N Galileo System Controller
0xb8000000 - 0xb80fffff N N Southbridge / ISA
0xb8100000 - 0xbbdfffff N N PCI I/O Space
0xbe000000 - 0xbe3fffff N N System flash (noncached)
0xbf000000 - 0xbfffffff N N Board logic FPGA