[U-Boot] AT91RM9200 relocation

Andrejs Cainikovs AndrejsC at GlobalAutomationSystems.com
Wed Sep 3 10:16:41 CEST 2008


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
>
>
>
>
>
>
>
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>   


More information about the U-Boot mailing list