diff options
author | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2014-11-13 17:59:15 +0100 |
---|---|---|
committer | Stefano Babic <sbabic@denx.de> | 2014-11-20 10:13:54 +0100 |
commit | db544b9662622826b8482c126c116ec366fcd58c (patch) | |
tree | 6dc8c5fee2ea89621e4e9d872b2298b8392b88dd /arch/arm/lib/crt0.S | |
parent | 28970ef66da76aefdb21cca74f22edd771511284 (diff) | |
download | u-boot-imx-db544b9662622826b8482c126c116ec366fcd58c.zip u-boot-imx-db544b9662622826b8482c126c116ec366fcd58c.tar.gz u-boot-imx-db544b9662622826b8482c126c116ec366fcd58c.tar.bz2 |
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 <hs@denx.de>
Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
Reviewed-by: Stefano Babic <sbabic@denx.de>
Tested-by: Stefano Babic <sbabic@denx.de>
Tested-by: Philippe Reynes <tremyfr@gmail.com>
Tested-by: Philippe Reynes <tremyfr@yahoo.fr>
Diffstat (limited to 'arch/arm/lib/crt0.S')
-rw-r--r-- | arch/arm/lib/crt0.S | 5 |
1 files changed, 5 insertions, 0 deletions
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 */ |