Sorry, please ignore this one. I sent the patch with the wrong subject. This 
change is made in edk2 rather than the edk2-platform.
Please review the later one "[edk2-devel] [PATCH 1/1] 
EmbeddedPkg/VirtualRealTimeClockLib : Fix SetTime issues". Thanks!
https://edk2.groups.io/g/devel/topic/patch_1_1/84397263

Best Regards,
Sunny Wang

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Sunny Wang via 
groups.io
Sent: Friday, July 23, 2021 5:01 PM
To: devel@edk2.groups.io
Cc: Sunny Wang <sunny.w...@arm.com>; Samer El-Haj-Mahmoud 
<samer.el-haj-mahm...@arm.com>; Sami Mujawar <sami.muja...@arm.com>; Jeremy 
Linton <jeremy.lin...@arm.com>; Ard Biesheuvel <ardb+tianoc...@kernel.org>; 
Pete Batard <p...@akeo.ie>; Leif Lindholm <l...@nuviainc.com>; Sunny Wang 
<sunny.w...@arm.com>
Subject: [edk2-devel] [edk2-platform][PATCH v1 1/1] 
EmbeddedPkg/VirtualRealTimeClockLib : Fix SetTime issues

This patch fixes two issues below:
1. SCT SetTime_Func failures.
   - https://github.com/pftf/RPi4/issues/164
2. Using shell time and date commands to set time can't work.

The problem is that gRT->SetTime always returns EFI_INVALID_PARAMETER
error status.

The root cause is that LibSetTime() sets RtcEpochSeconds variable with
inconsistent attributes. One is without EFI_VARIABLE_NON_VOLATILE,
the other one is with EFI_VARIABLE_NON_VOLATILE. That caused that the
variable driver returns EFI_INVALID_PARAMETER. Per UEFI spec, if a
preexisting variable is rewritten with different attributes,
SetVariable() shall not modify the variable and shall return
EFI_INVALID_PARAMETER.

Therefore, the solution is to add EFI_VARIABLE_NON_VOLATILE attribute
to the first EfiSetVariable() call to make two calls consistent.

By the way, this patch also fix a minor issue with a debug message.

Cc: Samer El-Haj-Mahmoud <samer.el-haj-mahm...@arm.com>
Cc: Sami Mujawar <sami.muja...@arm.com>
Cc: Jeremy Linton <jeremy.lin...@arm.com>
Cc: Ard Biesheuvel <ardb+tianoc...@kernel.org>
Cc: Pete Batard <p...@akeo.ie>
Cc: Leif Lindholm <l...@nuviainc.com>

Signed-off-by: Sunny Wang <sunny.w...@arm.com>
---
 .../VirtualRealTimeClockLib/VirtualRealTimeClockLib.c       | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git 
a/EmbeddedPkg/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.c 
b/EmbeddedPkg/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.c
index de6fbb40e6..c10c91bc75 100644
--- a/EmbeddedPkg/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.c
+++ b/EmbeddedPkg/Library/VirtualRealTimeClockLib/VirtualRealTimeClockLib.c
@@ -4,7 +4,7 @@
  *
  *  Coypright (c) 2019, Pete Batard <p...@akeo.ie>
  *  Copyright (c) 2018, Andrei Warkentin <andrey.warken...@gmail.com>
- *  Copyright (c) 2011-2014, ARM Ltd. All rights reserved.
+ *  Copyright (c) 2011-2021, ARM Ltd. All rights reserved.
  *  Copyright (c) 2008-2010, Apple Inc. All rights reserved.
  *  Copyright (c) Microsoft Corporation. All rights reserved.
  *
@@ -96,7 +96,7 @@ LibGetTime (
     EfiSetVariable (
       (CHAR16 *)mEpochVariableName,
       &gEfiCallerIdGuid,
-      EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS,
+      EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | 
EFI_VARIABLE_RUNTIME_ACCESS,
       sizeof (EpochSeconds),
       &EpochSeconds
       );
@@ -324,7 +324,7 @@ LibSetTime (
     DEBUG ((
       DEBUG_ERROR,
       "LibSetTime: Failed to save %s variable to non-volatile storage, Status 
= %r\n",
-      mDaylightVariableName,
+      mEpochVariableName,
       Status
       ));
     return Status;
--
2.31.0.windows.1



-=-=-=-=-=-=
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#78123): https://edk2.groups.io/g/devel/message/78123
Mute This Topic: https://groups.io/mt/84397232/5985097
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [sunny.w...@arm.com]
-=-=-=-=-=-=


IMPORTANT NOTICE: The contents of this email and any attachments are 
confidential and may also be privileged. If you are not the intended recipient, 
please notify the sender immediately and do not disclose the contents to any 
other person, use it for any purpose, or store or copy the information in any 
medium. Thank you.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#78125): https://edk2.groups.io/g/devel/message/78125
Mute This Topic: https://groups.io/mt/84397232/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to