On Mon, 4 Nov 2019 at 18:49, Ashish Singhal <ashishsin...@nvidia.com> wrote:
>
> Add a PCD to govern whether to use DT or ACPI in case the
> variable governing this is not found or is not valid.
>
> Signed-off-by: Ashish Singhal <ashishsin...@nvidia.com>

Reviewed-by: Ard Biesheuvel <ard.biesheu...@linaro.org>

Pushed as 3a63c17ebc85..601a18bf08ca

Thanks!

> ---
>  EmbeddedPkg/Drivers/DtPlatformDxe/DtPlatformDxe.c   | 16 ++++++++++------
>  EmbeddedPkg/Drivers/DtPlatformDxe/DtPlatformDxe.inf |  3 +++
>  EmbeddedPkg/EmbeddedPkg.dec                         |  5 +++++
>  3 files changed, 18 insertions(+), 6 deletions(-)
>
> diff --git a/EmbeddedPkg/Drivers/DtPlatformDxe/DtPlatformDxe.c 
> b/EmbeddedPkg/Drivers/DtPlatformDxe/DtPlatformDxe.c
> index 907d46a..e35ca33 100644
> --- a/EmbeddedPkg/Drivers/DtPlatformDxe/DtPlatformDxe.c
> +++ b/EmbeddedPkg/Drivers/DtPlatformDxe/DtPlatformDxe.c
> @@ -124,18 +124,22 @@ DtPlatformDxeEntryPoint (
>      Status = gRT->GetVariable(DT_ACPI_VARIABLE_NAME, &gDtPlatformFormSetGuid,
>                      NULL, &BufferSize, &DtAcpiPref);
>      if (EFI_ERROR (Status)) {
> -      DEBUG ((DEBUG_WARN, "%a: no DT/ACPI preference found, defaulting to 
> DT\n",
> -        __FUNCTION__));
> -      DtAcpiPref.Pref = DT_ACPI_SELECT_DT;
> +      DEBUG ((DEBUG_WARN, "%a: no DT/ACPI preference found, defaulting to 
> %s\n",
> +        __FUNCTION__, PcdGetBool (PcdDefaultDtPref) ? L"DT" : L"ACPI"));
> +      DtAcpiPref.Pref = PcdGetBool (PcdDefaultDtPref) ?
> +                          DT_ACPI_SELECT_DT :
> +                          DT_ACPI_SELECT_ACPI;
>      }
>    }
>
>    if (!EFI_ERROR (Status) &&
>        DtAcpiPref.Pref != DT_ACPI_SELECT_ACPI &&
>        DtAcpiPref.Pref != DT_ACPI_SELECT_DT) {
> -    DEBUG ((DEBUG_WARN, "%a: invalid value for %s, defaulting to DT\n",
> -      __FUNCTION__, DT_ACPI_VARIABLE_NAME));
> -    DtAcpiPref.Pref = DT_ACPI_SELECT_DT;
> +    DEBUG ((DEBUG_WARN, "%a: invalid value for %s, defaulting to %s\n",
> +      __FUNCTION__, DT_ACPI_VARIABLE_NAME, PcdGetBool (PcdDefaultDtPref) ? 
> L"DT" : L"ACPI"));
> +    DtAcpiPref.Pref = PcdGetBool (PcdDefaultDtPref) ?
> +                        DT_ACPI_SELECT_DT :
> +                        DT_ACPI_SELECT_ACPI;
>      Status = EFI_INVALID_PARAMETER; // trigger setvar below
>    }
>
> diff --git a/EmbeddedPkg/Drivers/DtPlatformDxe/DtPlatformDxe.inf 
> b/EmbeddedPkg/Drivers/DtPlatformDxe/DtPlatformDxe.inf
> index b68f154..450ea29 100644
> --- a/EmbeddedPkg/Drivers/DtPlatformDxe/DtPlatformDxe.inf
> +++ b/EmbeddedPkg/Drivers/DtPlatformDxe/DtPlatformDxe.inf
> @@ -46,6 +46,9 @@
>    gEdkiiPlatformHasAcpiGuid
>    gFdtTableGuid
>
> +[Pcd]
> +  gEmbeddedTokenSpaceGuid.PcdDefaultDtPref
> +
>  [Depex]
>    gEfiVariableArchProtocolGuid        AND
>    gEfiVariableWriteArchProtocolGuid
> diff --git a/EmbeddedPkg/EmbeddedPkg.dec b/EmbeddedPkg/EmbeddedPkg.dec
> index bbaadc5..8812a6d 100644
> --- a/EmbeddedPkg/EmbeddedPkg.dec
> +++ b/EmbeddedPkg/EmbeddedPkg.dec
> @@ -185,3 +185,8 @@
>    # truncation on overflow to specify negative offsets.
>    #
>    gEmbeddedTokenSpaceGuid.PcdDmaDeviceOffset|0x0|UINT64|0x0000058
> +
> +  #
> +  # Selection between DT and ACPI as a default
> +  #
> +  gEmbeddedTokenSpaceGuid.PcdDefaultDtPref|TRUE|BOOLEAN|0x0000059
> --
> 2.7.4
>

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#50205): https://edk2.groups.io/g/devel/message/50205
Mute This Topic: https://groups.io/mt/41355681/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to