DynamicTablesPkg: Add StaToken to ProcHierarch CmObj Add a new StaToken field to CM_ARCH_COMMON_PROC_HIERARCHY_INFO CmObj, allowing to describe the ASL "_STA" value the processor or processor container should return. CM_X64_LOCAL_APIC_X2APIC_INFO.StaToken already allows to reference a StaToken from a X2APIC CmObj. If ProcHierarchy objects are used, the SSDT CPU topology table will be generated using the X2APIC objects, so the new field should not collide with the new one. Add a note to CM_X64_LOCAL_APIC_X2APIC_INFO.StaToken to handle this case. Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
diff --git a/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h b/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h index ade806d..7aef112 100644 --- a/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h +++ b/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h
@@ -553,6 +553,11 @@ CHAR8 PartNumber[SMBIOS_MAX_STRING_SIZE]; /// SMBIOS: String stating processor socket type. CHAR8 SocketType[SMBIOS_MAX_STRING_SIZE]; + + /** Optional field: Reference Token for _STA info of this processor. + i.e. a token referencing a CM_ARCH_COMMON_STA_INFO object. + */ + CM_OBJECT_TOKEN StaToken; } CM_ARCH_COMMON_PROC_HIERARCHY_INFO; /** A structure that describes the Cache Type Structure (Type 1) in PPTT
diff --git a/DynamicTablesPkg/Include/X64NameSpaceObjects.h b/DynamicTablesPkg/Include/X64NameSpaceObjects.h index fb30382..8aa742a 100644 --- a/DynamicTablesPkg/Include/X64NameSpaceObjects.h +++ b/DynamicTablesPkg/Include/X64NameSpaceObjects.h
@@ -278,6 +278,11 @@ /** Optional field: Reference Token for _STA info of this processor. i.e. a token referencing a CM_ARCH_COMMON_STA_INFO object. + + Note: + This should not happen, but if CM_ARCH_COMMON_PROC_HIERARCHY_INFO + objects are used, CM_ARCH_COMMON_PROC_HIERARCHY_INFO.StaToken takes + precedence over this field. */ CM_OBJECT_TOKEN StaToken; } CM_X64_LOCAL_APIC_X2APIC_INFO;
diff --git a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c index 5a9cdf5..012c8a8 100644 --- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c +++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
@@ -356,7 +356,8 @@ { "SerialNumber", SMBIOS_MAX_STRING_SIZE, "%a", PrintString }, { "AssetTag", SMBIOS_MAX_STRING_SIZE, "%a", PrintString }, { "PartNumber", SMBIOS_MAX_STRING_SIZE, "%a", PrintString }, - { "SocketType", SMBIOS_MAX_STRING_SIZE, "%a", PrintString } + { "SocketType", SMBIOS_MAX_STRING_SIZE, "%a", PrintString }, + { "StaToken", sizeof (CM_OBJECT_TOKEN), "0x%p", NULL }, }; /** A parser for EArchCommonObjCacheInfo.