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>
This commit is contained in:
Pierre Gondois 2026-07-27 15:55:07 +02:00 committed by mergify[bot]
parent 0d9c10b3a2
commit d2936e9efa
3 changed files with 12 additions and 1 deletions

View file

@ -553,6 +553,11 @@ typedef struct CmArchCommonProcHierarchyInfo {
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

View file

@ -278,6 +278,11 @@ typedef struct CmX64LocalApicX2ApicInfo {
/** 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;

View file

@ -356,7 +356,8 @@ STATIC CONST CM_OBJ_PARSER CmArchCommonProcHierarchyInfoParser[] = {
{ "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.