RedBoot can normally be configured to run in a number of startup
modes (or just "modes" for short), determining its location of
residence and execution:
ROM mode
In this mode, RedBoot both resides and executes from
ROM memory (flash or EPROM). This mode is used when there are limited
RAM resources. The flash commands cannot update the region of flash
where the RedBoot image resides. In order to update the RedBoot image
in flash, it is necessary to run a RAM mode instance of
RedBoot.
ROMRAM mode
In this mode, RedBoot resides in ROM memory (flash or
EPROM), but is copied to RAM memory before it starts executing. The
RAM footprint is larger than for ROM mode, but there are two
advantages to make up for this: it normally runs faster (relevant
only on slower boards) and it is able to update the flash region
where the image resides.
RAM mode
In this mode, RedBoot both resides and executes from
RAM memory. This is used for updating a primary ROM
mode image in situ and sometimes as part of the RedBoot installation
on the board when there's already an existing (non-RedBoot) boot
monitor available.
You can only use ROM and ROMRAM mode images for booting a
board - a RAM mode image cannot run unless loaded by another ROM
monitor. There is no need for this startup mode if a RedBoot ROMRAM
mode image is the primary boot monitor. When this startup mode is
programmed into flash (as a convenience as it's fast to load from
flash) it will generally be named as "RedBoot[RAM]" in the FIS
directory.
The startup mode is controlled by the option CYG_HAL_STARTUP
which resides in the platform HAL. Some platforms provide only some of
the RAM, ROM, and ROMRAM modes, others provide additional
modes.
To see mode of a currently executing RedBoot, issue the
version command, which prints the RedBoot banner,
including the startup mode (here ROM):
RedBoot>version
RedBoot(tm) bootstrap and debug environment [ROM]
Non-certified release, version UNKNOWN - built 13:31:57, May 17 2002