Always include PHYS_OFFSET in PAGE_OFFSET
PATCH 1/1 Always include PHYS_OFFSET in PAGE_OFFSET
From: Franck Bui-Huu <[email protected]>
For platforms that use PHYS_OFFSET and do not use a mapped kernel, this patch automatically adds PHYS_OFFSET into PAGE_OFFSET. Therefore for these platforms there are no more needs to change PAGE_OFFSET.
For mapped kernel, they need to redefine PAGE_OFFSET anyways.
---
Maxime,
Could you give a try to this patch ? It removes the need to change your PAGE_OFFSET. If I remember correctly it's now 0x90000000, and you should be able to restore back to 0x80000000.
Franck
include/asm-mips/mach-generic/spaces.h | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-)
include/asm-mips/mach-generic/spaces.h +3 -3
@@ -22,7 +22,7 @@* This handles the memory map. * We handle pages at KSEG0 for kernels with 32 bit address space. */ -#define PAGE_OFFSET 0x80000000UL +#define PAGE_OFFSET (0x80000000UL + PHYS_OFFSET)/* * Memory above this physical address will be considered highmem.
@@ -39,9 +39,9 @@* This handles the memory map. */ #ifdef CONFIG_DMA_NONCOHERENT -#define PAGE_OFFSET 0x9800000000000000UL +#define PAGE_OFFSET (0x9800000000000000UL + PHYS_OFFSET)#else -#define PAGE_OFFSET 0xa800000000000000UL +#define PAGE_OFFSET (0xa800000000000000UL + PHYS_OFFSET)#endif /*
Signature · 1 line
1.4.4.3.ge6d4
Ralf,
Quoted 7 lines · Franck Bui-Huu
From: Franck Bui-Huu <[email protected]>
For platforms that use
PHYS_OFFSETand do not use a mapped kernel, this patch automatically addsPHYS_OFFSETintoPAGE_OFFSET. Therefore for these platforms there are no more needs to changePAGE_OFFSET.
This patch is actually useless. I didn't notice that spaces.h must be totaly rewritten by platforms when they need to customize one value. Why, I dunno ?
Why not doing something like:
-- >8 --
(quoted diff) +0 -0
b/include/asm-mips/mach-generic/spaces.h
index 0ae9997..beec80e 100644
include/asm-mips/mach-generic/spaces.h +0 -0
@@ -16,13 +16,18 @@
#define CAC_BASE 0x80000000
#define IO_BASE 0xa0000000
#define UNCAC_BASE 0xa0000000
+
+#ifndef MAP_BASE
#define MAP_BASE 0xc0000000
+#endif
/*
* This handles the memory map.
* We handle pages at KSEG0 for kernels with 32 bit address space. */
+#ifndef PAGE_OFFSET
#define PAGE_OFFSET 0x80000000UL
+#endif
/*
* Memory above this physical address will be considered highmem.
@@ -38,11 +43,13 @@
/*
* This handles the memory map.
*/
+#ifndef PAGE_OFFSET
#ifdef CONFIG_DMA_NONCOHERENT
#define PAGE_OFFSET 0x9800000000000000UL
#else
#define PAGE_OFFSET 0xa800000000000000UL
#endif
+#endif
/*
* Memory above this physical address will be considered highmem.
-- >8 --
and doing in platform's spaces.h:
[ redefine a couple of constants]
#include <asm/mach-generic/spaces.h>
AFAIK, {CAC,UNCAC,IO}_BASE are likely to be the same for all platforms, no ?
Does that need some cleanup ? if so I'm your man ;)
Signature · 1 line
Franck