diff -urN linux-2.6.27-vpac2/arch/arm/configs/vpac270_defconfig linux-2.6.27-vpac2-256/arch/arm/configs/vpac270_defconfig
--- linux-2.6.27-vpac2/arch/arm/configs/vpac270_defconfig	2010-01-18 16:26:57.000000000 +0100
+++ linux-2.6.27-vpac2-256/arch/arm/configs/vpac270_defconfig	2010-01-13 13:01:51.000000000 +0100
@@ -261,7 +261,7 @@
 # Boot options
 #
 CONFIG_ZBOOT_ROM_TEXT=0x20000
-CONFIG_ZBOOT_ROM_BSS=0xa0800000
+CONFIG_ZBOOT_ROM_BSS=0x80800000
 CONFIG_ZBOOT_ROM=y
 CONFIG_CMDLINE="mem=32M root=/dev/nfs ip=dhcp console=ttyS0,38400"
 # CONFIG_KEXEC is not set
diff -urN linux-2.6.27-vpac2/arch/arm/include/asm/memory.h linux-2.6.27-vpac2-256/arch/arm/include/asm/memory.h
--- linux-2.6.27-vpac2/arch/arm/include/asm/memory.h	2008-10-10 00:13:53.000000000 +0200
+++ linux-2.6.27-vpac2-256/arch/arm/include/asm/memory.h	2010-01-13 13:01:51.000000000 +0100
@@ -34,7 +34,7 @@
  * TASK_SIZE - the maximum size of a user space task.
  * TASK_UNMAPPED_BASE - the lower boundary of the mmap VM area
  */
-#define TASK_SIZE		UL(0xbf000000)
+#define TASK_SIZE		UL(0x9f000000)
 #define TASK_UNMAPPED_BASE	UL(0x40000000)
 #endif
 
@@ -44,10 +44,10 @@
 #define TASK_SIZE_26		UL(0x04000000)
 
 /*
- * Page offset: 3GB
+ * Page offset: 2.5GB
  */
 #ifndef PAGE_OFFSET
-#define PAGE_OFFSET		UL(0xc0000000)
+#define PAGE_OFFSET		UL(0xa0000000)
 #endif
 
 /*
diff -urN linux-2.6.27-vpac2/arch/arm/mach-pxa/include/mach/memory.h linux-2.6.27-vpac2-256/arch/arm/mach-pxa/include/mach/memory.h
--- linux-2.6.27-vpac2/arch/arm/mach-pxa/include/mach/memory.h	2008-10-10 00:13:53.000000000 +0200
+++ linux-2.6.27-vpac2-256/arch/arm/mach-pxa/include/mach/memory.h	2010-01-13 13:01:51.000000000 +0100
@@ -15,7 +15,7 @@
 /*
  * Physical DRAM offset.
  */
-#define PHYS_OFFSET	UL(0xa0000000)
+#define PHYS_OFFSET	UL(0x80000000)
 
 /*
  * Virtual view <-> DMA view memory address translations
@@ -37,7 +37,7 @@
  *
  * This needs a node mem size of 26 bits.
  */
-#define NODE_MEM_SIZE_BITS	26
+#define NODE_MEM_SIZE_BITS	28
 
 #if !defined(__ASSEMBLY__) && defined(CONFIG_MACH_ARMCORE) && defined(CONFIG_PCI)
 void cmx270_pci_adjust_zones(int node, unsigned long *size,
diff -urN linux-2.6.27-vpac2/arch/arm/mach-pxa/Makefile.boot linux-2.6.27-vpac2-256/arch/arm/mach-pxa/Makefile.boot
--- linux-2.6.27-vpac2/arch/arm/mach-pxa/Makefile.boot	2008-10-10 00:13:53.000000000 +0200
+++ linux-2.6.27-vpac2-256/arch/arm/mach-pxa/Makefile.boot	2010-01-13 13:01:51.000000000 +0100
@@ -1,2 +1,2 @@
-   zreladdr-y	:= 0xa0008000
+   zreladdr-y	:= 0x80008000
 
diff -urN linux-2.6.27-vpac2/arch/arm/mach-pxa/vpac270.c linux-2.6.27-vpac2-256/arch/arm/mach-pxa/vpac270.c
--- linux-2.6.27-vpac2/arch/arm/mach-pxa/vpac270.c	2010-01-18 16:26:57.000000000 +0100
+++ linux-2.6.27-vpac2-256/arch/arm/mach-pxa/vpac270.c	2010-02-18 02:44:02.000000000 +0100
@@ -205,8 +205,12 @@
                 offset:         MTDPART_OFS_APPEND,
         },{
                 name:           "Filesystem",   /* the rest for filesystem */
-                size:           MTDPART_SIZ_FULL,
+                size:           0x03E80000,
                 offset:         MTDPART_OFS_APPEND
+        },{
+                name:           "Config",
+                size:           0x00020000,
+                offset:         MTDPART_OFS_APPEND,
         }
 };