Hello Jeshua,
On 1/8/24 19:12, Jeshua Smith wrote:
The code was incorrectly assuming that root nodes had to be physical
package nodes and vice versa. This is not always true, so the check
is being removed.
Does it mean that you have a topology where the top-level node is not
a physical package ? If yes, does it also mean that multiple physical
packages share a resource (which belong to the top-level node) ?
It is correct that the check is a bit stronger than what the specification
states, but it was handling all topologies so far, so would it be possible
to describe the topology that you have ?
Regards,
Pierre
Signed-off-by: Jeshua Smith <jesh...@nvidia.com>
Tested-by: Ashish Singhal <ashishsin...@nvidia.com>
Reviewed-by: Ashish Singhal <ashishsin...@nvidia.com>
---
.../SsdtCpuTopologyGenerator.c | 23 ++++---------------
1 file changed, 5 insertions(+), 18 deletions(-)
diff --git
a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c
b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c
index 724f33c660..4ad9508f57 100644
---
a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c
+++
b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c
@@ -983,7 +983,6 @@ CreateAmlProcessorContainer (
@param [in] NodeFlags Flags of the ProcNode to check.
@param [in] IsLeaf The ProcNode is a leaf.
@param [in] NodeToken NodeToken of the ProcNode.
- @param [in] ParentNodeToken Parent NodeToken of the ProcNode.
@retval EFI_SUCCESS Success.
@retval EFI_INVALID_PARAMETER Invalid parameter.
@@ -994,26 +993,16 @@ EFIAPI
CheckProcNode (
UINT32 NodeFlags,
BOOLEAN IsLeaf,
- CM_OBJECT_TOKEN NodeToken,
- CM_OBJECT_TOKEN ParentNodeToken
+ CM_OBJECT_TOKEN NodeToken
)
{
BOOLEAN InvalidFlags;
- BOOLEAN HasPhysicalPackageBit;
- BOOLEAN IsTopLevelNode;
-
- HasPhysicalPackageBit = (NodeFlags & EFI_ACPI_6_3_PPTT_PACKAGE_PHYSICAL) ==
- EFI_ACPI_6_3_PPTT_PACKAGE_PHYSICAL;
- IsTopLevelNode = (ParentNodeToken == CM_NULL_TOKEN);
-
- // A top-level node is a Physical Package and conversely.
- InvalidFlags = HasPhysicalPackageBit ^ IsTopLevelNode;
// Check Leaf specific flags.
if (IsLeaf) {
- InvalidFlags |= ((NodeFlags & PPTT_LEAF_MASK) != PPTT_LEAF_MASK);
+ InvalidFlags = ((NodeFlags & PPTT_LEAF_MASK) != PPTT_LEAF_MASK);
} else {
- InvalidFlags |= ((NodeFlags & PPTT_LEAF_MASK) != 0);
+ InvalidFlags = ((NodeFlags & PPTT_LEAF_MASK) != 0);
}
if (InvalidFlags) {
@@ -1086,8 +1075,7 @@ CreateAmlCpuTopologyTree (
Status = CheckProcNode (
Generator->ProcNodeList[Index].Flags,
TRUE,
- Generator->ProcNodeList[Index].Token,
- NodeToken
+ Generator->ProcNodeList[Index].Token
);
if (EFI_ERROR (Status)) {
ASSERT (0);
@@ -1119,8 +1107,7 @@ CreateAmlCpuTopologyTree (
Status = CheckProcNode (
Generator->ProcNodeList[Index].Flags,
FALSE,
- Generator->ProcNodeList[Index].Token,
- NodeToken
+ Generator->ProcNodeList[Index].Token
);
if (EFI_ERROR (Status)) {
ASSERT (0);
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#113429): https://edk2.groups.io/g/devel/message/113429
Mute This Topic: https://groups.io/mt/103603398/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-