Please ignore this patch. Making gRT->SetVariable at runtime return 
EFI_UNSUPPORTED would cause some OSes' installation failure/error.
I thought the latest OS may support UNSUPPORTED case, but it turned out still 
an error/failure. I checked both Ubuntu 21.04 and OpenSUSE 15.3 Leap, and both 
of them could not be smoothly installed.
I will take a further look into this and figure out a better solution.

Hi Ard,
Yeah, I'm also working on EFI_RT_PROPERTIES_TABLE, but ran into some problems. 
I'm still debugging it. Hope using EFI_RT_PROPERTIES_TABLE won't cause OS 
installation failure.

Best Regards,
Sunny Wang

-----Original Message-----
From: Ard Biesheuvel <a...@kernel.org>
Sent: Friday, July 23, 2021 11:10 PM
To: Sunny Wang <sunny.w...@arm.com>
Cc: edk2-devel-groups-io <devel@edk2.groups.io>; 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>
Subject: Re: [edk2-platform PATCH v1 1/1] Platform/RaspberryPi: Make 
SetVariable return EFI_UNSUPPORTED at runtime

On Fri, 23 Jul 2021 at 11:15, Sunny Wang <sunny.w...@arm.com> wrote:
>
> The RPi does not support storing UEFI NV variables at runtime. For now,
> gRT->SetVariable at runtime returns EFI_OUT_OF_RESOURCES which is not a
> proper error and would cause FWTS failures. Therefore, this patch is
> to make gRT->SetVariable at runtime return EFI_UNSUPPORTED.
>
> For more information, please check the issues below:
>    -https://github.com/pftf/RPi4/issues/6
>    -https://github.com/pftf/RPi4/issues/93
>    -https://github.com/pftf/RPi4/issues/163
>
> I also tested this with the ACS 3.0 FWTS. All the failures
> reported in issue 93 and 163 can be fixed by this patch.
>
> 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>

This looks ok to me, but we should also expose this fact via the
EFI_RT_PROPERTIES_TABLE, so that the OS can anticipate this result.

> ---
>  .../Drivers/VarBlockServiceDxe/VarBlockService.c     | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git 
> a/Platform/RaspberryPi/Drivers/VarBlockServiceDxe/VarBlockService.c 
> b/Platform/RaspberryPi/Drivers/VarBlockServiceDxe/VarBlockService.c
> index 572309439a..16d4d4f178 100644
> --- a/Platform/RaspberryPi/Drivers/VarBlockServiceDxe/VarBlockService.c
> +++ b/Platform/RaspberryPi/Drivers/VarBlockServiceDxe/VarBlockService.c
> @@ -2,6 +2,7 @@
>   *
>   *  Copyright (c) 2018, Andrei Warkentin <andrey.warken...@gmail.com>
>   *  Copyright (c) 2006-2014, Intel Corporation. All rights reserved.
> + *  Copyright (c) 2021, ARM Limited. All rights reserved.
>   *
>   *  SPDX-License-Identifier: BSD-2-Clause-Patent
>   *
> @@ -596,6 +597,7 @@ FvbProtocolWrite (
>      EFI_DEVICE_ERROR      - The block device is not functioning correctly and
>                              could not be written
>      EFI_INVALID_PARAMETER - NumBytes or Buffer are NULL
> +    EFI_UNSUPPORTED         This function is not supported at runtime
>
>  --*/
>  {
> @@ -605,6 +607,16 @@ FvbProtocolWrite (
>    EFI_STATUS Status;
>    EFI_STATUS ReturnStatus;
>
> +  //
> +  // The current variables support relies on modifying RPI_EFI.FD on SD
> +  // card, which works fine at boot time. However, at runtime, the SD
> +  // controller is exposed via ACPI and subsequently owned by the OS.
> +  // Therefore, we need to direclty return EFI_UNSUPPORTED.
> +  //
> +  if (EfiAtRuntime ()) {
> +   return EFI_UNSUPPORTED;
> +  }
> +
>    //
>    // Check for invalid conditions.
>    //
> --
> 2.31.0.windows.1
>
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 (#78165): https://edk2.groups.io/g/devel/message/78165
Mute This Topic: https://groups.io/mt/84397460/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to