mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-08-19 21:51:25 +02:00
arm: bugfix: Move vector table before jumping relocated code
Interrupts and exceptions doesn't work in relocated code. It badly use IRQ_STACK_START_IN in rom area as interrupt stack. It is because the vecotr table is not moved to ram area. This patch moves vector table before jumping relocated code. Signed-off-by: Tetsuyuki Kobayashi <koba@kmckk.co.jp> Tested-by: Tom Rini <trini@ti.com>
This commit is contained in:
parent
0ec005fe00
commit
f8b9d1d30e
@ -277,6 +277,18 @@ jump_2_ram:
|
|||||||
mcr p15, 0, r0, c7, c10, 4 @ DSB
|
mcr p15, 0, r0, c7, c10, 4 @ DSB
|
||||||
mcr p15, 0, r0, c7, c5, 4 @ ISB
|
mcr p15, 0, r0, c7, c5, 4 @ ISB
|
||||||
#endif
|
#endif
|
||||||
|
/*
|
||||||
|
* Move vector table
|
||||||
|
*/
|
||||||
|
#if !defined(CONFIG_TEGRA2)
|
||||||
|
#if !(defined(CONFIG_OMAP44XX) && defined(CONFIG_SPL_BUILD))
|
||||||
|
/* Set vector address in CP15 VBAR register */
|
||||||
|
ldr r0, =_start
|
||||||
|
add r0, r0, r9
|
||||||
|
mcr p15, 0, r0, c12, c0, 0 @Set VBAR
|
||||||
|
#endif
|
||||||
|
#endif /* !Tegra2 */
|
||||||
|
|
||||||
ldr r0, _board_init_r_ofs
|
ldr r0, _board_init_r_ofs
|
||||||
adr r1, _start
|
adr r1, _start
|
||||||
add lr, r0, r1
|
add lr, r0, r1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user