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]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to