On 25/09/2018 11:08, Udit Kumar wrote:
Hi Grant
-----Original Message----- From: arm.ebbr-discuss-bounces@arm.com <arm.ebbr-discuss- bounces@arm.com> On Behalf Of Grant Likely Sent: Monday, September 24, 2018 7:24 PM To: boot-architecture@lists.linaro.org; arm.ebbr-discuss@arm.com Cc: nd@arm.com Subject: [Arm.ebbr-discuss] [PATCH 5/7] Refactor ResetSystem() requirements
ResetSystem() was over-specified in the document. UEFI already documents the behaviour of ResetSystem() sufficiently. Add notes on expected behaviour when platform specific or standard interface methods are available.
Resolves: #29 Signed-off-by: Grant Likely grant.likely@arm.com
source/chapter2-uefi.rst | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-)
diff --git a/source/chapter2-uefi.rst b/source/chapter2-uefi.rst index 239fd8c..a6b3ff7 100644 --- a/source/chapter2-uefi.rst +++ b/source/chapter2-uefi.rst @@ -158,23 +158,18 @@ and the OS must use a device driver to control the RTC. UEFI Reset and Shutdown
-The UEFI Runtime service ResetSystem() must implement the following commands, -for purposes of power management and system control.
-- EfiResetCold() -- EfiResetShutdown()
- EfiResetShutdown must not reboot the system.
-If firmware updates are supported through the Runtime Service of - UpdateCapsule(), then ResetSystem() might need to support the following -command:
-- EfiWarmReset()
-.. note:: On platforms implementing the Power State Coordination Interface
- specification [PSCI]_, it is still required that EBBR compliant
- Operating Systems calls to reset the system will go via Runtime Services
- and not directly to PSCI.
+ResetSystem() is required to be implemented in boot services, but it is +optional for runtime services.
You meant, noefi to passed here to OS. or do you mean, ResetSystem passed in runtime service to be NULL. or you mean, ResetSystem() to be implemented and it can return error. Thanks to clarify.
I'm building on the language added in the next patch (I wrote everything at once, and then split into separate patches). In the next patch I make it clear that all runtime services functions need to be implmented.
From patch 6:
+Functions contained in EFI_RUNTIME_SERVICES are expected to be available +during both boot services and runtime services. +However, it isn't always practical for all EFI_RUNTIME_SERVICES functions +to be callable during runtime services due to hardware limitations. +If any EFI_RUNTIME_SERVICES functions are only available during boot services +then firmware shall provide the global `RuntimeServicesAvailable` variable to +indicate which functions are available during runtime services. +Functions that are not available during runtime services shall return +EFI_UNSUPPORTED.
Is that clear enough?
g.