[U-Boot] [PATCH] scb9328: Add ARM relocation support
Stefano Babic
sbabic at denx.de
Fri Jun 10 09:24:45 CEST 2011
On 06/10/2011 07:44 AM, Torsten Koschorrek wrote:
> Hello,
Hi Torsten,
send your answer to the ML, too. Someone else can help you ;-)
>> size1 = get_ram_size((volatile void *)SCB9328_SDRAM_1,
>> SCB9328_SDRAM_1_SIZE);
>> #if ( CONFIG_NR_DRAM_BANKS> 1 )
>> size2 = get_ram_size((volatile void *)SCB9328_SDRAM_2,
>> SCB9328_SDRAM_2_SIZE);
>> .....
>>
>> and then:
>> gd->ram_size = size1 + size2 + size3 + size4;
>>
>
> Yes, I thought about it. The thing is, we only have one bank on the
> system. So, dram_init_banksize() needs a cleanup, but that's a problem
> for another cleanup-patch, which will be committed in a next step.
>
> (If it's needed I could do a minor cleanup first...)
You decide. However, the code in the patch is wrong. If you have only
one bank, you could directly simplify your code, I think.
>
>>> /**
>>> diff --git a/include/configs/scb9328.h b/include/configs/scb9328.h
>>> index 3da214e..c610ed1 100644
>>> --- a/include/configs/scb9328.h
>>> +++ b/include/configs/scb9328.h
>>> @@ -127,6 +127,9 @@
>>> #define SCB9328_SDRAM_1 0x08000000 /* SDRAM bank #1 */
>>> #define SCB9328_SDRAM_1_SIZE 0x01000000 /* 16 MB */
>>> +#define CONFIG_SYS_SDRAM_BASE SCB9328_SDRAM_1
>>> +#define CONFIG_SYS_INIT_SP_ADDR SCB9328_SDRAM_1 + 0xf00000
>>
>> In most boards/processors the stack pointer is set to the internal RAM,
>> that is available before the SDRAM controller is activated. When not
>> available, cache can be used. Is there no internal memory available for
>> this processor ? It could be that the stack is used before the SDRAM is
>> initialized, and then it hangs.
>>
>
> I suppose, here is the cause of the hanging problem, yes. While I was
> trying to solve it I saw some board configs which use sdram, too.
Take into account that a lot of new processors set automatically the RAM
controller before u-boot is started. I am thinking to the newer i.MX
processors, but this is true for other architectures, too. And in some
cases u-boot runs as second or third bootloader, such as for at91sam,
davinci and omap, without touching the RAM controller that is already
programmed by the first-stage bootloader. In your case the SDRAM
controller is probably not yet programmed when the stack pointer is set.
> Internal RAM came to my mind, too, but I didn't had the time to
> investigate further.
>
> Unfortunately I have to work on another project today and next week and
> I think I'm not able to solve the hanging problem.
Understood, I tried only to give you some hints where to check ;-)
> Minor fixes (such as
> config.mk) for the above patch should be possible, though.
Ok, agree. Fix first the problem to make MAKEALL happy and build the
board again.
Best regards,
Stefano Babic
--
=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
=====================================================================
More information about the U-Boot
mailing list