/** @file\r
\r
- Copyright (c) 2017 - 2019, ARM Limited. All rights reserved.\r
+ Copyright (c) 2017 - 2022, Arm Limited. All rights reserved.\r
\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
/// Generators shall populate this information using the revision of the\r
/// Configuration Manager (CM_STD_OBJ_CONFIGURATION_MANAGER_INFO.Revision).\r
UINT32 OemRevision;\r
+\r
+ /// The minor revision of an ACPI table if required by the table.\r
+ /// Note: If this field is not populated (has value of Zero), then the\r
+ /// Generators shall populate this information based on the latest minor\r
+ /// revision of the table that is supported by the generator.\r
+ /// e.g. This field can be used to specify the minor revision to be set\r
+ /// for the FADT table.\r
+ UINT8 MinorRevision;\r
} CM_STD_OBJ_ACPI_TABLE_INFO;\r
\r
/** A structure used to describe the SMBIOS table generators to be invoked.\r
/** @file\r
FADT Table Generator\r
\r
- Copyright (c) 2017 - 2021, ARM Limited. All rights reserved.\r
+ Copyright (c) 2017 - 2022, Arm Limited. All rights reserved.\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
@par Reference(s):\r
// UINT16 ArmBootArch\r
EFI_ACPI_6_4_ARM_PSCI_COMPLIANT, // {Template}: ARM Boot Architecture Flags\r
// UINT8 MinorRevision\r
- EFI_ACPI_6_4_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION,\r
+ EFI_ACPI_6_4_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION, // {Template}\r
// UINT64 XFirmwareCtrl\r
0,\r
// UINT64 XDsdt\r
goto error_handler;\r
}\r
\r
+ // Update the MinorRevision for the FADT table if it has been specified\r
+ // otherwise default to the latest FADT minor revision supported.\r
+ // Note:\r
+ // Bits 0-3 - The low order bits correspond to the minor version of the\r
+ // specification version.\r
+ // Bits 4-7 - The high order bits correspond to the version of the ACPI\r
+ // specification errata.\r
+ if (AcpiTableInfo->MinorRevision != 0) {\r
+ if (((AcpiTableInfo->MinorRevision & 0xF) >=\r
+ EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION) &&\r
+ ((AcpiTableInfo->MinorRevision & 0xF) <=\r
+ EFI_ACPI_6_4_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION))\r
+ {\r
+ AcpiFadt.MinorVersion = AcpiTableInfo->MinorRevision;\r
+ } else {\r
+ DEBUG ((\r
+ DEBUG_WARN,\r
+ "WARNING: FADT: Unsupported FADT Minor Revision 0x%x specified, " \\r
+ "defaulting to FADT Minor Revision 0x%x\n",\r
+ AcpiTableInfo->MinorRevision,\r
+ EFI_ACPI_6_4_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION\r
+ ));\r
+ }\r
+ }\r
+\r
// Update PmProfile Info\r
Status = FadtAddPmProfileInfo (CfgMgrProtocol);\r
if (EFI_ERROR (Status)) {\r