diff options
author | Uwe Kleine-König <u.kleine-koenig@pengutronix.de> | 2021-07-30 09:00:01 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2021-08-09 20:35:28 +0200 |
commit | 06210f61118848528080d8102e3d1952d50e72db (patch) | |
tree | 75fb746c9011e17f87a6e7bc5e8755cc8f0e6438 /arch | |
parent | 679659452759811b040c15d3b1d989de21f18ab0 (diff) | |
download | barebox-06210f61118848528080d8102e3d1952d50e72db.tar.gz barebox-06210f61118848528080d8102e3d1952d50e72db.tar.xz |
arm/mvebu: sync barebox-arm-head.h to generic variant
En passant this adds support for PBL_BREAK. While there is no 64 bit
support available for mvebu, keeping the difference between
arch/arm/mach-mvebu/include/mach/barebox-arm-head.h and
arch/arm/include/asm/barebox-arm-head.h minimal is a good thing.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Link: https://lore.barebox.org/20210730070001.1441742-1-u.kleine-koenig@pengutronix.de
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-mvebu/include/mach/barebox-arm-head.h | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/arch/arm/mach-mvebu/include/mach/barebox-arm-head.h b/arch/arm/mach-mvebu/include/mach/barebox-arm-head.h index 3035f40ddf..723e2ab4c8 100644 --- a/arch/arm/mach-mvebu/include/mach/barebox-arm-head.h +++ b/arch/arm/mach-mvebu/include/mach/barebox-arm-head.h @@ -4,6 +4,7 @@ static inline void __barebox_arm_head(void) { __asm__ __volatile__ ( +#ifdef CONFIG_CPU_32 #ifdef CONFIG_THUMB2_BAREBOX ".arm\n" "adr r9, 1f + 1\n" @@ -24,10 +25,22 @@ static inline void __barebox_arm_head(void) "1: b 1b\n" "1: b 1b\n" #endif +#else + "b 2f\n" + "nop\n" + "nop\n" + "nop\n" + "nop\n" + "nop\n" +#endif ".asciz \"barebox\"\n" +#ifdef CONFIG_CPU_32 ".word _text\n" /* text base. If copied there, * barebox can skip relocation */ +#else + ".word 0xffffffff\n" +#endif ".word _barebox_image_size\n" /* image size to copy */ /* @@ -42,9 +55,19 @@ static inline void __barebox_arm_head(void) ".word 0x55555555\n" ".endr\n" "2:\n" +#ifdef CONFIG_PBL_BREAK +#ifdef CONFIG_CPU_V8 + "brk #17\n" +#else + "bkpt #17\n" +#endif + "nop\n" +#else + "nop\n" + "nop\n" +#endif ); } - static inline void barebox_arm_head(void) { __barebox_arm_head(); |