Commit d3e01796 authored by Christophe Leroy's avatar Christophe Leroy Committed by Michael Ellerman

powerpc: Untangle fixmap.h and pgtable.h and mmu.h

fixmap.h need pgtable.h for [un]map_kernel_page()

pgtable.h need fixmap.h for FIXADDR_TOP.

Untangle the two files by moving FIXADDR_TOP into pgtable.h

Also move VIRT_IMMR_BASE to fixmap.h to avoid fixmap.h in mmu.h
Signed-off-by: default avatarChristophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/5eba12392a018be28ad0a02ed844767b132589e7.1695659959.git.christophe.leroy@csgroup.eu
parent da9554e0
...@@ -170,7 +170,14 @@ void unmap_kernel_page(unsigned long va); ...@@ -170,7 +170,14 @@ void unmap_kernel_page(unsigned long va);
* value (for now) on others, from where we can start layout kernel * value (for now) on others, from where we can start layout kernel
* virtual space that goes below PKMAP and FIXMAP * virtual space that goes below PKMAP and FIXMAP
*/ */
#include <asm/fixmap.h>
#define FIXADDR_SIZE 0
#ifdef CONFIG_KASAN
#include <asm/kasan.h>
#define FIXADDR_TOP (KASAN_SHADOW_START - PAGE_SIZE)
#else
#define FIXADDR_TOP ((unsigned long)(-PAGE_SIZE))
#endif
/* /*
* ioremap_bot starts at that address. Early ioremaps move down from there, * ioremap_bot starts at that address. Early ioremaps move down from there,
......
...@@ -316,6 +316,7 @@ extern unsigned long pci_io_base; ...@@ -316,6 +316,7 @@ extern unsigned long pci_io_base;
#define IOREMAP_START (ioremap_bot) #define IOREMAP_START (ioremap_bot)
#define IOREMAP_END (KERN_IO_END - FIXADDR_SIZE) #define IOREMAP_END (KERN_IO_END - FIXADDR_SIZE)
#define FIXADDR_SIZE SZ_32M #define FIXADDR_SIZE SZ_32M
#define FIXADDR_TOP (IOREMAP_END + FIXADDR_SIZE)
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
......
...@@ -23,18 +23,6 @@ ...@@ -23,18 +23,6 @@
#include <asm/kmap_size.h> #include <asm/kmap_size.h>
#endif #endif
#ifdef CONFIG_PPC64
#define FIXADDR_TOP (IOREMAP_END + FIXADDR_SIZE)
#else
#define FIXADDR_SIZE 0
#ifdef CONFIG_KASAN
#include <asm/kasan.h>
#define FIXADDR_TOP (KASAN_SHADOW_START - PAGE_SIZE)
#else
#define FIXADDR_TOP ((unsigned long)(-PAGE_SIZE))
#endif
#endif
/* /*
* Here we define all the compile-time 'special' virtual * Here we define all the compile-time 'special' virtual
* addresses. The point is to have a constant address at * addresses. The point is to have a constant address at
...@@ -119,5 +107,9 @@ static inline void __set_fixmap(enum fixed_addresses idx, ...@@ -119,5 +107,9 @@ static inline void __set_fixmap(enum fixed_addresses idx,
#define __early_set_fixmap __set_fixmap #define __early_set_fixmap __set_fixmap
#ifdef CONFIG_PPC_8xx
#define VIRT_IMMR_BASE (__fix_to_virt(FIX_IMMR_BASE))
#endif
#endif /* !__ASSEMBLY__ */ #endif /* !__ASSEMBLY__ */
#endif #endif
...@@ -188,7 +188,6 @@ typedef struct { ...@@ -188,7 +188,6 @@ typedef struct {
} mm_context_t; } mm_context_t;
#define PHYS_IMMR_BASE (mfspr(SPRN_IMMR) & 0xfff80000) #define PHYS_IMMR_BASE (mfspr(SPRN_IMMR) & 0xfff80000)
#define VIRT_IMMR_BASE (__fix_to_virt(FIX_IMMR_BASE))
/* Page size definitions, common between 32 and 64-bit /* Page size definitions, common between 32 and 64-bit
* *
......
...@@ -71,7 +71,14 @@ void unmap_kernel_page(unsigned long va); ...@@ -71,7 +71,14 @@ void unmap_kernel_page(unsigned long va);
* value (for now) on others, from where we can start layout kernel * value (for now) on others, from where we can start layout kernel
* virtual space that goes below PKMAP and FIXMAP * virtual space that goes below PKMAP and FIXMAP
*/ */
#include <asm/fixmap.h>
#define FIXADDR_SIZE 0
#ifdef CONFIG_KASAN
#include <asm/kasan.h>
#define FIXADDR_TOP (KASAN_SHADOW_START - PAGE_SIZE)
#else
#define FIXADDR_TOP ((unsigned long)(-PAGE_SIZE))
#endif
/* /*
* ioremap_bot starts at that address. Early ioremaps move down from there, * ioremap_bot starts at that address. Early ioremaps move down from there,
......
...@@ -57,6 +57,7 @@ ...@@ -57,6 +57,7 @@
#define IOREMAP_START (ioremap_bot) #define IOREMAP_START (ioremap_bot)
#define IOREMAP_END (KERN_IO_START + KERN_IO_SIZE - FIXADDR_SIZE) #define IOREMAP_END (KERN_IO_START + KERN_IO_SIZE - FIXADDR_SIZE)
#define FIXADDR_SIZE SZ_32M #define FIXADDR_SIZE SZ_32M
#define FIXADDR_TOP (IOREMAP_END + FIXADDR_SIZE)
/* /*
* Defines the address of the vmemap area, in its own region on * Defines the address of the vmemap area, in its own region on
......
...@@ -39,6 +39,7 @@ ...@@ -39,6 +39,7 @@
#include <asm/hugetlb.h> #include <asm/hugetlb.h>
#include <asm/kup.h> #include <asm/kup.h>
#include <asm/kasan.h> #include <asm/kasan.h>
#include <asm/fixmap.h>
#include <mm/mmu_decl.h> #include <mm/mmu_decl.h>
......
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
#include <asm/ftrace.h> #include <asm/ftrace.h>
#include <asm/code-patching.h> #include <asm/code-patching.h>
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/fixmap.h>
#include <mm/mmu_decl.h> #include <mm/mmu_decl.h>
......
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
#include <linux/memblock.h> #include <linux/memblock.h>
#include <linux/hugetlb.h> #include <linux/hugetlb.h>
#include <asm/fixmap.h>
#include <mm/mmu_decl.h> #include <mm/mmu_decl.h>
#define IMMR_SIZE (FIX_IMMR_SIZE << PAGE_SHIFT) #define IMMR_SIZE (FIX_IMMR_SIZE << PAGE_SHIFT)
......
...@@ -14,6 +14,8 @@ ...@@ -14,6 +14,8 @@
#include <asm/io.h> #include <asm/io.h>
#include <asm/hw_irq.h> #include <asm/hw_irq.h>
#include <asm/ipic.h> #include <asm/ipic.h>
#include <asm/fixmap.h>
#include <sysdev/fsl_soc.h> #include <sysdev/fsl_soc.h>
#include <sysdev/fsl_pci.h> #include <sysdev/fsl_pci.h>
......
...@@ -40,6 +40,7 @@ ...@@ -40,6 +40,7 @@
#include <asm/io.h> #include <asm/io.h>
#include <asm/rheap.h> #include <asm/rheap.h>
#include <asm/cpm.h> #include <asm/cpm.h>
#include <asm/fixmap.h>
#include <sysdev/fsl_soc.h> #include <sysdev/fsl_soc.h>
......
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