1/* 2 * Kernel virtual memory layout definitions. 3 * 4 * This file is subject to the terms and conditions of the GNU General 5 * Public License. See the file "COPYING" in the main directory of 6 * this archive for more details. 7 * 8 * Copyright (C) 2016 Cadence Design Systems Inc. 9 */ 10 11#ifndef _XTENSA_KMEM_LAYOUT_H 12#define _XTENSA_KMEM_LAYOUT_H 13 14#include <asm/types.h> 15 16#ifdef CONFIG_MMU 17 18/* 19 * Fixed TLB translations in the processor. 20 */ 21 22#define XCHAL_PAGE_TABLE_VADDR __XTENSA_UL_CONST(0x80000000) 23#define XCHAL_PAGE_TABLE_SIZE __XTENSA_UL_CONST(0x00400000) 24 25#if defined(CONFIG_XTENSA_KSEG_MMU_V2) 26 27#define XCHAL_KSEG_CACHED_VADDR __XTENSA_UL_CONST(0xd0000000) 28#define XCHAL_KSEG_BYPASS_VADDR __XTENSA_UL_CONST(0xd8000000) 29#define XCHAL_KSEG_SIZE __XTENSA_UL_CONST(0x08000000) 30#define XCHAL_KSEG_ALIGNMENT __XTENSA_UL_CONST(0x08000000) 31#define XCHAL_KSEG_TLB_WAY 5 32#define XCHAL_KIO_TLB_WAY 6 33 34#elif defined(CONFIG_XTENSA_KSEG_256M) 35 36#define XCHAL_KSEG_CACHED_VADDR __XTENSA_UL_CONST(0xb0000000) 37#define XCHAL_KSEG_BYPASS_VADDR __XTENSA_UL_CONST(0xc0000000) 38#define XCHAL_KSEG_SIZE __XTENSA_UL_CONST(0x10000000) 39#define XCHAL_KSEG_ALIGNMENT __XTENSA_UL_CONST(0x10000000) 40#define XCHAL_KSEG_TLB_WAY 6 41#define XCHAL_KIO_TLB_WAY 6 42 43#elif defined(CONFIG_XTENSA_KSEG_512M) 44 45#define XCHAL_KSEG_CACHED_VADDR __XTENSA_UL_CONST(0xa0000000) 46#define XCHAL_KSEG_BYPASS_VADDR __XTENSA_UL_CONST(0xc0000000) 47#define XCHAL_KSEG_SIZE __XTENSA_UL_CONST(0x20000000) 48#define XCHAL_KSEG_ALIGNMENT __XTENSA_UL_CONST(0x10000000) 49#define XCHAL_KSEG_TLB_WAY 6 50#define XCHAL_KIO_TLB_WAY 6 51 52#else 53#error Unsupported KSEG configuration 54#endif 55 56#ifdef CONFIG_KSEG_PADDR 57#define XCHAL_KSEG_PADDR __XTENSA_UL_CONST(CONFIG_KSEG_PADDR) 58#else 59#define XCHAL_KSEG_PADDR __XTENSA_UL_CONST(0x00000000) 60#endif 61 62#if XCHAL_KSEG_PADDR & (XCHAL_KSEG_ALIGNMENT - 1) 63#error XCHAL_KSEG_PADDR is not properly aligned to XCHAL_KSEG_ALIGNMENT 64#endif 65 66#endif 67 68#ifndef CONFIG_KASAN 69#define KERNEL_STACK_SHIFT 13 70#else 71#define KERNEL_STACK_SHIFT 15 72#endif 73#define KERNEL_STACK_SIZE (1 << KERNEL_STACK_SHIFT) 74 75#endif 76