diff options
author | Sami Mujawar <sami.mujawar@arm.com> | 2019-02-14 11:01:20 +0000 |
---|---|---|
committer | Sami Mujawar <sami.mujawar@arm.com> | 2019-02-25 14:46:17 +0000 |
commit | c788bdaba47536447ae37518a96d92e0da54aad7 (patch) | |
tree | ebc70f7aa7617a08d682f45ccaa24d69673369b4 /DynamicTablesPkg/Library/Common | |
parent | 1d49a75367ef6827b8b8f77f61e9ce245d1bdee3 (diff) | |
download | edk2-c788bdaba47536447ae37518a96d92e0da54aad7.tar.gz edk2-c788bdaba47536447ae37518a96d92e0da54aad7.tar.bz2 edk2-c788bdaba47536447ae37518a96d92e0da54aad7.zip |
DynamicTablesPkg: Add OEM Info
Added option for OEMs to provide OEM Table ID and
OEM Revision for ACPI tables.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
Diffstat (limited to 'DynamicTablesPkg/Library/Common')
-rw-r--r-- | DynamicTablesPkg/Library/Common/TableHelperLib/TableHelper.c | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/DynamicTablesPkg/Library/Common/TableHelperLib/TableHelper.c b/DynamicTablesPkg/Library/Common/TableHelperLib/TableHelper.c index 02860ddf23..203207bac2 100644 --- a/DynamicTablesPkg/Library/Common/TableHelperLib/TableHelper.c +++ b/DynamicTablesPkg/Library/Common/TableHelperLib/TableHelper.c @@ -100,7 +100,7 @@ GetCgfMgrInfo ( @param [in] Generator Pointer to the ACPI table Generator.
@param [in,out] AcpiHeader Pointer to the ACPI table header to be
updated.
- @param [in] Revision Revision of the ACPI table.
+ @param [in] AcpiTableInfo Pointer to the ACPI table info structure.
@param [in] Length Length of the ACPI table.
@retval EFI_SUCCESS The ACPI table is updated successfully.
@@ -116,7 +116,7 @@ AddAcpiHeader ( IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL * CONST CfgMgrProtocol,
IN CONST ACPI_TABLE_GENERATOR * CONST Generator,
IN OUT EFI_ACPI_DESCRIPTION_HEADER * CONST AcpiHeader,
- IN CONST UINT32 Revision,
+ IN CONST CM_STD_OBJ_ACPI_TABLE_INFO * CONST AcpiTableInfo,
IN CONST UINT32 Length
)
{
@@ -151,7 +151,7 @@ AddAcpiHeader ( // UINT32 Length
AcpiHeader->Length = Length;
// UINT8 Revision
- AcpiHeader->Revision = Revision;
+ AcpiHeader->Revision = AcpiTableInfo->AcpiTableRevision;
// UINT8 Checksum
AcpiHeader->Checksum = 0;
@@ -159,12 +159,24 @@ AddAcpiHeader ( CopyMem (AcpiHeader->OemId, CfgMfrInfo->OemId, sizeof (AcpiHeader->OemId));
// UINT64 OemTableId
- AcpiHeader->OemTableId = Generator->CreatorId;
- AcpiHeader->OemTableId <<= 32;
- AcpiHeader->OemTableId |= Generator->AcpiTableSignature;
+ if (AcpiTableInfo->OemTableId != 0) {
+ AcpiHeader->OemTableId = AcpiTableInfo->OemTableId;
+ } else {
+ AcpiHeader->OemTableId = SIGNATURE_32 (
+ CfgMfrInfo->OemId[0],
+ CfgMfrInfo->OemId[1],
+ CfgMfrInfo->OemId[2],
+ CfgMfrInfo->OemId[3]
+ ) |
+ ((UINT64)Generator->AcpiTableSignature << 32);
+ }
// UINT32 OemRevision
- AcpiHeader->OemRevision = CfgMfrInfo->Revision;
+ if (AcpiTableInfo->OemRevision != 0) {
+ AcpiHeader->OemRevision = AcpiTableInfo->OemRevision;
+ } else {
+ AcpiHeader->OemRevision = CfgMfrInfo->Revision;
+ }
// UINT32 CreatorId
AcpiHeader->CreatorId = Generator->CreatorId;
|