Okay, fixed the ordering of the "default" lines so that the Kconfig actually works correctly. Best for Andrew to soak this one in -mm. Signed-off-by: Mark Lord arch/i386/Kconfig | 37 +++++++++++++++++++++++++++++++++++++ include/asm-i386/page.h | 4 ++-- 2 files changed, 39 insertions(+), 2 deletions(-) Index: linux-2.6.15-ck7/arch/i386/Kconfig =================================================================== --- linux-2.6.15-ck7.orig/arch/i386/Kconfig 2006-03-10 21:55:22.000000000 +1100 +++ linux-2.6.15-ck7/arch/i386/Kconfig 2006-03-10 21:55:28.000000000 +1100 @@ -395,6 +395,43 @@ config X86_CPUID source "drivers/firmware/Kconfig" choice + depends on EXPERIMENTAL && !X86_PAE + prompt "Memory split" + default VMSPLIT_3G + help + Select the desired split between kernel and user memory. + + If the address range available to the kernel is less than the + physical memory installed, the remaining memory will be available + as "high memory". Accessing high memory is a little more costly + than low memory, as it needs to be mapped into the kernel first. + Note that increasing the kernel address space limits the range + available to user programs, making the address space there + tighter. Selecting anything other than the default 3G/1G split + will also likely make your kernel incompatible with binary-only + kernel modules. + + If you are not absolutely sure what you are doing, leave this + option alone! + + config VMSPLIT_3G + bool "3G/1G user/kernel split" + config VMSPLIT_3G_OPT + bool "3G/1G user/kernel split (for full 1G low memory)" + config VMSPLIT_2G + bool "2G/2G user/kernel split" + config VMSPLIT_1G + bool "1G/3G user/kernel split" +endchoice + +config PAGE_OFFSET + hex + default 0xB0000000 if VMSPLIT_3G_OPT + default 0x78000000 if VMSPLIT_2G + default 0x40000000 if VMSPLIT_1G + default 0xC0000000 + +choice prompt "High Memory Support" default NOHIGHMEM Index: linux-2.6.15-ck7/include/asm-i386/page.h =================================================================== --- linux-2.6.15-ck7.orig/include/asm-i386/page.h 2006-03-10 21:55:22.000000000 +1100 +++ linux-2.6.15-ck7/include/asm-i386/page.h 2006-03-10 21:55:28.000000000 +1100 @@ -110,10 +110,10 @@ extern int page_is_ram(unsigned long pag #endif /* __ASSEMBLY__ */ #ifdef __ASSEMBLY__ -#define __PAGE_OFFSET (0xC0000000) +#define __PAGE_OFFSET CONFIG_PAGE_OFFSET #define __PHYSICAL_START CONFIG_PHYSICAL_START #else -#define __PAGE_OFFSET (0xC0000000UL) +#define __PAGE_OFFSET ((unsigned long)CONFIG_PAGE_OFFSET) #define __PHYSICAL_START ((unsigned long)CONFIG_PHYSICAL_START) #endif #define __KERNEL_START (__PAGE_OFFSET + __PHYSICAL_START)