[PATCH v3 0/3] Implement reset to EDL for qcs9100
Casey Connolly
casey.connolly at linaro.org
Thu Jun 12 12:40:27 CEST 2025
On 6/12/25 12:09, Varadarajan Narayanan wrote:
> On Wed, Jun 11, 2025 at 01:55:32PM +0200, Casey Connolly wrote:
>> Hi Varadarajan,
>>
>> On 5/7/25 09:07, Varadarajan Narayanan wrote:
>>> Using the 'reboot edl' command in Linux, the platform can reboot to the
>>> Emergency Download mode. Implement the same for U-Boot.
>>>
>>> v3: * Introduce a sysreset op that will pass down the 'reset' command
>>> arguments to registered handlers
>>> * Handle 'reset to edl' alone in qcom-psci driver
>>>
>>> v2: * Rebased to recent sources
>>> * Dropped the first patch as it is not applicable anymore
>>> * Bind the new driver from psci driver
>>
>>
>> Sorry for the late reply.
>>
>> This really needs some associated documentation, at least adding the edl arg
>> to doc/usage/cmd/reset.rst and the help output in cmd/boot.c should describe
>> the edl arg if CONFIG_SYSRESET_QCOM_PSCI is enabled.
>
> ok.
>
>>
>> it also doesn't build?
>>
>> ../drivers/sysreset/sysreset-uclass.c: In function 'sysreset_walk_arg':
>> ../drivers/sysreset/sysreset-uclass.c:93:63: error: passing argument 3 of
>> 'sysreset_request_arg' from incompatible pointer type
>> [-Wincompatible-pointer-types]
>> 93 | ret = sysreset_request_arg(dev, argc, argv);
>> | ^~~~
>> | |
>> | char * const*
>> ../drivers/sysreset/sysreset-uclass.c:35:69: note: expected 'const char **'
>> but argument is of type 'char * const*'
>> 35 | int sysreset_request_arg(struct udevice *dev, int argc, const char
>> *argv[])
>
> ok.
>
>> ignoring that for a sec, I'm a bit worried still about how this behaves on
>> boards that don't implement this psci call, on sdm845 for example we just
>> hang.
>>
>> I think psci_system_reset2() should be adjusted to time out (though I can't
>> imagine a psci implementation that would return execution to el1 during the
>> reset, so maybe the timeout isn't even needed?) and return an error if the
>> reset didn't happen.
>
> Would checking if the system-reset2 function is implemented in PSCI and
> handling appropriately similar to [1] be ok? Please let me know.
>
Yeah that looks good.
>> Then qcom_psci_sysreset_request_arg() should print some useful error message
>> ("reset2 not supported on this platform, reset to edl failed") and bubble up
>> the error code to abort the reset entirely.
>
> If the function is not implemented will print a message and bubble up
> -EPROTONOSUPPORT.
Makes sense. Thanks!>
> 1 - https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/firmware/psci/psci.c#n554
>
> Thanks
> Varada
--
Casey (she/they)
More information about the U-Boot
mailing list