9
0
Fork 0

ARM: Add new entry point for barebox

Memory is a precious resource, so it makes sense to make it available as
early as possible. By definition the lowlevel init code already knows where
to find memory because it's the lowlevel init code which sets up the memory.
Until all boards are converted this new entry is just a fallback to the old
entry point.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Sascha Hauer 2012-10-14 17:59:45 +02:00
parent 4458614954
commit 5b03b8148f
3 changed files with 27 additions and 0 deletions

View File

@ -183,3 +183,16 @@ void __naked board_init_lowlevel_return(void)
barebox_uncompress((void *)pg_start, pg_len);
}
/*
* Main ARM entry point in the compressed image. Call this with the memory
* region you can spare for barebox. This doesn't necessarily have to be the
* full SDRAM. The currently running binary can be inside or outside of this
* region. TEXT_BASE can be inside or outside of this region. boarddata will
* be preserved and can be accessed later with barebox_arm_boarddata().
*/
void __naked __noreturn barebox_arm_entry(uint32_t membase, uint32_t memsize,
uint32_t boarddata)
{
board_init_lowlevel_return();
}

View File

@ -63,3 +63,16 @@ void __naked board_init_lowlevel_return(void)
start_barebox();
}
/*
* Main ARM entry point in the uncompressed image. Call this with the memory
* region you can spare for barebox. This doesn't necessarily have to be the
* full SDRAM. The currently running binary can be inside or outside of this
* region. TEXT_BASE can be inside or outside of this region. boarddata will
* be preserved and can be accessed later with barebox_arm_boarddata().
*/
void __naked __noreturn barebox_arm_entry(uint32_t membase, uint32_t memsize,
uint32_t boarddata)
{
board_init_lowlevel_return();
}

View File

@ -39,5 +39,6 @@ void board_init_lowlevel_return(void);
uint32_t get_runtime_offset(void);
void setup_c(void);
void __noreturn barebox_arm_entry(uint32_t membase, uint32_t memsize, uint32_t boarddata);
#endif /* _BAREBOX_ARM_H_ */