[edk2-devel] [PATCH 1/1] EmbeddedPkg/VirtualRealTimeClockLib : Fix SetTime issues

Ard Biesheuvel ardb at kernel.org
Thu Jul 29 10:15:06 UTC 2021


On Fri, 23 Jul 2021 at 18:43, Pete Batard <pete at akeo.ie> wrote:
>
> Hi Sunny,
>
> Good catch for both these issues. Thanks for fixing them.
>
> With this:
>
> On 2021.07.23 10:04, Sunny Wang wrote:
> > 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-mahmoud at arm.com>
> > Cc: Sami Mujawar <sami.mujawar at arm.com>
> > Cc: Jeremy Linton <jeremy.linton at arm.com>
> > Cc: Ard Biesheuvel <ardb+tianocore at kernel.org>
> > Cc: Pete Batard <pete at akeo.ie>
> > Cc: Leif Lindholm <leif at nuviainc.com>
> >
> > Signed-off-by: Sunny Wang <sunny.wang at 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 <pete at akeo.ie>
> >    *  Copyright (c) 2018, Andrei Warkentin <andrey.warkentin at 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;
> >
>
> Reviewed-by: Pete Batard <pete at akeo.ie>
> Tested-by: Pete Batard <pete at akeo.ie>

Merged, thanks,


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#78364): https://edk2.groups.io/g/devel/message/78364
Mute This Topic: https://groups.io/mt/84397263/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-





More information about the edk2-devel-archive mailing list