[PATCH v3 0/3] ARM: !MMU: v7-A support, dynamic vectors base handling

From: afzal mohammed
Date: Tue Jan 31 2017 - 08:05:55 EST


ARM core changes to support !MMU Kernel on v7-A MMU processors.

Based on the feedback from Russell, it was decided to handle vector
base dynamically in C for no-MMU & work towards the the goal of
removing VECTORS_BASE from Kconfig.

Exception base address is dynamically found out in C & configured.

This series also does the preparation for CONFIG_VECTORS_BASE removal.
Once vector region setup, used by Cortex-R, is made devoid of
VECTORS_BASE, it can be removed from Kconfig. [2] already decouples it
from Kconfig for MMU.

Vladimir's Tested-by on v2 has been removed from [PATCH 2/3] as it has
been changed. And as it doesn't affect functionality, Tested-by has been
retained on the other two patches, Vladimir, let me know if not okay.

This series has been verified over current mainline plus [1,2] on
1. Vybrid Cosmic+
a. Cortex-M4 - !MMU Kernel
b. Cortex-A5 - MMU Kernel.

This series also has been verified over Vladimir's series [3] along
with [1,2] on
1. Vybrid Cosmic+
a. Cortex-M4 !MMU Kernel
b. Cortex-A5 MMU Kernel
c. Cortex-A5 !MMU Kernel
2. AM437x IDK
a. Cortex-A9 MMU Kernel
b. Cortex-A9 !MMU Kernel


=> Removed [PATCH 1/4] of v2 as it is in -next
=> Simplify by defining VECTORS_BASE to variable holding dynamically
calculated exception base address

=> Fix bisectability issue on !MMU builds
=> UL suffix on VECTORS_BASE definition
=> Use existing helpers to detect security extensions
=> Rewrite a CPP step to C for readability

[1] "[PATCH 1/2] ARM: nommu: allow enabling REMAP_VECTORS_TO_RAM"
(in -next)

[2] "[PATCH v2 1/4] ARM: mmu: decouple VECTORS_BASE from Kconfig"
(in -next)

[3] "[RFC v2 PATCH 00/23] Allow NOMMU for MULTIPLATFORM",
(git://linux-arm.org/linux-vm.git nommu-rfc-v2)

afzal mohammed (3):
ARM: nommu: dynamic exception base address setting
ARM: nommu: display vectors base
ARM: nommu: remove Hivecs configuration is asm

arch/arm/include/asm/memory.h | 9 ++++++--
arch/arm/kernel/head-nommu.S | 5 -----
arch/arm/mm/nommu.c | 52 +++++++++++++++++++++++++++++++++++++++++--
3 files changed, 57 insertions(+), 9 deletions(-)