From db544b9662622826b8482c126c116ec366fcd58c Mon Sep 17 00:00:00 2001 From: Albert ARIBAUD Date: Thu, 13 Nov 2014 17:59:15 +0100 Subject: imx: fix exception vectors relocation in imx27 Commit 3ff46cc4 fixed exception vectors setting in the general ARM case, by either copying the exception and indirect vector tables to normal (0x00000000) or high (0xFFFF0000) vectors address, or setting VBAR to U-Boot's base if applicable. i.MX27 SoC is ARM926E-JS, thus has only normal and high options, but does not provide RAM at 0xFFFF0000 and has only ROM at 0x00000000; it is therefore not possible to move or change its exception vectors. Besides, i.MX27 ROM code does provide an indirect vectors table but at a non-standard address and with the reset and reserved vectors missing. Turn the current vector relocation code into a weak routine called after relocate_code from crt0, and add strong version for i.MX27. Series-Cc: Heiko Schocher Signed-off-by: Albert ARIBAUD Reviewed-by: Stefano Babic Tested-by: Stefano Babic Tested-by: Philippe Reynes Tested-by: Philippe Reynes --- arch/arm/lib/crt0.S | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'arch/arm/lib/crt0.S') diff --git a/arch/arm/lib/crt0.S b/arch/arm/lib/crt0.S index 29cdad0..a33ad3e 100644 --- a/arch/arm/lib/crt0.S +++ b/arch/arm/lib/crt0.S @@ -104,6 +104,11 @@ clr_gd: ldr r0, [r9, #GD_RELOCADDR] /* r0 = gd->relocaddr */ b relocate_code here: +/* + * now relocate vectors + */ + + bl relocate_vectors /* Set up final (full) environment */ -- cgit v1.1