On 25/09/2018 11:08, Udit Kumar wrote:
Hi Grant

-----Original Message-----
From: arm.ebbr-discuss-boun...@arm.com <arm.ebbr-discuss-
boun...@arm.com> On Behalf Of Grant Likely
Sent: Monday, September 24, 2018 7:24 PM
To: boot-architecture@lists.linaro.org; arm.ebbr-disc...@arm.com
Cc: n...@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.lik...@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.
_______________________________________________
boot-architecture mailing list
boot-architecture@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/boot-architecture

Reply via email to