ARM: 8646/1: mmu: decouple VECTORS_BASE from Kconfig
authorAfzal Mohammed <afzal.mohd.ma@gmail.com>
Sun, 29 Jan 2017 16:31:32 +0000 (17:31 +0100)
committerRussell King <rmk+kernel@armlinux.org.uk>
Tue, 28 Feb 2017 11:06:12 +0000 (11:06 +0000)
For MMU configurations, VECTORS_BASE is always 0xffff0000, a macro
definition will suffice.

For no-MMU, exception base address is dynamically determined in
subsequent patches. To preserve bisectability, now make the
macro applicable for no-MMU scenario too.

Thanks to 0-DAY kernel test infrastructure that found the
bisectability issue. This macro will be restricted to MMU case upon
dynamically determining exception base address for no-MMU.

Once exception address is handled dynamically for no-MMU,
VECTORS_BASE can be removed from Kconfig.

Signed-off-by: afzal mohammed <afzal.mohd.ma@gmail.com>
Tested-by: Vladimir Murzin <vladimir.murzin@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/include/asm/memory.h
arch/arm/mach-berlin/platsmp.c
arch/arm/mm/dump.c
arch/arm/mm/init.c

index c30d0d82a105e38643febd9a14c5ec04c3201c42..00bd3529854a0622105c375be41dbddda3d6d688 100644 (file)
 
 #endif /* !CONFIG_MMU */
 
+#define VECTORS_BASE           UL(0xffff0000)
+
 #ifdef CONFIG_XIP_KERNEL
 #define KERNEL_START           _sdata
 #else
index 1167b0ed92c881710cd85195425439141a170a87..7586b7aec272c0c5b3786d166d026c4f96af4afd 100644 (file)
@@ -15,6 +15,7 @@
 
 #include <asm/cacheflush.h>
 #include <asm/cp15.h>
+#include <asm/memory.h>
 #include <asm/smp_plat.h>
 #include <asm/smp_scu.h>
 
@@ -75,7 +76,7 @@ static void __init berlin_smp_prepare_cpus(unsigned int max_cpus)
        if (!cpu_ctrl)
                goto unmap_scu;
 
-       vectors_base = ioremap(CONFIG_VECTORS_BASE, SZ_32K);
+       vectors_base = ioremap(VECTORS_BASE, SZ_32K);
        if (!vectors_base)
                goto unmap_scu;
 
index 9fe8e241335c6edcb0db5077f5d4621aefb68944..21192d6eda401a76787f377795c330199f881e48 100644 (file)
@@ -18,6 +18,7 @@
 #include <linux/seq_file.h>
 
 #include <asm/fixmap.h>
+#include <asm/memory.h>
 #include <asm/pgtable.h>
 
 struct addr_marker {
@@ -31,8 +32,8 @@ static struct addr_marker address_markers[] = {
        { 0,                    "vmalloc() Area" },
        { VMALLOC_END,          "vmalloc() End" },
        { FIXADDR_START,        "Fixmap Area" },
-       { CONFIG_VECTORS_BASE,  "Vectors" },
-       { CONFIG_VECTORS_BASE + PAGE_SIZE * 2, "Vectors End" },
+       { VECTORS_BASE, "Vectors" },
+       { VECTORS_BASE + PAGE_SIZE * 2, "Vectors End" },
        { -1,                   NULL },
 };
 
index 4127f578086cd801af192303ef3b817b86cb20dd..50e5402a8ef3168db3ca3d38e23334240a315f9f 100644 (file)
@@ -27,6 +27,7 @@
 #include <asm/cp15.h>
 #include <asm/mach-types.h>
 #include <asm/memblock.h>
+#include <asm/memory.h>
 #include <asm/prom.h>
 #include <asm/sections.h>
 #include <asm/setup.h>
@@ -518,8 +519,7 @@ void __init mem_init(void)
                        "      .data : 0x%p" " - 0x%p" "   (%4td kB)\n"
                        "       .bss : 0x%p" " - 0x%p" "   (%4td kB)\n",
 
-                       MLK(UL(CONFIG_VECTORS_BASE), UL(CONFIG_VECTORS_BASE) +
-                               (PAGE_SIZE)),
+                       MLK(VECTORS_BASE, VECTORS_BASE + PAGE_SIZE),
 #ifdef CONFIG_HAVE_TCM
                        MLK(DTCM_OFFSET, (unsigned long) dtcm_end),
                        MLK(ITCM_OFFSET, (unsigned long) itcm_end),