Commit f1883aa7 authored by Max Filippov's avatar Max Filippov

xtensa: move kernel mapping addresses into kmem_layout.h

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: default avatarMax Filippov <jcmvbkbc@gmail.com>
parent 12c8007d
/*
* 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
...@@ -15,15 +15,7 @@ ...@@ -15,15 +15,7 @@
#include <asm/types.h> #include <asm/types.h>
#include <asm/cache.h> #include <asm/cache.h>
#include <platform/hardware.h> #include <platform/hardware.h>
#include <asm/kmem_layout.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)
/* /*
* PAGE_SHIFT determines the page size * PAGE_SHIFT determines the page size
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include <asm-generic/pgtable-nopmd.h> #include <asm-generic/pgtable-nopmd.h>
#include <asm/page.h> #include <asm/page.h>
#include <asm/kmem_layout.h>
/* /*
* We only use two ring levels, user and kernel space. * We only use two ring levels, user and kernel space.
...@@ -68,9 +69,9 @@ ...@@ -68,9 +69,9 @@
* Virtual memory area. We keep a distance to other memory regions to be * 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. * on the safe side. We also use this area for cache aliasing.
*/ */
#define VMALLOC_START 0xC0000000 #define VMALLOC_START (XCHAL_KSEG_CACHED_VADDR - 0x10000000)
#define VMALLOC_END 0xC7FEFFFF #define VMALLOC_END (VMALLOC_START + 0x07FEFFFF)
#define TLBTEMP_BASE_1 0xC7FF0000 #define TLBTEMP_BASE_1 (VMALLOC_END + 1)
#define TLBTEMP_BASE_2 (TLBTEMP_BASE_1 + DCACHE_WAY_SIZE) #define TLBTEMP_BASE_2 (TLBTEMP_BASE_1 + DCACHE_WAY_SIZE)
#if 2 * DCACHE_WAY_SIZE > ICACHE_WAY_SIZE #if 2 * DCACHE_WAY_SIZE > ICACHE_WAY_SIZE
#define TLBTEMP_SIZE (2 * DCACHE_WAY_SIZE) #define TLBTEMP_SIZE (2 * DCACHE_WAY_SIZE)
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <variant/core.h> #include <variant/core.h>
#include <platform/hardware.h> #include <platform/hardware.h>
#include <asm/kmem_layout.h>
#if XCHAL_HAVE_PTP_MMU #if XCHAL_HAVE_PTP_MMU
#define XCHAL_KIO_CACHED_VADDR 0xe0000000 #define XCHAL_KIO_CACHED_VADDR 0xe0000000
...@@ -48,10 +49,10 @@ static inline unsigned long xtensa_get_kio_paddr(void) ...@@ -48,10 +49,10 @@ static inline unsigned long xtensa_get_kio_paddr(void)
#if defined(CONFIG_MMU) #if defined(CONFIG_MMU)
/* Will Become VECBASE */ /* Will Become VECBASE */
#define VIRTUAL_MEMORY_ADDRESS 0xD0000000 #define VIRTUAL_MEMORY_ADDRESS XCHAL_KSEG_CACHED_VADDR
/* Image Virtual Start Address */ /* 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 #if defined(XCHAL_HAVE_PTP_MMU) && XCHAL_HAVE_PTP_MMU && XCHAL_HAVE_SPANNING_WAY
/* MMU v3 - XCHAL_HAVE_PTP_MMU == 1 */ /* MMU v3 - XCHAL_HAVE_PTP_MMU == 1 */
......
...@@ -344,7 +344,7 @@ void __init mem_init(void) ...@@ -344,7 +344,7 @@ void __init mem_init(void)
" fixmap : 0x%08lx - 0x%08lx (%5lu kB)\n" " fixmap : 0x%08lx - 0x%08lx (%5lu kB)\n"
#endif #endif
#ifdef CONFIG_MMU #ifdef CONFIG_MMU
" vmalloc : 0x%08x - 0x%08x (%5u MB)\n" " vmalloc : 0x%08lx - 0x%08lx (%5lu MB)\n"
#endif #endif
" lowmem : 0x%08lx - 0x%08lx (%5lu MB)\n", " lowmem : 0x%08lx - 0x%08lx (%5lu MB)\n",
#ifdef CONFIG_HIGHMEM #ifdef CONFIG_HIGHMEM
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment