On Tue, Jul 09, 2024 at 12:47:08 +0200, Marcin Juszkiewicz wrote: > ACPI 6.5 is the newest version of specification so far. The only change
"The only functional change..." With that: Reviewed-by: Leif Lindholm <quic_llind...@quicinc.com> / Leif > to make is handling of CacheId (has to be unique and higher than zero). > > Signed-off-by: Marcin Juszkiewicz <marcin.juszkiew...@linaro.org> > --- > .../Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.h | 4 +- > .../Include/IndustryStandard/SbsaQemuAcpi.h | 46 ++++--- > .../Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c | 127 > ++++++++++---------- > 3 files changed, 94 insertions(+), 83 deletions(-) > > diff --git a/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.h > b/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.h > index 085c681ba55f..5aaf02e3ca30 100644 > --- a/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.h > +++ b/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.h > @@ -90,8 +90,8 @@ typedef struct { > > #define SBSAQEMU_ACPI_PROCESSOR_HIERARCHY_NODE_STRUCTURE_INIT(Flags, Parent, > ACPIProcessorID, NumberOfPrivateResources) \ > { > \ > - EFI_ACPI_6_3_PPTT_TYPE_PROCESSOR, > /* Type */ \ > - sizeof (EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR) + > NumberOfPrivateResources * sizeof (UINT32), /* Length */ > \ > + EFI_ACPI_6_5_PPTT_TYPE_PROCESSOR, > /* Type */ \ > + sizeof (EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR) + > NumberOfPrivateResources * sizeof (UINT32), /* Length */ > \ > { EFI_ACPI_RESERVED_BYTE, EFI_ACPI_RESERVED_BYTE }, > /* Reserved */ \ > Flags, > /* Flags */ \ > Parent, > /* Parent */ \ > diff --git a/Silicon/Qemu/SbsaQemu/Include/IndustryStandard/SbsaQemuAcpi.h > b/Silicon/Qemu/SbsaQemu/Include/IndustryStandard/SbsaQemuAcpi.h > index 2f87591e737a..fa2e2b30bb7d 100644 > --- a/Silicon/Qemu/SbsaQemu/Include/IndustryStandard/SbsaQemuAcpi.h > +++ b/Silicon/Qemu/SbsaQemu/Include/IndustryStandard/SbsaQemuAcpi.h > @@ -87,13 +87,13 @@ typedef struct { > #define SBSAQEMU_L2_CACHE_ASSC 8 > > #define CLUSTER_INDEX (sizeof (EFI_ACPI_DESCRIPTION_HEADER)) > -#define L1_D_CACHE_INDEX (CLUSTER_INDEX + sizeof > (EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR)) > -#define L1_I_CACHE_INDEX (L1_D_CACHE_INDEX + sizeof > (EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE)) > -#define L2_CACHE_INDEX (L1_I_CACHE_INDEX + sizeof > (EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE)) > +#define L1_D_CACHE_INDEX (CLUSTER_INDEX + sizeof > (EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR)) > +#define L1_I_CACHE_INDEX (L1_D_CACHE_INDEX + sizeof > (EFI_ACPI_6_5_PPTT_STRUCTURE_CACHE)) > +#define L2_CACHE_INDEX (L1_I_CACHE_INDEX + sizeof > (EFI_ACPI_6_5_PPTT_STRUCTURE_CACHE)) > > #define SBSAQEMU_ACPI_PPTT_L1_D_CACHE_STRUCT { > \ > - EFI_ACPI_6_3_PPTT_TYPE_CACHE, > \ > - sizeof (EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE), > \ > + EFI_ACPI_6_5_PPTT_TYPE_CACHE, > \ > + sizeof (EFI_ACPI_6_5_PPTT_STRUCTURE_CACHE), > \ > { EFI_ACPI_RESERVED_BYTE, EFI_ACPI_RESERVED_BYTE }, > \ > { > \ > 1, /* SizePropertyValid */ > \ > @@ -103,22 +103,24 @@ typedef struct { > 1, /* CacheTypeValid */ > \ > 1, /* WritePolicyValid */ > \ > 1, /* LineSizeValid */ > \ > + 1, /* CacheIdValid */ > \ > }, > \ > 0, /* NextLevelOfCache */ > \ > SBSAQEMU_L1_D_CACHE_SIZE, /* Size */ > \ > SBSAQEMU_L1_D_CACHE_SETS, /* NumberOfSets */ > \ > SBSAQEMU_L1_D_CACHE_ASSC, /* Associativity */ > \ > { > \ > - EFI_ACPI_6_2_CACHE_ATTRIBUTES_ALLOCATION_READ_WRITE, > \ > - EFI_ACPI_6_2_CACHE_ATTRIBUTES_CACHE_TYPE_DATA, > \ > - EFI_ACPI_6_2_CACHE_ATTRIBUTES_WRITE_POLICY_WRITE_BACK, > \ > + EFI_ACPI_6_5_CACHE_ATTRIBUTES_ALLOCATION_READ_WRITE, > \ > + EFI_ACPI_6_5_CACHE_ATTRIBUTES_CACHE_TYPE_DATA, > \ > + EFI_ACPI_6_5_CACHE_ATTRIBUTES_WRITE_POLICY_WRITE_BACK, > \ > }, > \ > - 64 /* LineSize */ > \ > + 64, /* LineSize */ > \ > + 0 /* CacheId */ > \ > } > > #define SBSAQEMU_ACPI_PPTT_L1_I_CACHE_STRUCT { > \ > - EFI_ACPI_6_3_PPTT_TYPE_CACHE, > \ > - sizeof (EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE), > \ > + EFI_ACPI_6_5_PPTT_TYPE_CACHE, > \ > + sizeof (EFI_ACPI_6_5_PPTT_STRUCTURE_CACHE), > \ > { EFI_ACPI_RESERVED_BYTE, EFI_ACPI_RESERVED_BYTE }, > \ > { > \ > 1, /* SizePropertyValid */ > \ > @@ -128,22 +130,24 @@ typedef struct { > 1, /* CacheTypeValid */ > \ > 1, /* WritePolicyValid */ > \ > 1, /* LineSizeValid */ > \ > + 1, /* CacheIdValid */ > \ > }, > \ > 0, /* NextLevelOfCache */ > \ > SBSAQEMU_L1_I_CACHE_SIZE, /* Size */ > \ > SBSAQEMU_L1_I_CACHE_SETS, /* NumberOfSets */ > \ > SBSAQEMU_L1_I_CACHE_ASSC, /* Associativity */ > \ > { > \ > - EFI_ACPI_6_3_CACHE_ATTRIBUTES_ALLOCATION_READ, > \ > - EFI_ACPI_6_3_CACHE_ATTRIBUTES_CACHE_TYPE_INSTRUCTION, > \ > + EFI_ACPI_6_5_CACHE_ATTRIBUTES_ALLOCATION_READ, > \ > + EFI_ACPI_6_5_CACHE_ATTRIBUTES_CACHE_TYPE_INSTRUCTION, > \ > 0, > \ > }, > \ > - 64 /* LineSize */ > \ > + 64, /* LineSize */ > \ > + 0 /* CacheId */ > \ > } > > #define SBSAQEMU_ACPI_PPTT_L2_CACHE_STRUCT { > \ > - EFI_ACPI_6_3_PPTT_TYPE_CACHE, > \ > - sizeof (EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE), > \ > + EFI_ACPI_6_5_PPTT_TYPE_CACHE, > \ > + sizeof (EFI_ACPI_6_5_PPTT_STRUCTURE_CACHE), > \ > { EFI_ACPI_RESERVED_BYTE, EFI_ACPI_RESERVED_BYTE }, > \ > { > \ > 1, /* SizePropertyValid */ > \ > @@ -153,17 +157,19 @@ typedef struct { > 1, /* CacheTypeValid */ > \ > 1, /* WritePolicyValid */ > \ > 1, /* LineSizeValid */ > \ > + 1, /* CacheIdValid */ > \ > }, > \ > 0, /* NextLevelOfCache */ > \ > SBSAQEMU_L2_CACHE_SIZE, /* Size */ > \ > SBSAQEMU_L2_CACHE_SETS, /* NumberOfSets */ > \ > SBSAQEMU_L2_CACHE_ASSC, /* Associativity */ > \ > { > \ > - EFI_ACPI_6_2_CACHE_ATTRIBUTES_ALLOCATION_READ_WRITE, > \ > - EFI_ACPI_6_2_CACHE_ATTRIBUTES_CACHE_TYPE_UNIFIED, > \ > - EFI_ACPI_6_2_CACHE_ATTRIBUTES_WRITE_POLICY_WRITE_BACK, > \ > + EFI_ACPI_6_5_CACHE_ATTRIBUTES_ALLOCATION_READ_WRITE, > \ > + EFI_ACPI_6_5_CACHE_ATTRIBUTES_CACHE_TYPE_UNIFIED, > \ > + EFI_ACPI_6_5_CACHE_ATTRIBUTES_WRITE_POLICY_WRITE_BACK, > \ > }, > \ > - 64 /* LineSize */ > \ > + 64, /* LineSize */ > \ > + 0 /* CacheId */ > \ > } > > #endif > diff --git a/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c > b/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c > index 465a69d7328c..cf0102d11f1f 100644 > --- a/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c > +++ b/Silicon/Qemu/SbsaQemu/Drivers/SbsaQemuAcpiDxe/SbsaQemuAcpiDxe.c > @@ -506,35 +506,36 @@ AddPpttTable ( > UINT8 *New; > UINT32 CpuId; > CpuTopology CpuTopo; > + UINT32 CacheId; > > GetCpuTopology (&CpuTopo); > > - EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE L1DCache = > SBSAQEMU_ACPI_PPTT_L1_D_CACHE_STRUCT; > - EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE L1ICache = > SBSAQEMU_ACPI_PPTT_L1_I_CACHE_STRUCT; > - EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE L2Cache = > SBSAQEMU_ACPI_PPTT_L2_CACHE_STRUCT; > + EFI_ACPI_6_5_PPTT_STRUCTURE_CACHE L1DCache = > SBSAQEMU_ACPI_PPTT_L1_D_CACHE_STRUCT; > + EFI_ACPI_6_5_PPTT_STRUCTURE_CACHE L1ICache = > SBSAQEMU_ACPI_PPTT_L1_I_CACHE_STRUCT; > + EFI_ACPI_6_5_PPTT_STRUCTURE_CACHE L2Cache = > SBSAQEMU_ACPI_PPTT_L2_CACHE_STRUCT; > > - EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR_FLAGS SocketFlags = { > - EFI_ACPI_6_3_PPTT_PACKAGE_PHYSICAL, > - EFI_ACPI_6_3_PPTT_PROCESSOR_ID_INVALID, > - EFI_ACPI_6_3_PPTT_PROCESSOR_IS_NOT_THREAD, > - EFI_ACPI_6_3_PPTT_NODE_IS_NOT_LEAF, > - EFI_ACPI_6_3_PPTT_IMPLEMENTATION_IDENTICAL > + EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR_FLAGS SocketFlags = { > + EFI_ACPI_6_5_PPTT_PACKAGE_PHYSICAL, > + EFI_ACPI_6_5_PPTT_PROCESSOR_ID_INVALID, > + EFI_ACPI_6_5_PPTT_PROCESSOR_IS_NOT_THREAD, > + EFI_ACPI_6_5_PPTT_NODE_IS_NOT_LEAF, > + EFI_ACPI_6_5_PPTT_IMPLEMENTATION_IDENTICAL > }; > > - EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR_FLAGS ClusterFlags = { > - EFI_ACPI_6_3_PPTT_PACKAGE_NOT_PHYSICAL, > - EFI_ACPI_6_3_PPTT_PROCESSOR_ID_INVALID, > - EFI_ACPI_6_3_PPTT_PROCESSOR_IS_NOT_THREAD, > - EFI_ACPI_6_3_PPTT_NODE_IS_NOT_LEAF, > - EFI_ACPI_6_3_PPTT_IMPLEMENTATION_IDENTICAL > + EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR_FLAGS ClusterFlags = { > + EFI_ACPI_6_5_PPTT_PACKAGE_NOT_PHYSICAL, > + EFI_ACPI_6_5_PPTT_PROCESSOR_ID_INVALID, > + EFI_ACPI_6_5_PPTT_PROCESSOR_IS_NOT_THREAD, > + EFI_ACPI_6_5_PPTT_NODE_IS_NOT_LEAF, > + EFI_ACPI_6_5_PPTT_IMPLEMENTATION_IDENTICAL > }; > > - EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR_FLAGS CoreFlags = { > - EFI_ACPI_6_3_PPTT_PACKAGE_NOT_PHYSICAL, > - EFI_ACPI_6_3_PPTT_PROCESSOR_ID_VALID, > - EFI_ACPI_6_3_PPTT_PROCESSOR_IS_NOT_THREAD, > - EFI_ACPI_6_3_PPTT_NODE_IS_LEAF, > - EFI_ACPI_6_3_PPTT_IMPLEMENTATION_IDENTICAL > + EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR_FLAGS CoreFlags = { > + EFI_ACPI_6_5_PPTT_PACKAGE_NOT_PHYSICAL, > + EFI_ACPI_6_5_PPTT_PROCESSOR_ID_VALID, > + EFI_ACPI_6_5_PPTT_PROCESSOR_IS_NOT_THREAD, > + EFI_ACPI_6_5_PPTT_NODE_IS_LEAF, > + EFI_ACPI_6_5_PPTT_IMPLEMENTATION_IDENTICAL > }; > > if (CpuTopo.Threads > 1) { > @@ -543,31 +544,31 @@ AddPpttTable ( > CoreFlags.NodeIsALeaf = EFI_ACPI_6_5_PPTT_NODE_IS_NOT_LEAF; > } > > - EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR_FLAGS ThreadFlags = { > - EFI_ACPI_6_3_PPTT_PACKAGE_NOT_PHYSICAL, > - EFI_ACPI_6_3_PPTT_PROCESSOR_ID_VALID, > - EFI_ACPI_6_3_PPTT_PROCESSOR_IS_THREAD, > - EFI_ACPI_6_3_PPTT_NODE_IS_LEAF, > - EFI_ACPI_6_3_PPTT_IMPLEMENTATION_IDENTICAL > + EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR_FLAGS ThreadFlags = { > + EFI_ACPI_6_5_PPTT_PACKAGE_NOT_PHYSICAL, > + EFI_ACPI_6_5_PPTT_PROCESSOR_ID_VALID, > + EFI_ACPI_6_5_PPTT_PROCESSOR_IS_THREAD, > + EFI_ACPI_6_5_PPTT_NODE_IS_LEAF, > + EFI_ACPI_6_5_PPTT_IMPLEMENTATION_IDENTICAL > }; > > EFI_ACPI_DESCRIPTION_HEADER Header = > SBSAQEMU_ACPI_HEADER ( > - EFI_ACPI_6_3_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_STRUCTURE_SIGNATURE, > + EFI_ACPI_6_5_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_STRUCTURE_SIGNATURE, > EFI_ACPI_DESCRIPTION_HEADER, > - EFI_ACPI_6_3_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_REVISION > + EFI_ACPI_6_5_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_REVISION > ); > > TableSize = sizeof (EFI_ACPI_DESCRIPTION_HEADER) + > - CpuTopo.Sockets * (sizeof > (EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR) + > - CpuTopo.Clusters * (sizeof > (EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR) + > - sizeof > (EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE) * 3 + > - CpuTopo.Cores * (sizeof > (EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR) + > + CpuTopo.Sockets * (sizeof > (EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR) + > + CpuTopo.Clusters * (sizeof > (EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR) + > + sizeof > (EFI_ACPI_6_5_PPTT_STRUCTURE_CACHE) * 3 + > + CpuTopo.Cores * (sizeof > (EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR) + > sizeof > (UINT32) * 2))); > > if (CpuTopo.Threads > 1) { > TableSize += CpuTopo.Sockets * CpuTopo.Clusters * CpuTopo.Cores * > CpuTopo.Threads * > - sizeof (EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR); > + sizeof (EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR); > } > > Status = gBS->AllocatePages ( > @@ -593,48 +594,52 @@ AddPpttTable ( > UINT32 SocketIndex, ClusterIndex, CoreIndex, L1DCacheIndex, > L1ICacheIndex, L2CacheIndex; > > CpuId = 0; > + CacheId = 1; // 0 is not a valid Cache ID. > SocketIndex = sizeof (EFI_ACPI_DESCRIPTION_HEADER); > for (SocketNum = 0; SocketNum < CpuTopo.Sockets; SocketNum++) { > // Add the Socket PPTT structure > - EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR Socket = > SBSAQEMU_ACPI_PROCESSOR_HIERARCHY_NODE_STRUCTURE_INIT ( > + EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR Socket = > SBSAQEMU_ACPI_PROCESSOR_HIERARCHY_NODE_STRUCTURE_INIT ( > SocketFlags, > 0, > 0, > 0 > ); > - CopyMem (New, &Socket, sizeof (EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR)); > - New += sizeof (EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR); > + CopyMem (New, &Socket, sizeof (EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR)); > + New += sizeof (EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR); > > - ClusterIndex = SocketIndex + sizeof > (EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR); > + ClusterIndex = SocketIndex + sizeof > (EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR); > for (ClusterNum = 0; ClusterNum < CpuTopo.Clusters; ClusterNum++) { > - L1DCacheIndex = ClusterIndex + sizeof > (EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR); > - L1ICacheIndex = L1DCacheIndex + sizeof > (EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE); > - L2CacheIndex = L1ICacheIndex + sizeof > (EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE); > - CoreIndex = L2CacheIndex + sizeof > (EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE); > + L1DCacheIndex = ClusterIndex + sizeof > (EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR); > + L1ICacheIndex = L1DCacheIndex + sizeof > (EFI_ACPI_6_5_PPTT_STRUCTURE_CACHE); > + L2CacheIndex = L1ICacheIndex + sizeof > (EFI_ACPI_6_5_PPTT_STRUCTURE_CACHE); > + CoreIndex = L2CacheIndex + sizeof > (EFI_ACPI_6_5_PPTT_STRUCTURE_CACHE); > > // Add the Cluster PPTT structure > - EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR Cluster = > SBSAQEMU_ACPI_PROCESSOR_HIERARCHY_NODE_STRUCTURE_INIT ( > + EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR Cluster = > SBSAQEMU_ACPI_PROCESSOR_HIERARCHY_NODE_STRUCTURE_INIT ( > ClusterFlags, > SocketIndex, > 0, > 0 > ); > - CopyMem (New, &Cluster, sizeof > (EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR)); > - New += sizeof (EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR); > + CopyMem (New, &Cluster, sizeof > (EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR)); > + New += sizeof (EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR); > > // Add L1 D Cache structure > - CopyMem (New, &L1DCache, sizeof (EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE)); > - ((EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE *)New)->NextLevelOfCache = > L2CacheIndex; > - New += sizeof > (EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE); > + L1DCache.CacheId = CacheId++; > + CopyMem (New, &L1DCache, sizeof (EFI_ACPI_6_5_PPTT_STRUCTURE_CACHE)); > + ((EFI_ACPI_6_5_PPTT_STRUCTURE_CACHE *)New)->NextLevelOfCache = > L2CacheIndex; > + New += sizeof > (EFI_ACPI_6_5_PPTT_STRUCTURE_CACHE); > > // Add L1 I Cache structure > - CopyMem (New, &L1ICache, sizeof (EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE)); > - ((EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE *)New)->NextLevelOfCache = > L2CacheIndex; > - New += sizeof > (EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE); > + L1ICache.CacheId = CacheId++; > + CopyMem (New, &L1ICache, sizeof (EFI_ACPI_6_5_PPTT_STRUCTURE_CACHE)); > + ((EFI_ACPI_6_5_PPTT_STRUCTURE_CACHE *)New)->NextLevelOfCache = > L2CacheIndex; > + New += sizeof > (EFI_ACPI_6_5_PPTT_STRUCTURE_CACHE); > > // Add L2 Cache structure > - CopyMem (New, &L2Cache, sizeof (EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE)); > - New += sizeof (EFI_ACPI_6_3_PPTT_STRUCTURE_CACHE); > + L2Cache.CacheId = CacheId++; > + CopyMem (New, &L2Cache, sizeof (EFI_ACPI_6_5_PPTT_STRUCTURE_CACHE)); > + New += sizeof (EFI_ACPI_6_5_PPTT_STRUCTURE_CACHE); > > for (CoreNum = 0; CoreNum < CpuTopo.Cores; CoreNum++) { > UINT32 *PrivateResourcePtr; > @@ -646,14 +651,14 @@ AddPpttTable ( > CoreCpuId = 0; > } > > - EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR Core = > SBSAQEMU_ACPI_PROCESSOR_HIERARCHY_NODE_STRUCTURE_INIT ( > + EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR Core = > SBSAQEMU_ACPI_PROCESSOR_HIERARCHY_NODE_STRUCTURE_INIT ( > CoreFlags, > ClusterIndex, > CoreCpuId, > 2 > ); > - CopyMem (New, &Core, sizeof (EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR)); > - New += sizeof (EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR); > + CopyMem (New, &Core, sizeof (EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR)); > + New += sizeof (EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR); > > PrivateResourcePtr = (UINT32 *)New; > PrivateResourcePtr[0] = L1DCacheIndex; > @@ -665,21 +670,21 @@ AddPpttTable ( > } else { > // Add the Thread PPTT structure > for (ThreadNum = 0; ThreadNum < CpuTopo.Threads; ThreadNum++) { > - EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR Thread = > SBSAQEMU_ACPI_PROCESSOR_HIERARCHY_NODE_STRUCTURE_INIT ( > + EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR Thread = > SBSAQEMU_ACPI_PROCESSOR_HIERARCHY_NODE_STRUCTURE_INIT ( > ThreadFlags, > CoreIndex, > CpuId, > 0 > ); > - CopyMem (New, &Thread, sizeof > (EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR)); > - New += sizeof (EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR); > + CopyMem (New, &Thread, sizeof > (EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR)); > + New += sizeof (EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR); > CpuId++; > } > > - CoreIndex += CpuTopo.Threads * sizeof > (EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR); > + CoreIndex += CpuTopo.Threads * sizeof > (EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR); > } > > - CoreIndex += sizeof (EFI_ACPI_6_3_PPTT_STRUCTURE_PROCESSOR) + sizeof > (UINT32) * 2; > + CoreIndex += sizeof (EFI_ACPI_6_5_PPTT_STRUCTURE_PROCESSOR) + sizeof > (UINT32) * 2; > } > > ClusterIndex = CoreIndex; > > -- > 2.45.2 > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#119839): https://edk2.groups.io/g/devel/message/119839 Mute This Topic: https://groups.io/mt/107120144/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-