diff -Naur linux-2.6.11-rc4-mm1/arch/i386/Kconfig linux-2.6.11-rc4-mm1-memory/arch/i386/Kconfig --- linux-2.6.11-rc4-mm1/arch/i386/Kconfig 2005-02-23 10:19:12.579878704 -0800 +++ linux-2.6.11-rc4-mm1-memory/arch/i386/Kconfig 2005-02-27 22:21:35.821709320 -0800 @@ -745,6 +745,20 @@ depends on HIGHMEM64G default y +config 1GLOWMEM + bool "1Gb Low Memory Support" + depends on NOHIGHMEM + default n + help + Linux on i386 architecture normally supports just 896Mb without + enabling HIGHMEM support. This option will enable you to support 1Gb + of ram without needing to enable HIGHMEM support. The advantage of + this is that you don't need the extra overhead of high memory support + to utilise the last 128Mb of ram. However this may break drivers such + as vmware. + + If unsure say "no" + # Common NUMA Features config NUMA bool "Numa Memory Allocation and Scheduler Support" diff -Naur linux-2.6.11-rc4-mm1/include/asm-i386/page.h linux-2.6.11-rc4-mm1-memory/include/asm-i386/page.h --- linux-2.6.11-rc4-mm1/include/asm-i386/page.h 2005-02-23 10:19:38.812890680 -0800 +++ linux-2.6.11-rc4-mm1-memory/include/asm-i386/page.h 2005-02-27 22:19:16.832838840 -0800 @@ -123,13 +123,23 @@ #endif /* __ASSEMBLY__ */ +#ifdef CONFIG_1GLOWMEM +#ifdef __ASSEMBLY__ +#define __PAGE_OFFSET (0xB0000000) +#define __PHYSICAL_START CONFIG_PHYSICAL_START +#else +#define __PAGE_OFFSET (0xB0000000UL) +#define __PHYSICAL_START ((unsigned long)CONFIG_PHYSICAL_START) +#endif /* __ASSEMBLY__ */ +#else #ifdef __ASSEMBLY__ #define __PAGE_OFFSET (0xC0000000) #define __PHYSICAL_START CONFIG_PHYSICAL_START #else #define __PAGE_OFFSET (0xC0000000UL) #define __PHYSICAL_START ((unsigned long)CONFIG_PHYSICAL_START) -#endif +#endif /* __ASSEMBLY__ */ +#endif /* CONFIG_1GLOWMEM */ #define __KERNEL_START (__PAGE_OFFSET + __PHYSICAL_START)