diff options
| author | Pierre Gondois <pierre.gondois@arm.com> | 2026-07-27 15:55:07 +0200 |
|---|---|---|
| committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2026-07-31 17:24:16 +0000 |
| commit | d2936e9efa5250b60cdc3cf30b6ccfdbae403cc8 (patch) | |
| tree | 3cd7380cfc126612ef0c55916e1baf7863a88f22 /DynamicTablesPkg | |
| parent | 0d9c10b3a211f2fbab86ef153f237d4efc2de8bb (diff) | |
| download | edk2-d2936e9efa5250b60cdc3cf30b6ccfdbae403cc8.tar.gz edk2-d2936e9efa5250b60cdc3cf30b6ccfdbae403cc8.zip | |
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>
Diffstat (limited to 'DynamicTablesPkg')
3 files changed, 12 insertions, 1 deletions
diff --git a/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h b/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h index ade806dda9..7aef112369 100644 --- a/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h +++ b/DynamicTablesPkg/Include/ArchCommonNameSpaceObjects.h @@ -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
diff --git a/DynamicTablesPkg/Include/X64NameSpaceObjects.h b/DynamicTablesPkg/Include/X64NameSpaceObjects.h index fb303828cd..8aa742ae2b 100644 --- a/DynamicTablesPkg/Include/X64NameSpaceObjects.h +++ b/DynamicTablesPkg/Include/X64NameSpaceObjects.h @@ -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;
diff --git a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c index 5a9cdf58ef..012c8a8492 100644 --- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c +++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c @@ -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.
|
