Re: [PATCH 9/9] Add compressed image support
From: Jean-Christophe PLAGNIOL-VILLARD <hidden>
Date: 2012-07-20 15:23:45
quoted hunk ↗ jump to hunk
+{ + u32 r; + + /* Setup the stack */ + r = STACK_BASE + STACK_SIZE - 16; + __asm__ __volatile__("mov sp, %0" : : "r"(r)); + /* clear bss */ + memset(__bss_start, 0, __bss_stop - __bss_start); + + start_barebox(); +} +#else void __naked __section(.text_entry) start(void) { barebox_arm_head(); } +#endif void __naked __section(.text_exceptions) exception_vectors(void) { __asm__ __volatile__ ( ".arm\n" - "b reset\n" /* reset */ + "1: b 1b\n" /* reset */ #ifdef CONFIG_ARM_EXCEPTIONS "ldr pc, =undefined_instruction\n" /* undefined instruction */ "ldr pc, =software_interrupt\n" /* software interrupt (SWI) */@@ -98,6 +118,34 @@ void __naked __bare_init reset(void) board_init_lowlevel_return(); } +extern void *input_data; +extern void *input_data_end; + +#define STATIC static +#include "../../../lib/decompress_unlzo.c" + +void barebox_uncompress(void *compressed_start, unsigned int len) +{ + void (*barebox)(void);
need to check here if we are at TEXT_BASE (I mean if the code run where we are supposed to uncompress otherwise on at91 it will not work as the bootstrap put use at TEXT_BASE so we have need to link at an other address but the decompressor need work anyway by copying itself with the data before of after the TEXT_BASE and we should take the uncompress size about 4 times the compressed one. There is nearly no change to compress more than 75% otherwise Tested by: Jean-Christophe PLAGNIOL-VILLARD [off-list ref] Best Regards, J. _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox