> +{ > + 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 <plagnioj@xxxxxxxxxxxx> Best Regards, J. _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox