[U-Boot] [PATCH] arm: socfpga: dm: Fix DM initialization failure after warm reset
Jian Luo
Jian.Luo4 at boschrexroth.de
Tue Sep 22 14:26:47 CEST 2015
Hi Dinh, Hi Marek,
any updates on this issue?
Best regards,
Jian Luo
On 04.09.2015 16:32, Marek Vasut wrote:
> On Friday, September 04, 2015 at 04:26:46 PM, Simon Glass wrote:
>> On 4 September 2015 at 08:25, Marek Vasut <marex at denx.de> wrote:
>>> On Friday, September 04, 2015 at 04:16:21 PM, Simon Glass wrote:
>>>> Hi,
>>>>
>>>> On 4 September 2015 at 01:36, Jian Luo <Jian.Luo4 at boschrexroth.de>
wrote:
>>>>> Hi Simon,
>>>>>
>>>>> On 04.09.2015 02:23, Simon Glass wrote:
>>>>>> Hi,
>>>>>>
>>>>>> On 3 September 2015 at 05:14, Marek Vasut <marex at denx.de> wrote:
>>>>>>> On Thursday, September 03, 2015 at 01:12:03 PM, Jian Luo wrote:
>>>>>>>> On 03.09.2015 12:46, Marek Vasut wrote:
>>>>>>>> > On Thursday, September 03, 2015 at 12:17:13 PM, Jian Luo wrote:
>>>>>>>> >
>>>>>>>> > Hi!
>>>>>>>> >
>>>>>>>> > [...]
>>>>>>>> >
>>>>>>>> >> >> Yes, I can. But U-Boot can still have problem with other
>>>>>>>> >> >> Image which disables ECC.
>>>>>>>> >> >> I found another post related to this problem
>>>>>>>> >> >> https://lkml.org/lkml/2015/2/6/685 .
>>>>>>>> >> >>
>>>>>>>> >> >> Quote: To initialize ECC, the OCRAM needs to enable
>>>>>>>> >> >> ECC
>>>>>>>>
>>>>>>>> then clear
>>>>>>>>
>>>>>>>> >> >> the entire
>>>>>>>> >> >>
>>>>>>>> >> >> memory to zero before using it.
>>>>>>>> >>
>>>>>>>> >> Hi!
>>>>>>>> >>
>>>>>>>> >> > Oh, but that is a problem, since we're running from the
>>>>>>>> >> > OCRAM
>>>>>>>>
>>>>>>>> ourselves,
>>>>>>>>
>>>>>>>> >> > thus we cannot clear the OCRAM. Maybe we should
>>>>>>>> >> > force-disable the ECC instead? But can we be sure that the
>>>>>>>> >> > corruption does not
>>>>>>>>
>>>>>>>> happen
>>>>>>>>
>>>>>>>> >> > when you disable ECC ?
>>>>>>>> >>
>>>>>>>> >> Yes, that will be a problem. It's also why I let the
>>>>>>>> >> SYSMGR_ECC_OCRAM_EN bit intact in the patch.
>>>>>>>> >
>>>>>>>> > OK, but what about turning the ECC off in the SPL, will that
>>>>>>>> > also
>>>>>>>>
>>>>>>>> introduce
>>>>>>>>
>>>>>>>> > corruption or not ? That might be the right fix, no ?
>>>>>>>>
>>>>>>>> Hi Marek,
>>>>>>>>
>>>>>>>> Sorry, I don't know the detail of ECC implementation in socfpga.
>>>>>>>> Dinh might have the answer to that.
>>>>>>>>
>>>>>>>> Anyhow I still think let the setting untouched is the safest fix.
>>>>>>>> SPL should use the same ECC setting which BROM loads SPL with.
>>>>>>>
>>>>>>> That's right, but I'd also like to have this bit in some defined
>>>>>>> state from the boot instead of having this in some random setting.
>>>>>>> Dinh, can you comment on this corruption please ?
>>>>>>
>>>>>> Also I'm still a bit confused.
>>>>>>
>>>>>> The code in crt0.S zeroes global_data so how can it be non-zero a
>>>>>> little later in board_init_f()?
>>>>>
>>>>> board_init_f() enables the ECC of the SRAM regardless its previous
>>>>> state. If ECC is disabled beborehand, re-enabling it can cause SRAM
>>>>> misreading.
>>>>
>>>> OK thanks. It might be possible to do this earlier, say in
>>>> cpu_init_crit().
>>>
>>> You cannot enable the bit, because it'd corrupt your OCRAM and your
code
>>> is running from the OCRAM, thus you'd be susceptible to corrupting the
>>> code you're running itself :(
>>
>> Oh joy. Well anyway I think this is a chip-specific problem and there
>> is nothing wrong in general with the current init process.
>
> That's absolutelly correct.
>
> I'd like to hear Dinh's opinion on this, because this seems quite
important.
More information about the U-Boot
mailing list