[U-Boot] [PATCH v3 1/4] mips: add base support for atheros ath79 based SOCs

Wills Wang wills.wang at live.com
Sun Dec 27 14:17:10 CET 2015



On 12/27/2015 07:37 PM, Daniel Schwierzeck wrote:
>
> Am 27.12.2015 um 12:04 schrieb Marek Vasut:
>> On Sunday, December 27, 2015 at 11:18:25 AM, Wills Wang wrote:
>>> On 12/27/2015 06:09 PM, Marek Vasut wrote:
>>>> On Sunday, December 27, 2015 at 09:07:36 AM, Wills Wang wrote:
>>>>> On 12/27/2015 03:38 PM, Marek Vasut wrote:
>>>>>> On Sunday, December 27, 2015 at 08:33:26 AM, Wills Wang wrote:
>>>>>>> On 12/27/2015 02:37 AM, Marek Vasut wrote:
>>>>>>>> On Saturday, December 26, 2015 at 07:29:51 PM, Wills Wang wrote:
>>>>>>>>> WASP is ar9341.
>>>>>>>> Please do not top post.
>>>>>>>>
>>>>>>>> Did you try if the memory is accessible on your platform ? AR9331 I
>>>>>>>> have here has the SRAM at 0xbd007000 , just like that machine in [1]
>>>>>>>> .
>>>>>>> I found there is a memory segment at 0xbd000000...0xbd007fff. it's
>>>>>>> independent of DDR physical memory, can be read and wrote, but
>>>>>>> hardware can't boot up if don't execute lowlevel_init.S when define
>>>>>>> CONFIG_SYS_INIT_SP_ADDR=0xbd007000 to set C stack into SRAM.
>>>>>> Stack grows down, so of course if you put stack at the beginning of
>>>>>> SRAM, that cannot work ;-) Put it at the end , 0xbd008000.
>>>>> This memory segment was mapped circularly at 0xbd000000...0xbdffffff.
>>>> So is this area at 0xbd008000 usable for stack or not ?
>>> Same times board can boot up, but in a very unstable. i use the
>>> following setting:
>>>
>>> #define CONFIG_SYS_INIT_RAM_ADDR    0xbd000000
>> Should be 0xbd007000
>>
>>> #define CONFIG_SYS_INIT_RAM_SIZE    (32 * SZ_1K)
>> Should be 4 KiB large.
>>
>>> #define CONFIG_SYS_INIT_SP_OFFSET \
>>>       (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
>>> #define CONFIG_SYS_INIT_SP_ADDR \
>>>       (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
>> Did you investigate why the board has problems ?
>>
> according to the description above by Wills those three defines setup
> the values correctly for start.S:
>
> #define CONFIG_SYS_INIT_RAM_ADDR    0xbd000000
> #define CONFIG_SYS_INIT_RAM_SIZE    (32 * SZ_1K)
> #define CONFIG_SYS_INIT_SP_ADDR \
>          (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_RAM_SIZE)
>
> The stack pointer will then be set to the end of the SRAM area with a 16
> Byte alignment. The resulting address should be 0xbd007ff0. From this
> address, the size of gd_t and CONFIG_SYS_MALLOC_F_LEN will be
> subtracted. The remaining space is available for the initial stack.
>
> Which value did you chose for CONFIG_SYS_MALLOC_F_LEN? It must be big
> enough to satisfy all malloc requests by the DM stack and small enough
> to fit in 32k minus stack size and gd_t size.
>
> Important note: do net set CONFIG_SKIP_LOWLEVEL_INIT yet because that
> leaves you without initialized RAM or caches. If the setup does not work
> yet, you likely need to init some extra bits to make the SRAM working.
>
#define CONFIG_SYS_MALLOC_F_LEN 0x2000
I don't set CONFIG_SKIP_LOWLEVEL_INIT

-- 
Best Regards
Wills



More information about the U-Boot mailing list