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 | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-)
diff --git a/source/chapter2-uefi.rst b/source/chapter2-uefi.rst index 0cbddff..8a3ff1a 100644 --- a/source/chapter2-uefi.rst +++ b/source/chapter2-uefi.rst @@ -175,23 +175,16 @@ 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. +During runtime services, the operating system should first attempt to +use ResetSystem() to reset the system. +If ResetSystem() returns EFI_UNSUPPORTED, then the OS may fall back to +an architecture or platform specific mechanism. + +On AArch64 platforms implementing [PSCI]_, +if ResetSystem() is not implemented then the Operating System should fall +back to making a PSCI call to reset or shutdown the system.
Runtime Variable Access -----------------------