[PATCH 5/6] ARM: add ARM_EXCEPTION_VECTOR6 options
Jean-Christophe PLAGNIOL-VILLARD
plagnioj at jcrosoft.com
Tue Jan 3 00:00:49 EST 2012
to pass the bare_init or barebox size via the vector 6
ARM_EXCEPTION_VECTOR6_BARE_INIT_SIZE bare_init size
ARM_EXCEPTION_VECTOR6_SIZE barebox size
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
---
arch/arm/Kconfig | 11 +++++++++++
arch/arm/cpu/start.c | 14 ++++++++++++--
2 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index b600179..49445fb 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -26,6 +26,17 @@ config ARM_LINUX
default y
depends on CMD_BOOTZ || CMD_BOOTU || CMD_BOOTM
+config ARM_EXCEPTION_VECTOR6
+ bool
+
+config ARM_EXCEPTION_VECTOR6_SIZE
+ bool
+ depends on ARM_EXCEPTION_VECTOR6
+
+config ARM_EXCEPTION_VECTOR6_BARE_INIT_SIZE
+ bool
+ depends on ARM_EXCEPTION_VECTOR6
+
menu "System Type "
choice
diff --git a/arch/arm/cpu/start.c b/arch/arm/cpu/start.c
index 5e09300..09e80d7 100644
--- a/arch/arm/cpu/start.c
+++ b/arch/arm/cpu/start.c
@@ -27,6 +27,16 @@
#include <asm-generic/memory_layout.h>
#include <asm/sections.h>
+#ifdef CONFIG_ARM_EXCEPTION_VECTOR6
+#ifdef CONFIG_ARM_EXCEPTION_VECTOR6_BARE_INIT_SIZE
+#define exception_vector_6 ".word _barebox_bare_init_size\n"
+#else
+#define exception_vector_6 ".word _barebox_image_size\n"
+#endif
+#else
+#define exception_vector_6 "1: bne 1b\n"
+#endif
+
void __naked __section(.text_entry) exception_vectors(void)
{
__asm__ __volatile__ (
@@ -36,7 +46,7 @@ void __naked __section(.text_entry) exception_vectors(void)
"ldr pc, =software_interrupt\n" /* software interrupt (SWI) */
"ldr pc, =prefetch_abort\n" /* prefetch abort */
"ldr pc, =data_abort\n" /* data abort */
- "1: bne 1b\n" /* (reserved) */
+ exception_vector_6 /* (reserved) */
"ldr pc, =irq\n" /* irq (interrupt) */
"ldr pc, =fiq\n" /* fiq (fast interrupt) */
#else
@@ -44,7 +54,7 @@ void __naked __section(.text_entry) exception_vectors(void)
"1: bne 1b\n" /* software interrupt (SWI) */
"1: bne 1b\n" /* prefetch abort */
"1: bne 1b\n" /* data abort */
- "1: bne 1b\n" /* (reserved) */
+ exception_vector_6 /* (reserved) */
"1: bne 1b\n" /* irq (interrupt) */
"1: bne 1b\n" /* fiq (fast interrupt) */
#endif
--
1.7.7
More information about the barebox
mailing list