Add code to make sure that normal vector exception table, when it is used due to unavailability of the high vector table, was not re-mapped from 0x0 via VBAR by someone else before us. Signed-off-by: Andrey Smirnov <andrew.smirnov@xxxxxxxxx> --- Changes since v1 (http://lists.infradead.org/pipermail/barebox/2015-December/025685.html): - Check CPU architecture at runtime --- arch/arm/cpu/mmu.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/arch/arm/cpu/mmu.c b/arch/arm/cpu/mmu.c index 784221c..bc5325f 100644 --- a/arch/arm/cpu/mmu.c +++ b/arch/arm/cpu/mmu.c @@ -302,6 +302,16 @@ static void vectors_init(void) * live without being able to catch NULL pointer dereferences */ exc = arm_create_pte(0x0); + + if (cpu_architecture() >= CPU_ARCH_ARMv7) { + /* + * ARMv7 CPUs allow to remap low vectors from + * 0x0 to an arbitrary address using VBAR + * register, so let's make sure we have it + * pointing to the correct address + */ + set_vbar(0x0); + } } arm_fixup_vectors(); -- 2.5.0 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox