This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: ecos start in ram
- To: james_ch1 at sina dot com
- Subject: Re: [ECOS] ecos start in ram
- From: Bart Veer <bartv at redhat dot com>
- Date: Fri, 16 Feb 2001 14:32:23 GMT
- Cc: ecos-discuss at sources dot redhat dot com
- References: <000801c097b2$ac8760a0$c408aa0a@inc.inventec>
- Reply-To: bartv at redhat dot com
>>>>> "James" == james chen <james_ch1@sina.com> writes:
James> now I am porting eCos to my test board (based
James> ARM7TDMI), the ROM address is 0x0 and the RAM address is
James> 0xc000000, but in ecos the RAM address is 0x0, so how to
James> config memory layout to run Redboot and eCos? I also think
James> the vectors.S file should be changed, will you tell any?
IIRC on some ARM processors you normally need RAM at location 0x0,
because that is where interrupt vectors etc. are held. You also need
ROM at location 0x0 because bootstraps happen from that address. In
the absence of an MMU, the normal way to resolve this is to have a
memory remap facility: on power up there is ROM at location 0x0, so
bootstrap can proceed; early on during the bootstrap, the remap switch
is toggled and the memory map changes; the ROM moves somewhere else in
memory, and there is now RAM at location 0x0 so that the interrupt
vectors etc. can be updated.
So for a typical eCos application, the RAM might be at 0xC0000000
immediately after power-up but it will be remapped to 0x0 early on.
Hence the eCos memory map will have RAM at 0x0.
The exact details are of course hardware-specific, and will have to be
addressed by your platform port.
Bart