aboutsummaryrefslogtreecommitdiffstats
path: root/arch/xtensa/include/asm/fixmap.h
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2016-04-11 21:14:17 +0300
committerMax Filippov <jcmvbkbc@gmail.com>2016-07-24 06:33:58 +0300
commitd39af90265feb40ec198c4ca8268724645b4b50e (patch)
tree32c3aed4a66a243251ca0a9e195c4ba8e6dddeeb /arch/xtensa/include/asm/fixmap.h
parentxtensa: move kernel mapping addresses into kmem_layout.h (diff)
downloadlinux-dev-d39af90265feb40ec198c4ca8268724645b4b50e.tar.xz
linux-dev-d39af90265feb40ec198c4ca8268724645b4b50e.zip
xtensa: add alternative kernel memory layouts
MMUv3 is able to support low memory bigger than 128MB. Implement 256MB and 512MB KSEG layouts: - add Kconfig selector for KSEG layout; - add KSEG base address, size and alignment definitions to arch/xtensa/include/asm/kmem_layout.h; - use new definitions in TLB initialization; - add build time memory map consistency checks. See Documentation/xtensa/mmu.txt for the details of new memory layouts. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Diffstat (limited to 'arch/xtensa/include/asm/fixmap.h')
-rw-r--r--arch/xtensa/include/asm/fixmap.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/xtensa/include/asm/fixmap.h b/arch/xtensa/include/asm/fixmap.h
index 62b507deea9d..0d30403b6c95 100644
--- a/arch/xtensa/include/asm/fixmap.h
+++ b/arch/xtensa/include/asm/fixmap.h
@@ -59,6 +59,11 @@ enum fixed_addresses {
*/
static __always_inline unsigned long fix_to_virt(const unsigned int idx)
{
+ /* Check if this memory layout is broken because fixmap overlaps page
+ * table.
+ */
+ BUILD_BUG_ON(FIXADDR_START <
+ XCHAL_PAGE_TABLE_VADDR + XCHAL_PAGE_TABLE_SIZE);
BUILD_BUG_ON(idx >= __end_of_fixed_addresses);
return __fix_to_virt(idx);
}