On 27/09/2018 12:55, Ard Biesheuvel wrote:
On 27 September 2018 at 13:46, Daniel Thompson daniel.thompson@linaro.org wrote:
On Thu, Sep 27, 2018 at 10:53:51AM +0000, Udit Kumar wrote:
-----Original Message----- From: Grant Likely grant.likely@arm.com Sent: Wednesday, September 26, 2018 6:01 PM To: Udit Kumar udit.kumar@nxp.com; boot-architecture@lists.linaro.org; arm.ebbr-discuss@arm.com Cc: nd@arm.com Subject: Re: [Arm.ebbr-discuss] [PATCH 5/7] Refactor ResetSystem() requirements
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?
Thanks, this is clear where UEFI is saying to return an error say for RTC/Variable service.
For reset, there is no error code, in this case, how EFI interface can tell to OS that reset is not available through runtime. We should document this.
Interesting.
Clearly the OS can trivially detect the ResetSystem() is not implemented/working because it would not otherwise return but this might need an update to the ECR (which otherwise has language that adds EFI_UNSUPPORTED as a return type to a function with no return type).
Instead, we could update the UEFI spec so that ResetSystem() does have a return type, which may be useful in other way as well. (And being able to add the language that says 'EFI_SUCCESS - An error has occurred' is just too appealing)
Peter's ECR[1] does add EFI_UNSUPPORTED to the ResetSystem() description, but doesn't actually change the text to allow a return code! Minor stuff. Peter, does this work for the next version of your ECR?
Replace the following text in the description of ResetSystem()
The ResetSystem() function does not return
With the following text and a new status code returned table containing EFI_UNSUPPORTED.
The ResetSystem() function does not return unless the platform cannot support calls to ResetSystem() after ExitBootServices() is called.
g.
[1] https://pjones.fedorapeople.org/rt-unsupported-ecr-1.txt