Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d2ca5f24 authored by Afzal Mohammed's avatar Afzal Mohammed Committed by Russell King
Browse files

ARM: 8646/1: mmu: decouple VECTORS_BASE from Kconfig



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: default avatarafzal mohammed <afzal.mohd.ma@gmail.com>
Tested-by: default avatarVladimir Murzin <vladimir.murzin@arm.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 035e7875
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -111,6 +111,8 @@

#endif /* !CONFIG_MMU */

#define VECTORS_BASE		UL(0xffff0000)

#ifdef CONFIG_XIP_KERNEL
#define KERNEL_START		_sdata
#else
+2 −1
Original line number Diff line number Diff line
@@ -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;

+3 −2
Original line number Diff line number Diff line
@@ -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 },
};

+2 −2
Original line number Diff line number Diff line
@@ -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),