On 20.12.18 18:39, Grant Likely wrote:
> Instead of masking out GetVariable() when SetVariable() isn't available
> during runtime services, simplify the requirements without losing the
> ability to read variables by using the RuntimeServicesSupported variable
> from UEFI v2.8.1 (unreleased); Mantis issue 1961.
> 
> Peter Jones's earlier patch also specified a Capsule-on-Disk format for
> updating variables that the OS could store in the ESP. I've not included
> that specification in this patch as it is logically a separate feature.
> It may reappear in a separate patch at a later date, or it may get
> proposed for inclusion in the UEFI spec proper.
> 
> Signed-off-by: Grant Likely <grant.lik...@arm.com>
> Cc: Peter Jones <pjo...@redhat.com>
> ---
>  source/chapter2-uefi.rst | 17 ++++++++++-------
>  1 file changed, 10 insertions(+), 7 deletions(-)
> 
> diff --git a/source/chapter2-uefi.rst b/source/chapter2-uefi.rst
> index 379f0ca..4f74d43 100644
> --- a/source/chapter2-uefi.rst
> +++ b/source/chapter2-uefi.rst
> @@ -201,14 +201,15 @@ variables stored on shared media. [#OPTEESupplicant]_
>  
>  If a platform does not implement modifying non-volatile variables with
>  SetVariable() after ExitBootServices(),
> -then it must not provide any variable operations after ExitBootServices().
> -Firmware shall return EFI_UNSUPPORTED for any call to GetVariable(),
> -GetNextVariableName() and SetVariable().
> -Firmware shall not emulated non-volatile variables using volatile RAM cache.
> +then firmware shall return EFI_UNSUPPORTED for any call to SetVariable(),
> +and must advertise that SetVariable() isn't available during runtime services
> +via the "RuntimeServicesSupported" variable as defined in UEFI version 2.8.1.
> +EFI applications can read RuntimeServicesSupported to determine if calls

UEFI?

> +to SetVariable() need to be performed before calling ExitBootServices().

I think this bit needs a bit more explanation. Something along the lines
"If an OS needs to modify UEFI variables, it can only reliably do so
before ExitBootServices()"?

>  
> -.. note:: The behaviour when SetVariable() is not supported during runtime
> -   services is still under discussion and subject to change.
> -   Do not make any firmware implementation decisions based on this text yet.
> +Even when SetVariable() is not supported during runtime services, firmware
> +should cache variable names and values in EfiRuntimeServicesData memory so
> +that GetVariable() and GetNextVeriableName() can behave as specified.

Please note that this will require work in U-Boot and is currently not
implemented ;).


Alex

_______________________________________________
boot-architecture mailing list
boot-architecture@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/boot-architecture

Reply via email to