From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ulf Samuelsson Date: Mon, 27 Feb 2012 16:25:02 +0100 Subject: [U-Boot] [PATCH v3] AT91SAM9*: Change kernel address in dataflash to match u-boot's size In-Reply-To: <1329756057-2868-1-git-send-email-alexandre.belloni@piout.net> References: <4F424402.104@aribaud.net> <1329756057-2868-1-git-send-email-alexandre.belloni@piout.net> Message-ID: <4F4BA04E.7050200@emagii.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 > --- > 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 ulf at emagii.com +46 722 427437