Re: [PATCH 1/2] Documentation: ABI: Add sysfs-class-reboot-mode-reboot_modes
From: Bjorn Andersson
Date: Mon Nov 17 2025 - 15:43:57 EST
On Sun, Nov 16, 2025 at 07:44:24PM +0200, Dmitry Baryshkov wrote:
> On Sun, Nov 16, 2025 at 08:49:47PM +0530, Shivendra Pratap wrote:
> > Add ABI documentation for /sys/class/reboot-mode/*/reboot_modes, a
> > read-only sysfs attribute exposing the list of supported reboot-mode
> > arguments. This file is created by reboot-mode framework and provides a
> > user-readable interface to query available reboot-mode arguments.
> >
> > Reviewed-by: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxx>
> > Signed-off-by: Shivendra Pratap <shivendra.pratap@xxxxxxxxxxxxxxxx>
> > ---
> > .../testing/sysfs-class-reboot-mode-reboot_modes | 39 ++++++++++++++++++++++
> > 1 file changed, 39 insertions(+)
> >
> > diff --git a/Documentation/ABI/testing/sysfs-class-reboot-mode-reboot_modes b/Documentation/ABI/testing/sysfs-class-reboot-mode-reboot_modes
> > new file mode 100644
> > index 0000000000000000000000000000000000000000..28280ffe9bf962ef9d2136ea5d7c6aef77c4bd34
> > --- /dev/null
> > +++ b/Documentation/ABI/testing/sysfs-class-reboot-mode-reboot_modes
> > @@ -0,0 +1,39 @@
> > +What: /sys/class/reboot-mode/<driver>/reboot_modes
> > +Date: November 2025
> > +KernelVersion: 6.18.0-rc5
> > +Contact: linux-pm@xxxxxxxxxxxxxxx
> > + Description:
> > + This interface exposes the reboot-mode arguments
> > + registered with the reboot-mode framework. It is
> > + a read-only interface and provides a space
> > + separated list of reboot-mode arguments supported
> > + on the current platform.
> > + Example:
> > + recovery fastboot bootloader
> > +
> > + The exact sysfs path may vary depending on the
> > + name of the driver that registers the arguments.
> > + Example:
> > + /sys/class/reboot-mode/nvmem-reboot-mode/reboot_modes
> > + /sys/class/reboot-mode/syscon-reboot-mode/reboot_modes
> > + /sys/class/reboot-mode/qcom-pon/reboot_modes
>
> This part is obvious, isn't it?
>
> > +
> > + The supported arguments can be used by userspace
> > + to invoke device reset using the reboot() system
> > + call, with the "argument" as string to "*arg"
> > + parameter along with LINUX_REBOOT_CMD_RESTART2.
> > + Example:
> > + reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2,
> > + LINUX_REBOOT_CMD_RESTART2, "bootloader");
>
> So, does one need to write a tool for invoking reboot with the corerct
> set of args?
Here's an implementation of such tool
https://github.com/systemd/systemd/blob/main/src/shared/reboot-util.c#L80
Many other implementations of reboot provides the same.
> If we are adding a sysfs interface, wouldn't it be logical
> to also add another sysfs file, setting the argument?
>
The inclusion of the example indicates that we need to expose it in an
accessible form, but I don't think we should, as it's already a
widespread standard interface.
As such, I don't think the example adds any value, but it would be
valuable to clarify that this is a standard interface.
Regards,
Bjorn
> > +
> > + A driver can expose the supported arguments by
> > + registering them with the reboot-mode framework
> > + using the property names that follow the
> > + mode-<argument> format.
> > + Example:
> > + mode-bootloader, mode-recovery.
> > +
> > + This attribute is useful for scripts or initramfs
> > + logic that need to programmatically determine
> > + which reboot-mode arguments are valid before
> > + triggering a reboot.
> >
> > --
> > 2.34.1
> >
>
> --
> With best wishes
> Dmitry