Date
1 - 7 of 7
[PATCH 1/2] riscv-platform-spec: Real-time Clock to server extension
From: Abner Chang <abner.chang@...>
RTC (Real-time Clock) Real-time clock is the server basic system peripheral to provide the real date/time information for server to manage the system date, time and time zones settings for different regions through the local POST time firmware utility, NTP or the remote management such as Redfish. Signed-off-by: Abner Chang <renba.chang@...> Signed-off-by: Abner Chang <abner.chang@...> --- riscv-platform-spec.adoc | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/riscv-platform-spec.adoc b/riscv-platform-spec.adoc index 87ea6d5..d611d69 100644 --- a/riscv-platform-spec.adoc +++ b/riscv-platform-spec.adoc @@ -442,9 +442,9 @@ The UEFI run time services listed below are required to be implemented. |SetVariable | 8.2 | A dedicated storage for firmware is required so that there is no conflict in access by both firmware and the OS. |QueryVariableInfo | 8.2 | -|GetTime | 8.3 | RTC Access by the OS -|SetTime | 8.3 | If it is not possible to set the RTC, -the SetTime() can return an error. +|GetTime | 8.3 | RTC Access by the OS and firmware +|SetTime | 8.3 | RTC configured by the OS and +firmware |GetWakeupTime | 8.3 | Interface is required to be implemented but it can return EFI_UNSUPPORTED. |SetWakeupTime | 8.3 | Interface is required to be @@ -469,6 +469,17 @@ https://lists.riscv.org/g/tech-privileged/message/404[Sstc] extension. ** Platforms are required to delegate the supervisor timer interrupt to 'S' mode. If the 'H' extension is implemented then the platforms are required to delegate the virtual supervisor timer interrupt to 'VS' mode. + +* Real-time Clock (RTC) +The Real-time clock must be provided to the server extension platform to +facilitate the time management (Date, time and the time zone) and RTC wake up +when the server is in the power down state for the server manageability. +The GetTime()and SetTime() UEFI runtime services must be implemented by +firmware to incorporate with RTC and flexibly support RTC use cases. +GetWakeupTime() and SetWakeupTime() UEFI runtime services are required to be +implemented but it can return EFI_UNSUPPORTED if the wake up from RTC is not +supported. + * PCI-E ==== Secure Boot -- 2.19.0.windows.1 |
|
Jonathan Behrens <behrensj@...>
Any chance that we can ban EFI_UNSPECIFIED_TIMEZONE and/or require that time is always UTC? Jonathan From: Abner Chang <abner.chang@...> |
|
Jonathan Behrens <behrensj@...> 於 2021年6月25日 週五 下午11:11寫道:
That depends on how do you implement GetTime/SetTime functions for the platform. You can always not returning EFI_UNSPECIFIED_TIMEZONE in the implementation and just return the offset to UTC for the local time. Abner
|
|
On 6/28/21 8:39 AM, Abner Chang wrote:
The way that UEFI reports local time zones is unsatisfactory: There is an offset to UTC and a daylight savings flag but this does not allow to derive on which day daylight saving switches (you could be on the southern or on the northern hemisphere) nor the daylight savings offset which historically has been one hour or two hours. Furthermore many RTC chips do not store timezone related information. EDK II stores it in UEFI variables. There is no handling of daylight savings switches in EDK II. With this background allowing anything else but UTC just creates ambiguity. This paragraph is self-contradictory: It requires RTC to facilitate "RTC wake up" but allows SetWakeupTime() to report EFI_UNSUPPORTED. Best regards Heinrich + |
|
Heinrich Schuchardt <xypron.glpk@...> 於 2021年6月28日 週一 下午4:32寫道: On 6/28/21 8:39 AM, Abner Chang wrote: That's true. On the server platform, RTC doesn't work alone. It incorporates with BMC to get the time information because only BMC is alive even when the system is powered off. The system only syncs up the time settings from BMC when every time the system boots. GetTime function is used by the firmware or the pre-OS EFI applications. SetTIme is used when the firmware sync up the time with BMC or the server deployment. RTC is the media to keep the time information, how to use RTC is implementation-specific. Abner
|
|
Jonathan Behrens <behrensj@...>
What does "implementation specific" mean in this context? Could the platform spec require implementations to program the RTC with UTC times? If not, could it recommend/encourage them to? Jonathan
|
|
Jonathan Behrens <behrensj@...> 於 2021年6月29日 週二 上午2:32寫道:
I don't think that is necessary to mention how to program the RTC in platform spec. We just need the RTC to keep counting the time. UEFI Time runtime service already provides the abstract API which the underlying algorithm to program RTC or incorporates with some other mechanisms is not defined. The example I mentioned to incorporate with BMC is just one of the implementations.
Yes, we still can provide some recommendations in the spec that encourages people to use RTC. Abner
|
|