edk2/DynamicTablesPkg/Library/Acpi/Common/AcpiSsdtCpuTopologyLib
Pierre Gondois 8375d2ea60 DynamicTablesPkg: Check cluster's VALID bit based on SSDT Topology table
The ACPI specification v6.5, sTable 5.158: Processor Structure Flags
states that:
"""
The processor container will have a matching ID
value returned through the _UID method. As not every pro-
cessor hierarchy node structure in PPTT may have a matching
processor container, this flag indicates whether the ACPI pro-
cessor ID points to valid entry. Where a valid entry is possible
the ACPI Processor ID and _UID method are mandatory.
"""

And in:
Table 5.157: Processor Hierarchy Node Structure
"""
If the processor structure rep-
resents a group of associated processors, the structure might
match a processor container in the name space. In that case
this entry will match the value of the _UID method of the as-
sociated processor container. Where there is a match it must
be represented. The flags field, described in Processor Struc-
ture Flags, includes a bit to describe whether the ACPI pro-
cessor ID is valid.
"""

The DynamicTablesPkg currently creates a processor container:
- in the SSDT CPU Topology generator, with the _HID=ACPI0010,
  and with a valid _UID
- in the PPTT table
for each CM_ARCH_COMMON_PROC_HIERARCHY_INFO structure.
Thus:
- all the processor containers should have the VALID bit set
  if the SSDT CPU Topology table is present.
- if the SSDT CPU Topology table is present, but there is no
  PPTT table, then the state of the VALID bit is ignored.

A contrario, an example where the VALID bit should not be set
would be if:
- the SSDT CPU Topology generator is absent
- no processor container is created in the SSDT topology,
  i.e. if a flat hierarchy is created.

Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
2025-06-11 12:24:35 +00:00
..
Arm DynamicTablesPkg: AcpiSsdtCpuTopologyLib: Avoid dependency on GICC 2024-07-29 13:44:55 +00:00
X64 DynamicTablesPkg/AcpiSsdtCpuTopologyLib: Correct _STA method for X64 2025-03-13 07:40:02 +00:00
SsdtCpuTopologyGenerator.c DynamicTablesPkg: Check cluster's VALID bit based on SSDT Topology table 2025-06-11 12:24:35 +00:00
SsdtCpuTopologyGenerator.h DynamicTablesPkg: Check cluster's VALID bit based on SSDT Topology table 2025-06-11 12:24:35 +00:00
SsdtCpuTopologyLib.inf DynamicTablesPkg: Check cluster's VALID bit based on SSDT Topology table 2025-06-11 12:24:35 +00:00