Index: linux-2.6.8.1-ck/arch/i386/Kconfig =================================================================== --- linux-2.6.8.1-ck.orig/arch/i386/Kconfig 2004-08-22 19:15:53.372513892 +1000 +++ linux-2.6.8.1-ck/arch/i386/Kconfig 2004-08-22 19:30:17.931047879 +1000 @@ -721,6 +721,20 @@ config X86_PAE depends on HIGHMEM64G default y +config 1GLOWMEM + bool "1Gb Low Memory Support" + depends on NOHIGHMEM + default y + help + Linux on i386 architecture normally supports just under 900Mb 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 100Mb of ram. However this may break drivers such + as vmware. + + If unsure say "yes" + # Common NUMA Features config NUMA bool "Numa Memory Allocation and Scheduler Support" Index: linux-2.6.8.1-ck/arch/i386/kernel/vmlinux.lds.S =================================================================== --- linux-2.6.8.1-ck.orig/arch/i386/kernel/vmlinux.lds.S 2004-08-22 19:10:12.233463827 +1000 +++ linux-2.6.8.1-ck/arch/i386/kernel/vmlinux.lds.S 2004-08-22 19:32:12.156793477 +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-ck/include/asm-i386/page.h =================================================================== --- linux-2.6.8.1-ck.orig/include/asm-i386/page.h 2004-08-22 19:10:12.249461274 +1000 +++ linux-2.6.8.1-ck/include/asm-i386/page.h 2004-08-22 19:33:48.315445127 +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)