xtensa: move kernel mapping addresses into kmem_layout.h
authorMax Filippov <jcmvbkbc@gmail.com>
Mon, 11 Apr 2016 18:07:30 +0000 (21:07 +0300)
committerMax Filippov <jcmvbkbc@gmail.com>
Sun, 24 Jul 2016 03:33:57 +0000 (06:33 +0300)
Create a header dedicated to memory layout definitions. Include it from
places where these definitions are needed.
Express vmalloc area address, VIRTUAL_MEMORY_ADDRESS and KERNELOFFSET
through KSEG address.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
arch/xtensa/include/asm/kmem_layout.h [new file with mode: 0644]
arch/xtensa/include/asm/page.h
arch/xtensa/include/asm/pgtable.h
arch/xtensa/include/asm/vectors.h
arch/xtensa/mm/init.c

diff --git a/arch/xtensa/include/asm/kmem_layout.h b/arch/xtensa/include/asm/kmem_layout.h
new file mode 100644 (file)
index 0000000..4eb43b6
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * Kernel virtual memory layout definitions.
+ *
+ * This file is subject to the terms and conditions of the GNU General
+ * Public License.  See the file "COPYING" in the main directory of
+ * this archive for more details.
+ *
+ * Copyright (C) 2016 Cadence Design Systems Inc.
+ */
+
+#ifndef _XTENSA_KMEM_LAYOUT_H
+#define _XTENSA_KMEM_LAYOUT_H
+
+#include <asm/types.h>
+
+/*
+ * Fixed TLB translations in the processor.
+ */
+
+#define XCHAL_KSEG_CACHED_VADDR        __XTENSA_UL_CONST(0xd0000000)
+#define XCHAL_KSEG_BYPASS_VADDR        __XTENSA_UL_CONST(0xd8000000)
+#define XCHAL_KSEG_SIZE                __XTENSA_UL_CONST(0x08000000)
+#define XCHAL_KSEG_PADDR       __XTENSA_UL_CONST(0x00000000)
+
+#endif
index ad38500..fd12a19 100644 (file)
 #include <asm/types.h>
 #include <asm/cache.h>
 #include <platform/hardware.h>
-
-/*
- * Fixed TLB translations in the processor.
- */
-
-#define XCHAL_KSEG_CACHED_VADDR __XTENSA_UL_CONST(0xd0000000)
-#define XCHAL_KSEG_BYPASS_VADDR __XTENSA_UL_CONST(0xd8000000)
-#define XCHAL_KSEG_PADDR        __XTENSA_UL_CONST(0x00000000)
-#define XCHAL_KSEG_SIZE         __XTENSA_UL_CONST(0x08000000)
+#include <asm/kmem_layout.h>
 
 /*
  * PAGE_SHIFT determines the page size
index fb02fdc..8aa0e0d 100644 (file)
@@ -13,6 +13,7 @@
 
 #include <asm-generic/pgtable-nopmd.h>
 #include <asm/page.h>
+#include <asm/kmem_layout.h>
 
 /*
  * We only use two ring levels, user and kernel space.
@@ -68,9 +69,9 @@
  * Virtual memory area. We keep a distance to other memory regions to be
  * on the safe side. We also use this area for cache aliasing.
  */
-#define VMALLOC_START          0xC0000000
-#define VMALLOC_END            0xC7FEFFFF
-#define TLBTEMP_BASE_1         0xC7FF0000
+#define VMALLOC_START          (XCHAL_KSEG_CACHED_VADDR - 0x10000000)
+#define VMALLOC_END            (VMALLOC_START + 0x07FEFFFF)
+#define TLBTEMP_BASE_1         (VMALLOC_END + 1)
 #define TLBTEMP_BASE_2         (TLBTEMP_BASE_1 + DCACHE_WAY_SIZE)
 #if 2 * DCACHE_WAY_SIZE > ICACHE_WAY_SIZE
 #define TLBTEMP_SIZE           (2 * DCACHE_WAY_SIZE)
index 288c776..4821710 100644 (file)
@@ -20,6 +20,7 @@
 
 #include <variant/core.h>
 #include <platform/hardware.h>
+#include <asm/kmem_layout.h>
 
 #if XCHAL_HAVE_PTP_MMU
 #define XCHAL_KIO_CACHED_VADDR         0xe0000000
@@ -48,10 +49,10 @@ static inline unsigned long xtensa_get_kio_paddr(void)
 #if defined(CONFIG_MMU)
 
 /* Will Become VECBASE */
-#define VIRTUAL_MEMORY_ADDRESS         0xD0000000
+#define VIRTUAL_MEMORY_ADDRESS         XCHAL_KSEG_CACHED_VADDR
 
 /* Image Virtual Start Address */
-#define KERNELOFFSET                   0xD0003000
+#define KERNELOFFSET                   (XCHAL_KSEG_CACHED_VADDR + 0x3000)
 
 #if defined(XCHAL_HAVE_PTP_MMU) && XCHAL_HAVE_PTP_MMU && XCHAL_HAVE_SPANNING_WAY
   /* MMU v3  - XCHAL_HAVE_PTP_MMU  == 1 */
index 9a9a593..4d7142b 100644 (file)
@@ -344,7 +344,7 @@ void __init mem_init(void)
                "    fixmap  : 0x%08lx - 0x%08lx  (%5lu kB)\n"
 #endif
 #ifdef CONFIG_MMU
-               "    vmalloc : 0x%08x - 0x%08x  (%5u MB)\n"
+               "    vmalloc : 0x%08lx - 0x%08lx  (%5lu MB)\n"
 #endif
                "    lowmem  : 0x%08lx - 0x%08lx  (%5lu MB)\n",
 #ifdef CONFIG_HIGHMEM