
Pardon, appearantly this stopped working somewhere between 1.3.2 and 1.3.4. Now I am able to load only from ram. 1.3.2 works fine, though.
Regards, Andrejs Cainikovs.
Andrejs Cainikovs wrote:
Nicolas,
I faced the similar problem before. Playing around with CONFIG_SKIP_RELOCATE_UBOOT and others don't gived any results.. The only result was that you should change define you mentioned every time when compiling for flash or ram. This has fixed my problem:
--- a/cpu/arm920t/start.S 2008-09-03 10:50:21.000000000 +0300 +++ b/cpu/arm920t/start.S 2008-05-19 15:22:00.000000000 +0300 @@ -261,11 +261,10 @@ * find a lowlevel_init.S in your board directory. */ mov ip, lr -#if defined(CONFIG_AT91RM9200DK) || defined(CONFIG_AT91RM9200EK) || defined(CONFIG_AT91RM9200DF)
-#else
bl lowlevel_init
-#endif
adr r0, _start /* r0 <- current position of
code */
ldr r1, _TEXT_BASE /* test if we run from flash or
RAM */
cmp r0, r1 /* don't init during
debug */
blne lowlevel_init mov lr, ip mov pc, lr
#endif /* CONFIG_SKIP_LOWLEVEL_INIT */
Regards, Andrejs Cainikovs.
NĂcolas Carneiro Lebedenco wrote:
Hi,
I'm porting u-boot to a custom board based on the at91rm9200-dk (only exception is that only parallel nor flash is available on my board)
Soon I realized that I could load u-boot 1.1.4 from flash but not u-boot 1.3.4. It really bugged me until I noticed some differences in cpu/arm920t/start.S and came across this patch "Fix regression introduced by a typo in 'Tidied other..." introduced by Guennadi Liakhovetski in the main branch on 2008-04-18 as follows:
diff --git a/cpu/arm920t/start.S b/cpu/arm920t/start.S index ae86002..acc00ad 100644 (file)
--- a/cpu/arm920t/start.S +++ b/cpu/arm920t/start.S @@ -178,7 +178,7 @@ copyex: bl cpu_init_crit #endif
-#ifdef CONFIG_AT91RM9200 +#ifndef CONFIG_AT91RM9200
#ifndef CONFIG_SKIP_RELOCATE_UBOOT relocate: /* relocate U-Boot to RAM */ --
The point is I can only get u-boot to load from nor flash if I remove the #ifndef condition. So what was the reason behind this patch after all. Is the relocation supposed to take place somewhere else? Maybe someone has already pointed that out and got it fixed in the main branch?
Regards,
NĂcolas