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 <ashishsingha@nvidia.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Status = gRT->GetVariable(DT_ACPI_VARIABLE_NAME, &gDtPlatformFormSetGuid,\r
NULL, &BufferSize, &DtAcpiPref);\r
if (EFI_ERROR (Status)) {\r
Status = gRT->GetVariable(DT_ACPI_VARIABLE_NAME, &gDtPlatformFormSetGuid,\r
NULL, &BufferSize, &DtAcpiPref);\r
if (EFI_ERROR (Status)) {\r
- DEBUG ((DEBUG_WARN, "%a: no DT/ACPI preference found, defaulting to DT\n",\r
- __FUNCTION__));\r
- DtAcpiPref.Pref = DT_ACPI_SELECT_DT;\r
+ DEBUG ((DEBUG_WARN, "%a: no DT/ACPI preference found, defaulting to %a\n",\r
+ __FUNCTION__, PcdGetBool (PcdDefaultDtPref) ? "DT" : "ACPI"));\r
+ DtAcpiPref.Pref = PcdGetBool (PcdDefaultDtPref) ? DT_ACPI_SELECT_DT\r
+ : DT_ACPI_SELECT_ACPI;\r
}\r
}\r
\r
if (!EFI_ERROR (Status) &&\r
DtAcpiPref.Pref != DT_ACPI_SELECT_ACPI &&\r
DtAcpiPref.Pref != DT_ACPI_SELECT_DT) {\r
}\r
}\r
\r
if (!EFI_ERROR (Status) &&\r
DtAcpiPref.Pref != DT_ACPI_SELECT_ACPI &&\r
DtAcpiPref.Pref != DT_ACPI_SELECT_DT) {\r
- DEBUG ((DEBUG_WARN, "%a: invalid value for %s, defaulting to DT\n",\r
- __FUNCTION__, DT_ACPI_VARIABLE_NAME));\r
- DtAcpiPref.Pref = DT_ACPI_SELECT_DT;\r
+ DEBUG ((DEBUG_WARN, "%a: invalid value for %s, defaulting to %a\n",\r
+ __FUNCTION__, DT_ACPI_VARIABLE_NAME,\r
+ PcdGetBool (PcdDefaultDtPref) ? "DT" : "ACPI"));\r
+ DtAcpiPref.Pref = PcdGetBool (PcdDefaultDtPref) ? DT_ACPI_SELECT_DT\r
+ : DT_ACPI_SELECT_ACPI;\r
Status = EFI_INVALID_PARAMETER; // trigger setvar below\r
}\r
\r
Status = EFI_INVALID_PARAMETER; // trigger setvar below\r
}\r
\r
gEdkiiPlatformHasAcpiGuid\r
gFdtTableGuid\r
\r
gEdkiiPlatformHasAcpiGuid\r
gFdtTableGuid\r
\r
+[Pcd]\r
+ gEmbeddedTokenSpaceGuid.PcdDefaultDtPref\r
+\r
[Depex]\r
gEfiVariableArchProtocolGuid AND\r
gEfiVariableWriteArchProtocolGuid\r
[Depex]\r
gEfiVariableArchProtocolGuid AND\r
gEfiVariableWriteArchProtocolGuid\r
# truncation on overflow to specify negative offsets.\r
#\r
gEmbeddedTokenSpaceGuid.PcdDmaDeviceOffset|0x0|UINT64|0x0000058\r
# truncation on overflow to specify negative offsets.\r
#\r
gEmbeddedTokenSpaceGuid.PcdDmaDeviceOffset|0x0|UINT64|0x0000058\r
+\r
+ #\r
+ # Selection between DT and ACPI as a default\r
+ #\r
+ gEmbeddedTokenSpaceGuid.PcdDefaultDtPref|TRUE|BOOLEAN|0x0000059\r