Nick Garnett nickg@ecoscentric.com
Mon Dec 15 19:21:00 GMT 2003

Alan Bowman <ABowman@synaptics-uk.com> writes:

> I am attempting to use a Redboot ROMRAM image on an EB55 board.  I
> have the images that are in the CVS repository, under
> images\arm\at91eb55.  I thought that the ROMRAM image should act in
> the same way as the ROM image at startup, i.e. it sits in the boot
> area of flash, and sets up the processor, etc.  However, when I look
> at the provided srec image, redboot_ROMRAM.srec, I can see that it
> intends all the data to end up in the 0x02000000 area, which is RAM.
> The Redboot_ROM.srec file has its address in the 0x01000000 area,
> which is what I would expect, as this is the boot area of flash
> prior to remap.  (I appreciate that I need to load this into RAM
> before it can be placed in this location).
> Is there an error in the ROMRAM.srec file, or have I misunderstood
> where it should end up in memory?  My ROM and RAM images work
> exactly as I would expect, but I am really struggling with ROMRAM.

A ROMRAM startup executable is designed to copy itself to RAM from ROM
on startup. It is therefore linked to execute at its RAM address and
the code that runs up to the point it does the copy and jumps to RAM
is position independent.

What you see in the srec file are therefore the RAM addresses. We
could, I suppose, use objcopy to rebase the file to its ROM
location. However, since you have to load it into a different memory
address from either in order to then program it into the flash, it
doesn't actually matter. All the addresses in the srec file do is
serve to define the relative positioning of the records as they are

Nick Garnett                    eCos Kernel Architect
http://www.ecoscentric.com      The eCos and RedBoot experts

Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss

More information about the Ecos-discuss mailing list