[U-Boot] SoCFPGA PL330 DMA driver and ECC scrubbing
Marek Vasut
marex at denx.de
Wed Jul 11 08:55:35 UTC 2018
On 07/11/2018 05:11 AM, Jason Rush wrote:
[...]
>>>>> However, if I press the HPS_RST push button on the SoCKit (which is connected
>>>>> to power on reset), occasionally U-Boot will lock up while booting. It always
>>>>> boots and operates correctly from the initial power on, but it almost always
>>>>> fails to boot after pressing the HPS_RST button.
>>>>>
>>>>> Usually after pressing the HPS_RST button, U-Boot makes it past the SPL, and
>>>>> hangs somewhere after the call to setup_reloc() in ./common/board_f.c. Once
>>>>> it hangs there, pressing the HPS_RST button again usually causes the SPL to
>>>>> hang while setting up the MMU (before my call to memset). Eventually the
>>>>> WDT kicks in, and it just keeps hanging up in the same place. Once it gets in
>>>>> this mode, the only way to recover it is by toggling power on the board.
>>>>>
>>>>> I spent a bunch of time today trying to track down where it was hanging, but
>>>>> I couldn't pin point anything. The MMU tables looked correct. The MMU
>>>>> registers looked good. I'm not sure the best way to debug what's going on.
>>>> Try triggering warm reset and cold reset via the reset register:
>>>>
>>>> mw 0xffd05004 1
>>>> mw 0xffd05004 2
>>>>
>>>> Does it hang in one case and not in the other ?
>>>>
>>> It hangs in both cases.
>>>
>>> I did find that if I do not metset the last 1MiB of DRAM with the cache on,
>>> both warm and cold resets work.
>>>
>>> I changed the ecc scrubbing to zero out the first 0x8000 bytes and the last
>>> 0x10000 bytes before the MMU is setup and I enable dcache. Then with
>>> the dcache enabled, I zero out the rest of memory. The resets work in this
>>> case as well. So there seems to be some side effect of clearing out the
>>> relocate address space with the cache on.
>> Can you investigate ?
>>
> I'd be happy to investigate more, but I'm not really sure what
> my next step should be.
>
> Something appears to be happening differently when U-Boot
> relocates if the dcache is on. But don't know how to track it
> down.
IIRC I disabled cache after scrubbing.
> I was thinking I might dump the DRAM where U-Boot relocates
> to both with the dcache on and off, and see if there are any
> differences. I'm not really sure what that tells me though if I
> find a difference.
>
> Any suggestions?
>
> Regards,
> Jason
>
--
Best regards,
Marek Vasut
More information about the U-Boot
mailing list