Skip to contentSkip to conversation

Always include PHYS_OFFSET in PAGE_OFFSET

PATCH In review Franck Bui-Huu 1 participant 2 messages Mar 19, 2007 – Mar 20, 2007 MIPS

lore
Share & tools
lore
#0 lore raw

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
index 0ae9997..600561f 100644
@@ -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
#1 lore raw

Ralf,

Quoted 7 lines · Franck Bui-Huu

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.

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