--- /dev/null
+From 9fc4787c7a6c797db649831f86e49c4bf9780b4e Mon Sep 17 00:00:00 2001
+From: Alexandre Belloni <alexandre.belloni@piout.net>
+Date: Mon, 2 Jan 2012 03:51:11 +0100
+Subject: [PATCH] Change kernel address in dataflash to match u-boot's size
+
+On at91sam platforms, u-boot grew larger than the allocated size in
+dataflash, the layout was:
+bootstrap 0x00000000
+ubootenv 0x00004200
+uboot 0x00008400
+kernel 0x00042000
+
+u-boot with the defconfig doesn't seem to fit in 0x42000 - 0x8400 =
+0x39C00 bytes anymore.
+
+Now, the layout is:
+bootstrap 0x00000000
+uboot 0x00004000
+ubootenv 0x00084000
+ubootenv2 0x00088000
+kernel 0x0008C000
+
+Signed-off-by: Alexandre Belloni <alexandre.belloni@piout.net>
+---
+ include/configs/at91sam9260ek.h | 18 ++++++++++++------
+ include/configs/at91sam9261ek.h | 18 ++++++++++++------
+ include/configs/at91sam9263ek.h | 10 +++++++---
+ include/configs/at91sam9rlek.h | 10 +++++++---
+ 4 files changed, 38 insertions(+), 18 deletions(-)
+
+diff --git a/include/configs/at91sam9260ek.h b/include/configs/at91sam9260ek.h
+index db52ee6..b537760 100644
+--- a/include/configs/at91sam9260ek.h
++++ b/include/configs/at91sam9260ek.h
+@@ -185,10 +185,12 @@
+ /* bootstrap + u-boot + env + linux in dataflash on CS0 */
+ #define CONFIG_ENV_IS_IN_DATAFLASH 1
+ #define CONFIG_SYS_MONITOR_BASE (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + 0x8400)
+-#define CONFIG_ENV_OFFSET 0x4200
++#define CONFIG_ENV_OFFSET 0x84000
+ #define CONFIG_ENV_ADDR (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + CONFIG_ENV_OFFSET)
+-#define CONFIG_ENV_SIZE 0x4200
+-#define CONFIG_BOOTCOMMAND "cp.b 0xC0042000 0x22000000 0x210000; bootm"
++#define CONFIG_ENV_SIZE 0x4000
++#define CONFIG_ENV_ADDR_REDUND (CONFIG_ENV_ADDR+CONFIG_ENV_SIZE)
++#define CONFIG_ENV_SIZE_REDUND CONFIG_ENV_SIZE
++#define CONFIG_BOOTCOMMAND "cp.b 0xC008C000 0x22000000 0x210000; bootm"
+ #define CONFIG_BOOTARGS "console=ttyS0,115200 " \
+ "root=/dev/mtdblock0 " \
+ "mtdparts=atmel_nand:-(root) " \
+@@ -199,10 +201,12 @@
+ /* bootstrap + u-boot + env + linux in dataflash on CS1 */
+ #define CONFIG_ENV_IS_IN_DATAFLASH 1
+ #define CONFIG_SYS_MONITOR_BASE (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS1 + 0x8400)
+-#define CONFIG_ENV_OFFSET 0x4200
++#define CONFIG_ENV_OFFSET 0x84000
+ #define CONFIG_ENV_ADDR (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS1 + CONFIG_ENV_OFFSET)
+-#define CONFIG_ENV_SIZE 0x4200
+-#define CONFIG_BOOTCOMMAND "cp.b 0xD0042000 0x22000000 0x210000; bootm"
++#define CONFIG_ENV_SIZE 0x4000
++#define CONFIG_ENV_ADDR_REDUND (CONFIG_ENV_ADDR+CONFIG_ENV_SIZE)
++#define CONFIG_ENV_SIZE_REDUND CONFIG_ENV_SIZE
++#define CONFIG_BOOTCOMMAND "cp.b 0xD008C000 0x22000000 0x210000; bootm"
+ #define CONFIG_BOOTARGS "console=ttyS0,115200 " \
+ "root=/dev/mtdblock0 " \
+ "mtdparts=atmel_nand:-(root) " \
+@@ -231,6 +235,8 @@
+ #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
+ #define CONFIG_SYS_LONGHELP 1
+ #define CONFIG_CMDLINE_EDITING 1
++#define CONFIG_AUTO_COMPLETE
++#define CONFIG_SYS_REDUNDAND_ENVIRONMENT
+
+ /*
+ * Size of malloc() pool
+diff --git a/include/configs/at91sam9261ek.h b/include/configs/at91sam9261ek.h
+index 5140b26..fa461da 100644
+--- a/include/configs/at91sam9261ek.h
++++ b/include/configs/at91sam9261ek.h
+@@ -187,10 +187,12 @@
+ /* bootstrap + u-boot + env + linux in dataflash on CS0 */
+ #define CONFIG_ENV_IS_IN_DATAFLASH
+ #define CONFIG_SYS_MONITOR_BASE (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + 0x8400)
+-#define CONFIG_ENV_OFFSET 0x4200
++#define CONFIG_ENV_OFFSET 0x84000
+ #define CONFIG_ENV_ADDR (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + CONFIG_ENV_OFFSET)
+-#define CONFIG_ENV_SIZE 0x4200
+-#define CONFIG_BOOTCOMMAND "cp.b 0xC0042000 0x22000000 0x210000; bootm"
++#define CONFIG_ENV_SIZE 0x4000
++#define CONFIG_ENV_ADDR_REDUND (CONFIG_ENV_ADDR+CONFIG_ENV_SIZE)
++#define CONFIG_ENV_SIZE_REDUND CONFIG_ENV_SIZE
++#define CONFIG_BOOTCOMMAND "cp.b 0xC008C000 0x22000000 0x210000; bootm"
+ #define CONFIG_BOOTARGS "console=ttyS0,115200 " \
+ "root=/dev/mtdblock0 " \
+ "mtdparts=atmel_nand:-(root) " \
+@@ -201,10 +203,12 @@
+ /* bootstrap + u-boot + env + linux in dataflash on CS3 */
+ #define CONFIG_ENV_IS_IN_DATAFLASH
+ #define CONFIG_SYS_MONITOR_BASE (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS3 + 0x8400)
+-#define CONFIG_ENV_OFFSET 0x4200
++#define CONFIG_ENV_OFFSET 0x84000
+ #define CONFIG_ENV_ADDR (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS3 + CONFIG_ENV_OFFSET)
+-#define CONFIG_ENV_SIZE 0x4200
+-#define CONFIG_BOOTCOMMAND "cp.b 0xD0042000 0x22000000 0x210000; bootm"
++#define CONFIG_ENV_SIZE 0x4000
++#define CONFIG_ENV_ADDR_REDUND (CONFIG_ENV_ADDR+CONFIG_ENV_SIZE)
++#define CONFIG_ENV_SIZE_REDUND CONFIG_ENV_SIZE
++#define CONFIG_BOOTCOMMAND "cp.b 0xD008C000 0x22000000 0x210000; bootm"
+ #define CONFIG_BOOTARGS "console=ttyS0,115200 " \
+ "root=/dev/mtdblock0 " \
+ "mtdparts=atmel_nand:-(root) " \
+@@ -233,6 +237,8 @@
+ #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
+ #define CONFIG_SYS_LONGHELP
+ #define CONFIG_CMDLINE_EDITING
++#define CONFIG_AUTO_COMPLETE
++#define CONFIG_SYS_REDUNDAND_ENVIRONMENT
+
+ /*
+ * Size of malloc() pool
+diff --git a/include/configs/at91sam9263ek.h b/include/configs/at91sam9263ek.h
+index 8399246..253bee4 100644
+--- a/include/configs/at91sam9263ek.h
++++ b/include/configs/at91sam9263ek.h
+@@ -314,10 +314,12 @@
+ /* bootstrap + u-boot + env + linux in dataflash on CS0 */
+ #define CONFIG_ENV_IS_IN_DATAFLASH 1
+ #define CONFIG_SYS_MONITOR_BASE (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + 0x8400)
+-#define CONFIG_ENV_OFFSET 0x4200
++#define CONFIG_ENV_OFFSET 0x84000
+ #define CONFIG_ENV_ADDR (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + CONFIG_ENV_OFFSET)
+-#define CONFIG_ENV_SIZE 0x4200
+-#define CONFIG_BOOTCOMMAND "cp.b 0xC0042000 0x22000000 0x210000; bootm"
++#define CONFIG_ENV_SIZE 0x4000
++#define CONFIG_ENV_ADDR_REDUND (CONFIG_ENV_ADDR+CONFIG_ENV_SIZE)
++#define CONFIG_ENV_SIZE_REDUND CONFIG_ENV_SIZE
++#define CONFIG_BOOTCOMMAND "cp.b 0xC008C000 0x22000000 0x210000; bootm"
+ #define CONFIG_BOOTARGS "console=ttyS0,115200 " \
+ "root=/dev/mtdblock0 " \
+ "mtdparts=atmel_nand:-(root) "\
+@@ -347,6 +349,8 @@
+ #define CONFIG_AUTO_COMPLETE
+ #define CONFIG_SYS_HUSH_PARSER
+ #define CONFIG_SYS_PROMPT_HUSH_PS2 "> "
++#define CONFIG_AUTO_COMPLETE
++#define CONFIG_SYS_REDUNDAND_ENVIRONMENT
+
+ /*
+ * Size of malloc() pool
+diff --git a/include/configs/at91sam9rlek.h b/include/configs/at91sam9rlek.h
+index 79ea1f2..423f523 100644
+--- a/include/configs/at91sam9rlek.h
++++ b/include/configs/at91sam9rlek.h
+@@ -153,10 +153,12 @@
+ /* bootstrap + u-boot + env + linux in dataflash on CS0 */
+ #define CONFIG_ENV_IS_IN_DATAFLASH 1
+ #define CONFIG_SYS_MONITOR_BASE (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + 0x8400)
+-#define CONFIG_ENV_OFFSET 0x4200
++#define CONFIG_ENV_OFFSET 0x84000
+ #define CONFIG_ENV_ADDR (CONFIG_SYS_DATAFLASH_LOGIC_ADDR_CS0 + CONFIG_ENV_OFFSET)
+-#define CONFIG_ENV_SIZE 0x4200
+-#define CONFIG_BOOTCOMMAND "cp.b 0xC0042000 0x22000000 0x210000; bootm"
++#define CONFIG_ENV_SIZE 0x4000
++#define CONFIG_ENV_ADDR_REDUND (CONFIG_ENV_ADDR+CONFIG_ENV_SIZE)
++#define CONFIG_ENV_SIZE_REDUND CONFIG_ENV_SIZE
++#define CONFIG_BOOTCOMMAND "cp.b 0xC008C000 0x22000000 0x210000; bootm"
+ #define CONFIG_BOOTARGS "console=ttyS0,115200 " \
+ "root=/dev/mtdblock0 " \
+ "mtdparts=atmel_nand:-(root) "\
+@@ -183,6 +185,8 @@
+ #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
+ #define CONFIG_SYS_LONGHELP 1
+ #define CONFIG_CMDLINE_EDITING 1
++#define CONFIG_AUTO_COMPLETE
++#define CONFIG_SYS_REDUNDAND_ENVIRONMENT
+
+ /*
+ * Size of malloc() pool
+--
+1.7.5.4
+