ARM: Rework vector table setup
The current vector table setup has some shortcomings. First of all
currently the case when the high vectors are inside SDRAM (that is,
SDRAM reaches the end of the address space) is not supported. In this
case we create a secondary page table for the section containing the
vectors which gets overwritten by the general SDRAM secondary page
table entries creation afterwards. On ARMv7 and later the exception
table setup can be improved: Here the vector table address is configurable
in the VBAR register. We can use this register to skip remapping the
vector table.

With this patch we first try to use the VBAR register before doing
something else. Also, when we have to use the high vectors we first
try a request_sdram_region to test if the vector table memory is already
mapped. While at it sprinkle some comments into the code.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
1 parent 75c96bd commit f6b77fe9f9439564d312e75fe713f61b0467c8f8
@Sascha Hauer Sascha Hauer authored on 1 Apr 2016
Showing 2 changed files
View
arch/arm/cpu/mmu.c
View
arch/arm/lib/barebox.lds.S