Reviewed-by: Chasel Chiu <chasel.c...@intel.com>
Thanks, Chasel > -----Original Message----- > From: Tan, Dun <dun....@intel.com> > Sent: Sunday, March 31, 2024 11:00 PM > To: devel@edk2.groups.io > Cc: Ni, Ray <ray...@intel.com>; Lou, Yun <yun....@intel.com>; Chiu, Chasel > <chasel.c...@intel.com>; Desimone, Nathaniel L > <nathaniel.l.desim...@intel.com>; Liming Gao <gaolim...@byosoft.com.cn>; > Dong, Eric <eric.d...@intel.com> > Subject: [edk2-platforms V2] MinPlatformPkg: Corret AcpiProcessorUid in MADT > > Change AcpiProcessorUid in CpuApicIdOrderTable to the index in MpService > regardless of disabled core. > > Let's take a simple example: > There are 2 enabled cores and 1 disabled core. > APICID Index in MpService > 0x0000_0000 0 > 0x0000_0010(disbaled) 1 > 0x0000_0040 2 > > With current implementation, the results of the x2apic structure entries in > MADT > are: > MADT Entry APICID AcpiProcessorUid > 0 0x0000_0000 0 > 1 0x0000_0040 1 > > The AcpiProcessorUid will be associated with the processor device defined in > DSDT/SSDT. To make sure the x2apic structure entries in MADT can be mapped to > the right processor devices in DSDT, the AcpiProcessorUid of the second x2apic > structure entry in MADT should be kept as 2, which is the core index in > MpService. > > Signed-off-by: Dun Tan <dun....@intel.com> > Cc: Ray Ni <ray...@intel.com> > Cc: Jason Lou <yun....@intel.com> > Cc: Chasel Chiu <chasel.c...@intel.com> > Cc: Nate DeSimone <nathaniel.l.desim...@intel.com> > Cc: Liming Gao <gaolim...@byosoft.com.cn> > Cc: Eric Dong <eric.d...@intel.com> > --- > Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c > b/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c > index 2a833ec99c..f6ea7454d3 100644 > --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c > +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.c > @@ -190,7 +190,7 @@ CreateCpuLocalApicInTable ( > // > for (Socket = 0; Socket < FixedPcdGet32 (PcdMaxCpuSocketCount); Socket++) { > for (CurrProcessor = 0, Index = 0; CurrProcessor < mNumberOfCpus; > CurrProcessor++) { > - if (CpuApicIdOrderTable[CurrProcessor].Flags && > (CpuApicIdOrderTable[CurrProcessor].SocketNum == Socket)) { > + if (CpuApicIdOrderTable[CurrProcessor].SocketNum == Socket) { > CpuApicIdOrderTable[CurrProcessor].AcpiProcessorUid = > (CpuApicIdOrderTable[CurrProcessor].SocketNum << mNumOfBitShift) + Index; > Index++; > } > -- > 2.31.1.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#117326): https://edk2.groups.io/g/devel/message/117326 Mute This Topic: https://groups.io/mt/105259071/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-