[PATCH 0/6] drivers: sysreset: revert support for args

Casey Connolly casey.connolly at linaro.org
Fri Jul 3 14:27:39 CEST 2026


Hi Quentin,

On 7/2/26 20:27, Quentin Schulz wrote:
> The args support for the sysreset uclass contains a logic bug. The first
> sysreset device implementing the request_arg callback will consume the
> args, not support the specified arg and thus return -EPROTONOSUPPORT
> which will stop the iteration over all sysreset devices.
> 
> This is an issue if one has multiple sysreset devices and each with
> support for different (valid) args. If a sysreset device implements a
> -dummy argument and another -foo and one calls reset -dummy on the
> U-Boot CLI, it'll depend on which sysreset device will be attempted
> first. If it is the one implementing -foo, it'll return it doesn't
> support the argument with -EPROTONOSUPPORT in which case the device
> implementing -dummy will never be attempted and instead we'll do a cold
> reset which is very likely not what's expected.
> 
> I suggest to either add an additional return code for the case where the
> sysreset device knows it isn't supposed to handle this argument because
> it isn't among the ones it supports, and thus we try other sysreset
> devices until we find one that says it tried and either is in progress
> or couldn't realize the request, or no sysreset device supports this
> argument and we end up doing a cold reset (but should we even try to do
> a cold reset if the type of reset requested by the user isn't
> supported?). Or just don't try piggy-backing on the reset command and
> have a new command instead?
> 
> Maybe I misunderstood something or misread the code, so please correct
> me if I'm wrong.
> 
> We've tried bringing up this issue multiple times over the last
> month[1][2][3] but it seems like we're left on read. This is the last
> resort to get attention on this patches, hopefully we don't have to get
> through a revert a few days before the release though there is only two
> working days left before the release. Sending a revert as requested by
> Tom[4].

I'm so sorry I missed this feedback. That really isn't great.

I'm with you that this is a pretty fundamental issue with the 
implementation here and I think the best course of action is to revert 
it and come up with a more suitable approach that isn't so open to 
trivial logic bugs like this, likely with some deeper refactoring of 
sysreset/reboot-mode code in U-Boot.

In hindsight I think I should have pushed back harder on this 
implementation, this is something I'll be more cautious of in the future.

Acked-by: Casey Connolly <casey.connolly at linaro.org>

I don't have a chance today to test this today as I'm OOO but if it 
doesn't break other platforms then it ought to be fine on Qualcomm too, 
maybe Neil can give it a spin on 8650.

Tom: feel free to pick this up if you're happy with it.

Thanks,
// Casey

> 
> I've not even build tested this, only had a cursory look at what to
> revert so maybe I'm missing some patches or breaking stuff up. It's late
> here and I wanted to give a chance to people in Americas to have a look
> at this today, or people in Asia tomorrow morning before I come to the
> office. I don't have time to wait for the CI to complete, but it's
> running here: https://source.denx.de/u-boot/contributors/qschulz/u-boot/-/pipelines/30604
> Yes the commit hash is different, I rewrote this cover letter to include
> the link to the CI pipeline.
> 
> [1] https://lore.kernel.org/all/667ec81b-da7f-4b10-b1ae-45e578cd9d54@cherry.de/
> [2] https://lore.kernel.org/all/4fc15188-3de9-4345-85e9-d594efe9bdd5@cherry.de/
> [3] https://lore.kernel.org/all/20260623165021.GJ382693@bill-the-cat/
> [4] https://lore.kernel.org/all/20260702174613.GC749385@bill-the-cat/
> 
> Signed-off-by: Quentin Schulz <quentin.schulz at cherry.de>
> ---
> Quentin Schulz (6):
>        Revert "qcom_defconfig: enable psci based sysreset"
>        Revert "cmd: boot: fix edl being shown when not supported"
>        Revert "doc: usage: cmd: reset: specify when the -edl option is available"
>        Revert "cmd: boot: Add '-edl' option to reset command documentation"
>        Revert "sysreset: Implement PSCI based reset to EDL mode for QCOM SoCs"
>        Revert "drivers: sysreset: Add sysreset op that can take arguments"
> 
>   cmd/boot.c                            |  6 -----
>   configs/qcom_defconfig                |  2 --
>   doc/usage/cmd/reset.rst               | 10 +-------
>   drivers/firmware/psci.c               |  4 ----
>   drivers/sysreset/Kconfig              | 15 ------------
>   drivers/sysreset/Makefile             |  1 -
>   drivers/sysreset/sysreset-uclass.c    | 37 ----------------------------
>   drivers/sysreset/sysreset_qcom-psci.c | 45 -----------------------------------
>   include/sysreset.h                    | 18 --------------
>   9 files changed, 1 insertion(+), 137 deletions(-)
> ---
> base-commit: f605dcee103c897b6f1a8873549a36949bd4e2a1
> change-id: 20260702-revert-sysreset-4579ae458f2e
> 
> Best regards,
> --
> Quentin Schulz <quentin.schulz at cherry.de>
> 



More information about the U-Boot mailing list