This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]