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: 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>
This commit is contained in:
parent
035e787543
commit
d2ca5f2491
4 changed files with 9 additions and 5 deletions
|
@ -111,6 +111,8 @@
|
||||||
|
|
||||||
#endif /* !CONFIG_MMU */
|
#endif /* !CONFIG_MMU */
|
||||||
|
|
||||||
|
#define VECTORS_BASE UL(0xffff0000)
|
||||||
|
|
||||||
#ifdef CONFIG_XIP_KERNEL
|
#ifdef CONFIG_XIP_KERNEL
|
||||||
#define KERNEL_START _sdata
|
#define KERNEL_START _sdata
|
||||||
#else
|
#else
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
|
|
||||||
#include <asm/cacheflush.h>
|
#include <asm/cacheflush.h>
|
||||||
#include <asm/cp15.h>
|
#include <asm/cp15.h>
|
||||||
|
#include <asm/memory.h>
|
||||||
#include <asm/smp_plat.h>
|
#include <asm/smp_plat.h>
|
||||||
#include <asm/smp_scu.h>
|
#include <asm/smp_scu.h>
|
||||||
|
|
||||||
|
@ -75,7 +76,7 @@ static void __init berlin_smp_prepare_cpus(unsigned int max_cpus)
|
||||||
if (!cpu_ctrl)
|
if (!cpu_ctrl)
|
||||||
goto unmap_scu;
|
goto unmap_scu;
|
||||||
|
|
||||||
vectors_base = ioremap(CONFIG_VECTORS_BASE, SZ_32K);
|
vectors_base = ioremap(VECTORS_BASE, SZ_32K);
|
||||||
if (!vectors_base)
|
if (!vectors_base)
|
||||||
goto unmap_scu;
|
goto unmap_scu;
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
#include <linux/seq_file.h>
|
#include <linux/seq_file.h>
|
||||||
|
|
||||||
#include <asm/fixmap.h>
|
#include <asm/fixmap.h>
|
||||||
|
#include <asm/memory.h>
|
||||||
#include <asm/pgtable.h>
|
#include <asm/pgtable.h>
|
||||||
|
|
||||||
struct addr_marker {
|
struct addr_marker {
|
||||||
|
@ -31,8 +32,8 @@ static struct addr_marker address_markers[] = {
|
||||||
{ 0, "vmalloc() Area" },
|
{ 0, "vmalloc() Area" },
|
||||||
{ VMALLOC_END, "vmalloc() End" },
|
{ VMALLOC_END, "vmalloc() End" },
|
||||||
{ FIXADDR_START, "Fixmap Area" },
|
{ FIXADDR_START, "Fixmap Area" },
|
||||||
{ CONFIG_VECTORS_BASE, "Vectors" },
|
{ VECTORS_BASE, "Vectors" },
|
||||||
{ CONFIG_VECTORS_BASE + PAGE_SIZE * 2, "Vectors End" },
|
{ VECTORS_BASE + PAGE_SIZE * 2, "Vectors End" },
|
||||||
{ -1, NULL },
|
{ -1, NULL },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#include <asm/cp15.h>
|
#include <asm/cp15.h>
|
||||||
#include <asm/mach-types.h>
|
#include <asm/mach-types.h>
|
||||||
#include <asm/memblock.h>
|
#include <asm/memblock.h>
|
||||||
|
#include <asm/memory.h>
|
||||||
#include <asm/prom.h>
|
#include <asm/prom.h>
|
||||||
#include <asm/sections.h>
|
#include <asm/sections.h>
|
||||||
#include <asm/setup.h>
|
#include <asm/setup.h>
|
||||||
|
@ -518,8 +519,7 @@ void __init mem_init(void)
|
||||||
" .data : 0x%p" " - 0x%p" " (%4td kB)\n"
|
" .data : 0x%p" " - 0x%p" " (%4td kB)\n"
|
||||||
" .bss : 0x%p" " - 0x%p" " (%4td kB)\n",
|
" .bss : 0x%p" " - 0x%p" " (%4td kB)\n",
|
||||||
|
|
||||||
MLK(UL(CONFIG_VECTORS_BASE), UL(CONFIG_VECTORS_BASE) +
|
MLK(VECTORS_BASE, VECTORS_BASE + PAGE_SIZE),
|
||||||
(PAGE_SIZE)),
|
|
||||||
#ifdef CONFIG_HAVE_TCM
|
#ifdef CONFIG_HAVE_TCM
|
||||||
MLK(DTCM_OFFSET, (unsigned long) dtcm_end),
|
MLK(DTCM_OFFSET, (unsigned long) dtcm_end),
|
||||||
MLK(ITCM_OFFSET, (unsigned long) itcm_end),
|
MLK(ITCM_OFFSET, (unsigned long) itcm_end),
|
||||||
|
|
Loading…
Reference in a new issue