This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: eCos PID ROM/RAM
Dave Airlie wrote:
>
> I created a ROMRAM config for my PID which copies my ROM image down to RAM
> and jumps to it ... it does the copy in PLATFORM_SETUP1 Macro, after
> enabling the RAM, I've also used the PID RAM linker files for the ROMRAM
> setup and added defined(ROMRAM) where I thought was necessary, however
> I've hit a problem with the booting of the ROM, because I've used RAM
> linked scripts (which is correct because it is running out of RAM), the
> reset_vector is incorrect it is at 0x8044, so I am hexediting the produced
> image to make the reset_vector 0x04000044, where the ROM is,
>
> How to other platforms handle this problem? or do they do some MMU pokery
> to get around it?
Include the memory layout .h file (CYGHWR_MEMORY_LAYOUT_H), like the SH HAL
does, and then in vectors.S, change:
#ifdef CYGHWR_HAL_ARM_HAS_MMU
#define UNMAPPED(x) ((x)-__exception_handlers)
#else
#define UNMAPPED(x) (x)
#endif
to also provide for ifdef CYG_HAL_STARTUP_ROMRAM and doing, e.g.
#define UNMAPPED(x) (x-CYGMEM_REGION_ram+CYGMEM_REGION_rom)
> also I have a ldr pc,0x8074 in my code to jump to RAM,
> this is something I don't like anyone got a better way for me to jump to
> the RAM image once it is copied?
b __foo
__foo:
Since __foo will be the address in RAM.
Jifl
--
Red Hat, Rustat House, Clifton Road, Cambridge, UK. Tel: +44 (1223) 271062
Maybe this world is another planet's Hell -Aldous Huxley || Opinions==mine