diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2009-05-26 23:44:50 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2009-05-27 02:32:50 -0400 |
commit | f637a49e507c88354ab32b5d914e06acfb7ee00d (patch) | |
tree | 60ec94bc3dcf323028faf8b7fd31e6d4c73f2bb5 /arch/powerpc/include/asm/pgtable-ppc32.h | |
parent | b16e7766d6436835f473ba823ad04fbdfe5e9cbd (diff) |
powerpc: Minor cleanups of kernel virt address space definitions
Make FIXADDR_TOP a compile time constant and cleanup a
couple of definitions relative to the layout of the kernel
address space on ppc32. We also print out that layout at
boot time for debugging purposes.
This is a pre-requisite for properly fixing non-coherent
DMA allocactions.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/include/asm/pgtable-ppc32.h')
-rw-r--r-- | arch/powerpc/include/asm/pgtable-ppc32.h | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/arch/powerpc/include/asm/pgtable-ppc32.h b/arch/powerpc/include/asm/pgtable-ppc32.h index ba45c997830f..28fe9d4bae35 100644 --- a/arch/powerpc/include/asm/pgtable-ppc32.h +++ b/arch/powerpc/include/asm/pgtable-ppc32.h | |||
@@ -10,7 +10,7 @@ | |||
10 | 10 | ||
11 | extern unsigned long va_to_phys(unsigned long address); | 11 | extern unsigned long va_to_phys(unsigned long address); |
12 | extern pte_t *va_to_pte(unsigned long address); | 12 | extern pte_t *va_to_pte(unsigned long address); |
13 | extern unsigned long ioremap_bot, ioremap_base; | 13 | extern unsigned long ioremap_bot; |
14 | 14 | ||
15 | #ifdef CONFIG_44x | 15 | #ifdef CONFIG_44x |
16 | extern int icache_44x_need_flush; | 16 | extern int icache_44x_need_flush; |
@@ -56,8 +56,26 @@ extern int icache_44x_need_flush; | |||
56 | printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e)) | 56 | printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e)) |
57 | 57 | ||
58 | /* | 58 | /* |
59 | * This is the bottom of the PKMAP area with HIGHMEM or an arbitrary | ||
60 | * value (for now) on others, from where we can start layout kernel | ||
61 | * virtual space that goes below PKMAP and FIXMAP | ||
62 | */ | ||
63 | #ifdef CONFIG_HIGHMEM | ||
64 | #define KVIRT_TOP PKMAP_BASE | ||
65 | #else | ||
66 | #define KVIRT_TOP (0xfe000000UL) /* for now, could be FIXMAP_BASE ? */ | ||
67 | #endif | ||
68 | |||
69 | /* | ||
70 | * ioremap_bot starts at that address. Early ioremaps move down from there, | ||
71 | * until mem_init() at which point this becomes the top of the vmalloc | ||
72 | * and ioremap space | ||
73 | */ | ||
74 | #define IOREMAP_TOP KVIRT_TOP | ||
75 | |||
76 | /* | ||
59 | * Just any arbitrary offset to the start of the vmalloc VM area: the | 77 | * Just any arbitrary offset to the start of the vmalloc VM area: the |
60 | * current 64MB value just means that there will be a 64MB "hole" after the | 78 | * current 16MB value just means that there will be a 64MB "hole" after the |
61 | * physical memory until the kernel virtual memory starts. That means that | 79 | * physical memory until the kernel virtual memory starts. That means that |
62 | * any out-of-bounds memory accesses will hopefully be caught. | 80 | * any out-of-bounds memory accesses will hopefully be caught. |
63 | * The vmalloc() routines leaves a hole of 4kB between each vmalloced | 81 | * The vmalloc() routines leaves a hole of 4kB between each vmalloced |