From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bart Veer To: james_ch1@sina.com Cc: ecos-discuss@sources.redhat.com Subject: Re: [ECOS] ecos start in ram Date: Fri, 16 Feb 2001 06:32:00 -0000 Message-id: <200102161432.f1GEWNJ04541@sheesh.cambridge.redhat.com> References: <000801c097b2$ac8760a0$c408aa0a@inc.inventec> X-SW-Source: 2001-02/msg00283.html >>>>> "James" == james chen 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