On 7/11/2025 4:17 AM, Rob Herring wrote: > On Thu, Jul 10, 2025 at 02:45:44PM +0530, Shivendra Pratap wrote: >> Update the reboot-mode binding to support an optional cookie >> value in mode-<cmd> properties. The cookie is used to supply >> additional data for reboot modes that accept two arguments. >> >> Signed-off-by: Shivendra Pratap <shivendra.pratap@xxxxxxxxxxxxxxxx> >> --- >> .../devicetree/bindings/power/reset/reboot-mode.yaml | 12 +++++++----- >> 1 file changed, 7 insertions(+), 5 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml b/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml >> index 3ddac06cec7277789b066d8426ea77d293298fac..a4d2fe1db51e0c1f34ebefddaad82b8cc0b1b34a 100644 >> --- a/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml >> +++ b/Documentation/devicetree/bindings/power/reset/reboot-mode.yaml >> @@ -10,14 +10,15 @@ maintainers: >> - Andy Yan <andy.yan@xxxxxxxxxxxxxx> >> >> description: | >> - This driver get reboot mode arguments and call the write >> - interface to store the magic value in special register >> - or ram. Then the bootloader can read it and take different >> - action according to the argument stored. >> + This driver gets reboot mode arguments and calls the write >> + interface to store the magic and an optional cookie value >> + in special register or ram. Then the bootloader can read it >> + and take different action according to the argument stored. >> >> All mode properties are vendor specific, it is a indication to tell >> the bootloader what to do when the system reboots, and should be named >> - as mode-xxx = <magic> (xxx is mode name, magic should be a non-zero value). >> + as mode-xxx = <magic cookie> (xxx is mode name, magic should be a >> + non-zero value, cookie is optional). > > I don't understand the distinction between magic and cookie... Isn't all > just magic values and some platform needs more than 32-bits of it? Need two different arguments. Will try to clarify a bit below. PSCI defines SYSTEM_RESET2 vendor-specific resets which takes two parameters - reset_type and cookie. Both parameters are independent and used by firmware to define different types of resets or shutdown. As per spec: reset_type: Values in the range 0x80000000-0xFFFFFFFF of the reset_type parameter can be used to request vendor-specific resets or shutdowns. cookie: the cookie parameter can be used to pass additional data to the implementation. Now to implement SYSTEM_RESET2 vendor-specific resets using reboot-mode driver, we will need two separate arguments. reboot-mode already defines a magic, which will be used as reset_type. For the second parameter requirement of SYSTEM_RESET2, we add support for additional argument cookie. > >> >> For example, modes common Android platform are: >> - normal: Normal reboot mode, system reboot with command "reboot". >> @@ -45,5 +46,6 @@ examples: >> mode-recovery = <1>; >> mode-bootloader = <2>; >> mode-loader = <3>; >> + mode-edl = <1 2>; >> }; >> ... >> >> -- >> 2.34.1 >>