Reviewed-by: Chasel Chiu <[email protected]>
Thanks, Chasel > -----Original Message----- > From: Tan, Dun <[email protected]> > Sent: Sunday, March 31, 2024 11:00 PM > To: [email protected] > Cc: Ni, Ray <[email protected]>; Lou, Yun <[email protected]>; Chiu, Chasel > <[email protected]>; Desimone, Nathaniel L > <[email protected]>; Liming Gao <[email protected]>; > Dong, Eric <[email protected]> > 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 <[email protected]> > Cc: Ray Ni <[email protected]> > Cc: Jason Lou <[email protected]> > Cc: Chasel Chiu <[email protected]> > Cc: Nate DeSimone <[email protected]> > Cc: Liming Gao <[email protected]> > Cc: Eric Dong <[email protected]> > --- > 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: [email protected] Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
