Re: [PATCH 2/2] ARM: dts: imx6: pfla02: Fix SD card reboot problem

From: Ahmad Fatoum
Date: Wed Jul 12 2023 - 04:54:42 EST


Hello Andrej,

On 07.07.23 11:28, Andrej Picej wrote:
>
>
> On 5. 07. 23 14:06, Ahmad Fatoum wrote:
>> On 05.07.23 12:39, Andrej Picej wrote:> On 5. 07. 23 10:40, Andrej Picej wrote:
>>>> On 5. 07. 23 10:30, Ahmad Fatoum wrote:
>>>>> On 05.07.23 10:28, Andrej Picej wrote:
>>>>>> I think the main reason for a failed boot is that the PMIC doesn't get reset and that the bootloader doesn't specifically enable the SD card regulator.
>>>>>>
>>>>>> Could this patch still be applied or should we put the fix in reset routine/bootloader?
>>>>>
>>>>> Is SD-Card not main boot medium? From your description, I thought BootROM
>>>>> will fail to boot before bootloader has a chance to do anything about it.
>>>>>
>>>>
>>>> Yes sorry, you are absolutly right, the BootROM fails. It confused me because I could see the booloader booting, but it was from one of the fallback mediums. So I guess fixing the bootloader is not really an option.
>>>> Sorry for the confusion.
>>>>
>>>
>>> Ok, the main problem is well known, that's why PHYTEC disables the imx watchdog and uses a PMIC one for the reboot handler. This one resets the board completely. The SD card regulator problem is really just the manifestation of that bug. Unfortunately I didn't noticed that. :(
>>>
>>> I will create a v2 with a proper fix, where imx watchdog gets disabled.
>>
>> I'd be wary about solving it this way at the DTSI level, because it can
>> break existing users:
>>
>>    - Boot flow depends on reading boot reason, but with PMIC reset, everything
>>      is power-on reset
>>
>>    - Bootloader starts i.MX watchdog, but new kernel will service only
>>      PMIC watchdog leading to system reset
>>
>>    - Even if updating bootloader and kernel together, fallback of kernel
>>      may end up that bootloader uses PMIC watchdog, but kernel uses i.MX
>>      watchdog
>>
>>    - There can be valid reasons to use both watchdogs and disabling
>>      one at the SoM level breaks that
>> > I had a similar issue once (Board controller reset to be used instead
> of SoC
>> reset) and settled on using the barebox watchdog-priority/restart-priority[1]
>> binding to select the "better" watchdog and then fixed up this choice into
>> the kernel command line (barebox CONFIG_SYSTEMD_OF_WATCHDOG).
>>
>> If you decide to fix it for the evaluation kits, please add some text
>> into the commit message that this fix should not be backported to older kernels.
>> While it's ultimately the correct thing to do, changing this is IMO not stable
>> backport material.
>>
>> [1]: FWIW, there was past discussion about adding restart priorities to Linux, e.g.
>> https://lore.kernel.org/all/20201006102949.dbw6b2mrgt2ltgpw@xxxxxxxxxxxxxx/
>
> Ok I see the problems this might raise. Nevertheless I think it would be good to sync upstream and PHYTEC downstream dts with this fix. Since by default imx watchdog reset is really a no-go with phyFLEX.

What does downstream do? Might've been useful to note in the commit message,
especially if there's an erratum.

> We could add the aliases for the watchdogs, marking the PMIC watchdog as watchdog0, and imx watchdog as watchdog1 which I think should tell the kernel to use the PMIC reboot handler, but not really sure how is that any better then disabling the imx watchdog.

Restart priority is set by watchdog_set_restart_priority and both
da906[23] and i.MX watchdog set the same value of 128 here. Might
be worthwhile to increase PMIC over i.MX watchdog priority to ensure
it's taken instead.

> Why do you think this shouldn't be backported to older kernels? Because
> someone might use this with "not compatible" bootloader?

Yes. Selecting a different watchdog is IMO not something that should
come in via a stable update.

Cheers,
Ahmad

>
> Thanks for your help,
> Andrej
>
>>
>> Cheers,
>> Ahmad
>>
>>>
>>> Thanks for your help,
>>> Andrej
>>>
>>>
>>>>
>>>>>>
>>>>>> Best regards,
>>>>>> Andrej
>>>>>>
>>>>>>>
>>>>>>> Regards,
>>>>>>>      Marco
>>>>>>>
>>>>>>>>                 };
>>>>>>>>                   vdd_sd1_reg: ldo10 {
>>>>>>>> -- 
>>>>>>>> 2.25.1
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>
>>
>

--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |