Index: linux-2.6.8.1-ck8/arch/i386/Kconfig =================================================================== --- linux-2.6.8.1-ck8.orig/arch/i386/Kconfig 2004-09-17 00:54:48.993491403 +1000 +++ linux-2.6.8.1-ck8/arch/i386/Kconfig 2004-09-17 00:56:07.705744961 +1000 @@ -721,6 +721,20 @@ config X86_PAE 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" Index: linux-2.6.8.1-ck8/arch/i386/kernel/vmlinux.lds.S =================================================================== --- linux-2.6.8.1-ck8.orig/arch/i386/kernel/vmlinux.lds.S 2004-09-17 00:54:48.994491241 +1000 +++ linux-2.6.8.1-ck8/arch/i386/kernel/vmlinux.lds.S 2004-09-17 00:56:07.039852770 +1000 @@ -11,7 +11,11 @@ ENTRY(startup_32) jiffies = jiffies_64; SECTIONS { +#ifdef CONFIG_1GLOWMEM + . = 0xB0000000 + 0x100000; +#else . = 0xC0000000 + 0x100000; +#endif /* read-only */ _text = .; /* Text and read-only data */ .text : { Index: linux-2.6.8.1-ck8/include/asm-i386/page.h =================================================================== --- linux-2.6.8.1-ck8.orig/include/asm-i386/page.h 2004-09-17 00:54:48.995491079 +1000 +++ linux-2.6.8.1-ck8/include/asm-i386/page.h 2004-09-17 00:56:07.039852770 +1000 @@ -118,12 +118,19 @@ static __inline__ int get_order(unsigned #endif /* __ASSEMBLY__ */ +#ifdef CONFIG_1GLOWMEM +#ifdef __ASSEMBLY__ +#define __PAGE_OFFSET (0xB0000000) +#else +#define __PAGE_OFFSET (0xB0000000UL) +#endif /* __ASSEMBLY__ */ +#else #ifdef __ASSEMBLY__ #define __PAGE_OFFSET (0xC0000000) #else #define __PAGE_OFFSET (0xC0000000UL) -#endif - +#endif /* __ASSEMBLY__ */ +#endif /* CONFIG_1GLOWMEM */ #define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET) #define VMALLOC_RESERVE ((unsigned long)__VMALLOC_RESERVE)