diff options
Diffstat (limited to 'arch/arm/include/asm')
-rw-r--r-- | arch/arm/include/asm/barebox-arm-head.h | 24 | ||||
-rw-r--r-- | arch/arm/include/asm/barebox-arm.h | 2 |
2 files changed, 26 insertions, 0 deletions
diff --git a/arch/arm/include/asm/barebox-arm-head.h b/arch/arm/include/asm/barebox-arm-head.h new file mode 100644 index 0000000000..fdbee8cdda --- /dev/null +++ b/arch/arm/include/asm/barebox-arm-head.h @@ -0,0 +1,24 @@ +#ifndef __ASM_ARM_HEAD_H +#define __ASM_ARM_HEAD_H + +static inline void barebox_arm_head(void) +{ + __asm__ __volatile__ ( + "b reset\n" + "1: b 1b\n" + "1: b 1b\n" + "1: b 1b\n" + "1: b 1b\n" + "1: b 1b\n" + "1: b 1b\n" + "1: b 1b\n" + ".word 0x65726162\n" /* 'bare' */ + ".word 0x00786f62\n" /* 'box' */ + ".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 */ diff --git a/arch/arm/include/asm/barebox-arm.h b/arch/arm/include/asm/barebox-arm.h index 7bb1af1606..333978241c 100644 --- a/arch/arm/include/asm/barebox-arm.h +++ b/arch/arm/include/asm/barebox-arm.h @@ -36,6 +36,8 @@ int cleanup_before_linux(void); int board_init(void); int dram_init (void); +extern char __exceptions_start[], __exceptions_stop[]; + void board_init_lowlevel(void); void board_init_lowlevel_return(void); void arch_init_lowlevel(void); |