On at91 we need to put the size to load is the sram at the 6th exception vector Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@xxxxxxxxxxxx> --- arch/arm/Kconfig | 1 + arch/arm/mach-at91/include/mach/barebox-arm-head.h | 33 ++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 arch/arm/mach-at91/include/mach/barebox-arm-head.h diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 8b0a28d..ce32efb 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -27,6 +27,7 @@ config ARCH_AT91 select GENERIC_GPIO select CLKDEV_LOOKUP select HAS_DEBUG_LL + select HAVE_MACH_ARM_HEAD config ARCH_EP93XX bool "Cirrus Logic EP93xx" diff --git a/arch/arm/mach-at91/include/mach/barebox-arm-head.h b/arch/arm/mach-at91/include/mach/barebox-arm-head.h new file mode 100644 index 0000000..a9c8dd4 --- /dev/null +++ b/arch/arm/mach-at91/include/mach/barebox-arm-head.h @@ -0,0 +1,33 @@ +#ifndef __MACH_ARM_HEAD_H +#define __MACH_ARM_HEAD_H + +#ifdef CONFIG_SHELL_NONE +#define AT91_EXV6 ".word _barebox_image_size\n" +#else +#define AT91_EXV6 ".word _barebox_bare_init_size\n" +#endif + +static inline void barebox_arm_head(void) +{ + __asm__ __volatile__ ( +#ifdef CONFIG_THUMB2_BAREBOX +#error Thumb2 is not supported +#else + "b reset\n" + "1: b 1b\n" + "1: b 1b\n" + "1: b 1b\n" + "1: b 1b\n" + AT91_EXV6 /* image size to load by the bootrom */ + "1: b 1b\n" + "1: b 1b\n" +#endif + ".asciz \"barebox\"\n" + ".word _text\n" /* text base. If copied there, + * barebox can skip relocation + */ + ".word _barebox_image_size\n" /* image size to copy */ + ); +} + +#endif /* __ASM_ARM_HEAD_H */ -- 1.7.10.4 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox