Re: [Query] How to pass reboot arguments to secure firmware with PSCI spec

From: Sudeep Holla
Date: Fri Aug 01 2014 - 09:59:50 EST




On 01/08/14 12:02, Jisheng Zhang wrote:
Hi Sudeep,

On Fri, 1 Aug 2014 03:21:12 -0700
Sudeep Holla <sudeep.holla@xxxxxxx> wrote:



On 01/08/14 11:06, Jisheng Zhang wrote:
Hi Catalin and Will,

I noticed that the following commit implement reboot via. PSCI
SYSTEM_RESET function. So my question is how to handle the reboot
arguments?


What reboot arguments do you want to handle ?

man 2 reboot

...

int reboot(int magic, int magic2, int cmd, void *arg);

...

I want to pass "void *arg" to secure firmware.



Why ? What will secure firmware do with that ? I can't think of any
use of those arguments in the secure firmware esp. the example you have
given below. Why should secure firmware know that you are booting in
recovery mode.

And you can't do that with PSCI, the specification has no provisions
and if do that it's violation.



static void psci_sys_reset(enum reboot_mode reboot_mode, const char *cmd)
{
invoke_psci_fn(PSCI_0_2_FN_SYSTEM_RESET, 0, 0, 0);

How to pass cmd to secure firmware?


What cmd do you want to pass ? The function id is already handled. What
else do you want to pass ?

the "const char *cmd", usually this is the "abc" if user type "reboot abc"
under shell.

For example, android usually type "reboot recovery", the "recovery" will be
passed to next boot kernel boot args.


How did you had manage to pass these information in absence of
PSCI(i..e. other methods) ?

IIUC it's typically write to non-volatile memory indicating the reboot
reason(at-least in Android devices) through some reboot notifiers.

You can still do that now even with PSCI right ?

Yes

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/