AT91SAM9*: Change kernel address in dataflash to match u-boot's size
PATCH v7 1/1 AT91SAM9*: 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 fs 0x00252000
u-boot with the defconfig doesn't seem to fit in 0x42000 - 0x8400 = 0x39C00 bytes anymore.
Now, the layout is:
bootstrap 0x00000000 ubootenv 0x00004200 uboot 0x00008400 kernel 0x00084000 fs 0x00294000
---
Changes for v2:
- changed the layout as per Marek's recommendation Changes for v3:
- prefixed the patch title with AT91SAM9*:
Changes for v4:
- changed the layout again as per Ulf Samuelsson's request:
http://lists.denx.de/pipermail/u-boot/2012-February/118988.html
Changes for v5:
- also update partition list
Changes for v6:
- rebase on latest u-boot-atmel
Changes for v7:
- Still allocate 0x00210000 for the kernel
board/atmel/at91sam9260ek/partition.c | 6 +++--- board/atmel/at91sam9261ek/partition.c | 6 +++--- board/atmel/at91sam9263ek/partition.c | 6 +++--- board/atmel/at91sam9rlek/partition.c | 6 +++--- include/configs/at91sam9260ek.h | 5 +++-- include/configs/at91sam9261ek.h | 5 +++-- include/configs/at91sam9263ek.h | 2 +- include/configs/at91sam9rlek.h | 3 ++- 8 files changed, 21 insertions(+), 18 deletions(-)
board/atmel/at91sam9260ek/partition.c +3 -3
@@ -34,7 +34,7 @@ struct dataflash_addr cs[CONFIG_SYS_MAX_DATAFLASH_BANKS] = {dataflash_protect_t area_list[NB_DATAFLASH_AREA ] = { {0x00000000 ,0x000041FF ,FLAG_PROTECT_SET ,0 ,"Bootstrap" }, {0x00004200 ,0x000083FF ,FLAG_PROTECT_CLEAR ,0 ,"Environment" }, - {0x00008400 ,0x00041FFF ,FLAG_PROTECT_SET ,0 ,"U-Boot" }, - {0x00042000 ,0x00251FFF ,FLAG_PROTECT_CLEAR ,0 ,"Kernel" }, - {0x00252000 ,0xFFFFFFFF ,FLAG_PROTECT_CLEAR ,0 ,"FS" }, + {0x00008400 ,0x00083FFF ,FLAG_PROTECT_SET ,0 ,"U-Boot" }, + {0x00084000 ,0x00293FFF ,FLAG_PROTECT_CLEAR ,0 ,"Kernel" }, + {0x00294000 ,0xFFFFFFFF ,FLAG_PROTECT_CLEAR ,0 ,"FS" }, };
board/atmel/at91sam9261ek/partition.c +3 -3
@@ -34,7 +34,7 @@ struct dataflash_addr cs[CONFIG_SYS_MAX_DATAFLASH_BANKS] = {dataflash_protect_t area_list[NB_DATAFLASH_AREA ] = { {0x00000000 ,0x000041FF ,FLAG_PROTECT_SET ,0 ,"Bootstrap" }, {0x00004200 ,0x000083FF ,FLAG_PROTECT_CLEAR ,0 ,"Environment" }, - {0x00008400 ,0x00041FFF ,FLAG_PROTECT_SET ,0 ,"U-Boot" }, - {0x00042000 ,0x00251FFF ,FLAG_PROTECT_CLEAR ,0 ,"Kernel" }, - {0x00252000 ,0xFFFFFFFF ,FLAG_PROTECT_CLEAR ,0 ,"FS" }, + {0x00008400 ,0x00083FFF ,FLAG_PROTECT_SET ,0 ,"U-Boot" }, + {0x00084000 ,0x00293FFF ,FLAG_PROTECT_CLEAR ,0 ,"Kernel" }, + {0x00294000 ,0xFFFFFFFF ,FLAG_PROTECT_CLEAR ,0 ,"FS" }, };
board/atmel/at91sam9263ek/partition.c +3 -3
@@ -33,7 +33,7 @@ struct dataflash_addr cs[CONFIG_SYS_MAX_DATAFLASH_BANKS] = {dataflash_protect_t area_list[NB_DATAFLASH_AREA ] = { {0x00000000 ,0x000041FF ,FLAG_PROTECT_SET ,0 ,"Bootstrap" }, {0x00004200 ,0x000083FF ,FLAG_PROTECT_CLEAR ,0 ,"Environment" }, - {0x00008400 ,0x00041FFF ,FLAG_PROTECT_SET ,0 ,"U-Boot" }, - {0x00042000 ,0x00251FFF ,FLAG_PROTECT_CLEAR ,0 ,"Kernel" }, - {0x00252000 ,0xFFFFFFFF ,FLAG_PROTECT_CLEAR ,0 ,"FS" }, + {0x00008400 ,0x00083FFF ,FLAG_PROTECT_SET ,0 ,"U-Boot" }, + {0x00084000 ,0x00293FFF ,FLAG_PROTECT_CLEAR ,0 ,"Kernel" }, + {0x00294000 ,0xFFFFFFFF ,FLAG_PROTECT_CLEAR ,0 ,"FS" }, };
board/atmel/at91sam9rlek/partition.c +3 -3
@@ -33,7 +33,7 @@ struct dataflash_addr cs[CONFIG_SYS_MAX_DATAFLASH_BANKS] = {dataflash_protect_t area_list[NB_DATAFLASH_AREA ] = { {0x00000000 ,0x000041FF ,FLAG_PROTECT_SET ,0 ,"Bootstrap" }, {0x00004200 ,0x000083FF ,FLAG_PROTECT_CLEAR ,0 ,"Environment" }, - {0x00008400 ,0x00041FFF ,FLAG_PROTECT_SET ,0 ,"U-Boot" }, - {0x00042000 ,0x00251FFF ,FLAG_PROTECT_CLEAR ,0 ,"Kernel" }, - {0x00252000 ,0xFFFFFFFF ,FLAG_PROTECT_CLEAR ,0 ,"FS" }, + {0x00008400 ,0x00083FFF ,FLAG_PROTECT_SET ,0 ,"U-Boot" }, + {0x00084000 ,0x00293FFF ,FLAG_PROTECT_CLEAR ,0 ,"Kernel" }, + {0x00294000 ,0xFFFFFFFF ,FLAG_PROTECT_CLEAR ,0 ,"FS" }, };
include/configs/at91sam9260ek.h +3 -2
@@ -187,7 +187,7 @@#define CONFIG_ENV_OFFSET 0x4200#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_BOOTCOMMAND "cp.b 0xC0084000 0x22000000 0x210000; bootm"#define CONFIG_BOOTARGS "console=ttyS0,115200 " \ "root=/dev/mtdblock0 " \ "mtdparts=atmel_nand:-(root) " \
@@ -201,7 +201,7 @@#define CONFIG_ENV_OFFSET 0x4200#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_BOOTCOMMAND "cp.b 0xD0084000 0x22000000 0x210000; bootm"#define CONFIG_BOOTARGS "console=ttyS0,115200 " \ "root=/dev/mtdblock0 " \ "mtdparts=atmel_nand:-(root) " \
@@ -230,6 +230,7 @@#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 /* * Size of malloc() pool
include/configs/at91sam9261ek.h +3 -2
@@ -189,7 +189,7 @@#define CONFIG_ENV_OFFSET 0x4200#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_BOOTCOMMAND "cp.b 0xC0084000 0x22000000 0x210000; bootm"#define CONFIG_BOOTARGS "console=ttyS0,115200 " \ "root=/dev/mtdblock0 " \ "mtdparts=atmel_nand:-(root) " \
@@ -203,7 +203,7 @@#define CONFIG_ENV_OFFSET 0x4200#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_BOOTCOMMAND "cp.b 0xD0084000 0x22000000 0x210000; bootm"#define CONFIG_BOOTARGS "console=ttyS0,115200 " \ "root=/dev/mtdblock0 " \ "mtdparts=atmel_nand:-(root) " \
@@ -232,6 +232,7 @@#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)#define CONFIG_SYS_LONGHELP #define CONFIG_CMDLINE_EDITING +#define CONFIG_AUTO_COMPLETE /* * Size of malloc() pool
include/configs/at91sam9263ek.h +1 -1
@@ -318,7 +318,7 @@#define CONFIG_ENV_OFFSET 0x4200#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_BOOTCOMMAND "cp.b 0xC0084000 0x22000000 0x210000; bootm"#define CONFIG_BOOTARGS "console=ttyS0,115200 " \ "root=/dev/mtdblock0 " \ "mtdparts=atmel_nand:-(root) "\
include/configs/at91sam9rlek.h +2 -1
@@ -155,7 +155,7 @@#define CONFIG_ENV_OFFSET 0x4200#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_BOOTCOMMAND "cp.b 0xC0084000 0x22000000 0x210000; bootm"#define CONFIG_BOOTARGS "console=ttyS0,115200 " \ "root=/dev/mtdblock0 " \ "mtdparts=atmel_nand:-(root) "\
@@ -182,6 +182,7 @@#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 /* * Size of malloc() pool
Signature · 1 line
1.7.9.5
PATCH v7 1/1 AT91SAM9*: Change kernel address in dataflash to match u-boot's size
Dear Alexandre Belloni,
Quoted 11 lines · Alexandre Belloni
On at91sam platforms, u-boot grew larger than the allocated size in dataflash, the layout was:
bootstrap 0x00000000 ubootenv 0x00004200 uboot 0x00008400 kernel 0x00042000 fs 0x00252000u-boot with the defconfig doesn't seem to fit in
0x42000-0x8400=0x39C00bytes anymore.
Quoted 8 lines
Now, the layout is:
bootstrap 0x00000000 ubootenv 0x00004200 uboot 0x00008400 kernel 0x00084000 fs 0x00294000Signed-off-by Alexandre Belloni <[email protected]>
applied to u-boot-atmel/master, thanks!
Best regards
Andreas Bie?mann