[PATCH v3 0/3] Implement reset to EDL for qcs9100

Casey Connolly casey.connolly at linaro.org
Wed Jun 11 13:55:32 CEST 2025


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.

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[])

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.

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.

Kind regards,

> 
> 
> Varadarajan Narayanan (3):
>    drivers: sysreset: Add sysreset op that can take arguments
>    sysreset: Implement PSCI based reset to EDL mode for QCOM SoCs
>    configs: qcs9100_defconfig: Enable SYSRESET
> 
>   configs/qcs9100_defconfig             |  2 ++
>   drivers/firmware/psci.c               |  4 +++
>   drivers/sysreset/Kconfig              |  6 ++++
>   drivers/sysreset/Makefile             |  1 +
>   drivers/sysreset/sysreset-uclass.c    | 32 +++++++++++++++++++++
>   drivers/sysreset/sysreset_qcom-psci.c | 40 +++++++++++++++++++++++++++
>   include/sysreset.h                    | 18 ++++++++++++
>   7 files changed, 103 insertions(+)
>   create mode 100644 drivers/sysreset/sysreset_qcom-psci.c
> 

-- 
Casey (she/they)



More information about the U-Boot mailing list