[PATCH 0/6] drivers: sysreset: revert support for args
Simon Glass
sjg at chromium.org
Thu Jul 2 21:22:22 CEST 2026
Hi Quentin,
On Thu, 2 Jul 2026 at 19:27, Quentin Schulz <foss+uboot at 0leil.net> 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'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
Given the timing, I suppose a revert. Apart from what is mentioned
here, passing argc/argv directly from a command to a driver seems
wrong to me, so I think the new series should use a new reset type
instead.
Regards,
SImon
>
> Best regards,
> --
> Quentin Schulz <quentin.schulz at cherry.de>
>
More information about the U-Boot
mailing list