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)

