[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