[U-Boot] AT91RM9200 relocation

Andrejs Cainikovs AndrejsC at GlobalAutomationSystems.com
Wed Sep 3 23:47:06 CEST 2008


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


More information about the U-Boot mailing list