On 2012-02-20 17:40, Alexandre Belloni wrote:
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



NAK!

1. You need to be aware of the page size of dataflashes.
    Each page is 1056 bytes, not 1024 bytes.
    Your patch will make the U-Boot image start in the middle of a page.
2. Std AT91bootstrap loads U-Boot from 0x8400
    so your patch breaks 99% of all SAM9  boards.

If you want to grow U-Boot, then

bootstrap  0x00000000           ; 16 kB
ubootenv   0x00004200           ; 16 kB - Should be plenty
uboot      0x00008400           ;
kernel     0x00063000           ; Why waste space...




Signed-off-by: Alexandre Belloni<alexandre.bell...@piout.net>
---
Changes for v2:
        - changed the layout as per Marek's recommendation
Changes for v3:
        - prefixed the patch title with AT91SAM9*:

  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

--
Best Regards
Ulf Samuelsson
u...@emagii.com
+46 722 427437

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to