9
0
Fork 0
barebox/arch/arm/cpu
Sascha Hauer f6b77fe9f9 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>
2016-04-01 14:00:29 +02:00
..
Kconfig ARM: pxa: add pxa3xx architecture 2015-01-19 09:02:23 +01:00
Makefile ARM: Fix exception table setup in MMU-less mode 2016-01-11 11:48:40 +01:00
cache-armv4.S ARM: Support multiple ARM architectures 2012-10-13 11:19:13 +02:00
cache-armv5.S ARM: Support multiple ARM architectures 2012-10-13 11:19:13 +02:00
cache-armv6.S ARM: Support multiple ARM architectures 2012-10-13 11:19:13 +02:00
cache-armv7.S ARM v7: added v7_mmu_cache_invalidate() 2013-05-23 09:29:47 +02:00
cache-l2x0.c ARM: l2x0: move outer cache flush on disable to user 2015-10-13 10:44:55 +02:00
cache.c ARM: l2x0: Flush cache before disabling it 2015-08-08 16:45:29 +02:00
common.c sizes.h: move include/sizes.h to include/linux/sizes.h 2015-01-08 14:00:26 +01:00
cpu.c ARM: Remove do_execute and thumb2_execute 2015-12-07 10:44:45 +01:00
cpuinfo.c commands: harmonize in-barebox documentation 2014-05-14 10:03:43 +02:00
dtb.c ARM: execute OF fixups early 2014-07-25 08:59:00 +02:00
entry.c ARM: Do not use last 64KiB of address space for barebox 2016-04-01 13:58:01 +02:00
entry.h arm/cpu: Avoid multiple definitions of barebox_arm_entry 2015-11-02 08:39:22 +01:00
exceptions.S ARM: do not ignore data aborts initially 2015-09-01 09:12:03 +02:00
interrupts.c ARM: don't let the unwinder depend on exception handling 2015-11-09 07:50:07 +01:00
lowlevel.S arm/cpu/lowlevel: fix: possible processor mode change 2016-03-04 07:58:48 +01:00
mmu-early.c sizes.h: move include/sizes.h to include/linux/sizes.h 2015-01-08 14:00:26 +01:00
mmu-early.h ARM: Factor out early mmu code 2013-02-04 15:52:41 +01:00
mmu.c ARM: Rework vector table setup 2016-04-01 14:00:29 +02:00
mmu.h arm: move outercase to cpu.c as some SoC as the ux500 always need to flush the l2x0 2013-02-11 21:08:24 +01:00
mmuinfo.c treewide: remove address of the Free Software Foundation 2014-06-11 08:35:25 +02:00
no-mmu.c ARM: Fix exception table setup in MMU-less mode 2016-01-11 11:48:40 +01:00
setupc.S ARM: fix a wrong comment about relocate_to_adr 2015-02-02 11:46:30 +01:00
start-pbl.c arm: Clarify memory layout calculation 2015-12-10 08:49:52 +01:00
start.c ARM: start: Fix wrong format specifier 2016-04-01 11:44:35 +02:00
uncompress.c ARM: pbl-multi: Fix SDRAM at end of address space 2016-04-01 11:40:32 +02:00