[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