[U-Boot] [PATCH] [NEXT] da830: fixup ARM relocation support

Fixes build breakage in da830evm after commit 97003756249bd790910417eb66f0039bbf06a02c "da8xx: fixup ARM relocation support"
The da8xx fixup commit changed da830/da850 common code to make relocation work in da850, but didn't add the required defines to da830evm_config.h resulting in build failure in the common code.
This patch adds those defines for da830, but makes no sense without also referring to the commit mentioned above.
Signed-off-by: Nick Thompson nick.thompson@ge.com --- include/configs/da830evm.h | 11 +++++++++-- 1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/include/configs/da830evm.h b/include/configs/da830evm.h index 160ece2..b281e5f 100644 --- a/include/configs/da830evm.h +++ b/include/configs/da830evm.h @@ -48,8 +48,7 @@ */ #define CONFIG_SYS_MALLOC_LEN (0x10000 + 1*1024*1024) /* malloc() len */ #define CONFIG_SYS_GBL_DATA_SIZE 128 /* reserved for initial data */ -#define PHYS_SDRAM_1 DAVINCI_DDR_EMIF_DATA_BASE /* DDR Start */ -#define PHYS_SDRAM_1_SIZE (64 << 20) /* SDRAM size 64MB */ +#define PHYS_SDRAM_1 0xc0000000 /* SDRAM Start */ #define CONFIG_SYS_MEMTEST_START PHYS_SDRAM_1 /* memtest start addr */ #define CONFIG_SYS_MEMTEST_END (PHYS_SDRAM_1 + 16*1024*1024) /* 16MB test */ #define CONFIG_NR_DRAM_BANKS 1 /* we have 1 bank of DRAM */ @@ -281,4 +280,12 @@ "mtdparts=davinci_nand.1:" PART_BOOT PART_PARAMS PART_KERNEL PART_REST #endif
+#define CONFIG_MAX_RAM_BANK_SIZE (512 << 20) /* max size from SPRS586*/ + +/* additions for new relocation code, must be added to all boards */ +#undef CONFIG_SYS_ARM_WITHOUT_RELOC +#define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM_1 +#define CONFIG_SYS_INIT_SP_ADDR \ + (CONFIG_SYS_SDRAM_BASE + 0x1000 - CONFIG_SYS_GBL_DATA_SIZE) + #endif /* __CONFIG_H */

On Wed, Sep 22, 2010 at 9:16 AM, Nick Thompson nick.thompson@ge.com wrote:
Fixes build breakage in da830evm after commit 97003756249bd790910417eb66f0039bbf06a02c "da8xx: fixup ARM relocation support"
The da8xx fixup commit changed da830/da850 common code to make relocation work in da850, but didn't add the required defines to da830evm_config.h resulting in build failure in the common code.
This patch adds those defines for da830, but makes no sense without also referring to the commit mentioned above.
Signed-off-by: Nick Thompson nick.thompson@ge.com
Sorry that was my fault for not adding the needed changes to the da830 config also when I submitted that patch.
What about removing "#define CONFIG_SKIP_RELOCATE_UBOOT" as in commit ab86f72c354f9b2572340f72b74ca0a258c451bd ?
Best Regards, Ben Gardiner
--- Nanometrics Inc. http://www.nanometrics.ca

On 22/09/10 14:43, Ben Gardiner wrote:
On Wed, Sep 22, 2010 at 9:16 AM, Nick Thompson nick.thompson@ge.com wrote:
Fixes build breakage in da830evm after commit 97003756249bd790910417eb66f0039bbf06a02c "da8xx: fixup ARM relocation support"
The da8xx fixup commit changed da830/da850 common code to make relocation work in da850, but didn't add the required defines to da830evm_config.h resulting in build failure in the common code.
This patch adds those defines for da830, but makes no sense without also referring to the commit mentioned above.
Signed-off-by: Nick Thompson nick.thompson@ge.com
Sorry that was my fault for not adding the needed changes to the da830 config also when I submitted that patch.
It's not a problem - at least you laid the ground work for a fix that had to be done anyway. I only mentioned it to put the patch in context.
What about removing "#define CONFIG_SKIP_RELOCATE_UBOOT" as in commit ab86f72c354f9b2572340f72b74ca0a258c451bd ?
Hmmm. It wouldn't hurt I guess. The UBL copies the code to the correct address though doesn't it? The copy is not executed and so the code is redundant - or did I miss something?
Nick.

On Wed, Sep 22, 2010 at 10:15 AM, Nick Thompson nick.thompson@ge.com wrote:
On 22/09/10 14:43, Ben Gardiner wrote:
What about removing "#define CONFIG_SKIP_RELOCATE_UBOOT" as in commit ab86f72c354f9b2572340f72b74ca0a258c451bd ?
Hmmm. It wouldn't hurt I guess. The UBL copies the code to the correct address though doesn't it? The copy is not executed and so the code is redundant - or did I miss something?
Yeah, good point. UBL does copy the code to the correct address -- but I also remember that I needed to remove that define in my testing of Heiko's patches on the da850.
I'll get around to testing -next again soon and I'll try with CONFIG_SKIP_RELOCATE_UBOOT defined.
Best Regards, Ben Gardiner
--- Nanometrics Inc. http://www.nanometrics.ca

On 22/09/10 16:07, Ben Gardiner wrote:
On Wed, Sep 22, 2010 at 10:15 AM, Nick Thompson nick.thompson@ge.com wrote:
On 22/09/10 14:43, Ben Gardiner wrote:
What about removing "#define CONFIG_SKIP_RELOCATE_UBOOT" as in commit ab86f72c354f9b2572340f72b74ca0a258c451bd ?
Hmmm. It wouldn't hurt I guess. The UBL copies the code to the correct address though doesn't it? The copy is not executed and so the code is redundant - or did I miss something?
Yeah, good point. UBL does copy the code to the correct address -- but I also remember that I needed to remove that define in my testing of Heiko's patches on the da850.
I'll get around to testing -next again soon and I'll try with CONFIG_SKIP_RELOCATE_UBOOT defined.
No, don't do that. I just did some testing myself. The relocation address is calculated at run time and includes the size of u-boot itself. I got away with it once in my debugger (I was trying to dodge the extra copy), but it broke once I added more code.
You would have to change the UBL on more or less every build of u-boot to skip the copy, which is clearly impractical.
I have removed CONFIG_SKIP_RELOCATE_UBOOT as you suggested and now everything takes care of itself. I've already sent a v2 patch.
Thanks for pointing me in the right direction.
Nick.

On Wed, Sep 22, 2010 at 11:15 AM, Nick Thompson nick.thompson@ge.com wrote:
On 22/09/10 16:07, Ben Gardiner wrote:
On Wed, Sep 22, 2010 at 10:15 AM, Nick Thompson nick.thompson@ge.com wrote:
On 22/09/10 14:43, Ben Gardiner wrote:
What about removing "#define CONFIG_SKIP_RELOCATE_UBOOT" as in commit ab86f72c354f9b2572340f72b74ca0a258c451bd ?
Hmmm. It wouldn't hurt I guess. The UBL copies the code to the correct address though doesn't it? The copy is not executed and so the code is redundant - or did I miss something?
Yeah, good point. UBL does copy the code to the correct address -- but I also remember that I needed to remove that define in my testing of Heiko's patches on the da850.
I'll get around to testing -next again soon and I'll try with CONFIG_SKIP_RELOCATE_UBOOT defined.
No, don't do that. I just did some testing myself. The relocation address is calculated at run time and includes the size of u-boot itself. I got away with it once in my debugger (I was trying to dodge the extra copy), but it broke once I added more code.
Roger. Thanks for saving me the trouble.
participants (2)
-
Ben Gardiner
-
Nick Thompson