From: "Ni, Ray" <ray.ni@intel.com>
To: "Lin, JackX" <jackx.lin@intel.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Chiu, Chasel" <chasel.chiu@intel.com>,
"Dong, Eric" <eric.dong@intel.com>,
"Yao, Jiewen" <jiewen.yao@intel.com>,
"Chaganty, Rangasai V" <rangasai.v.chaganty@intel.com>,
"Kuo, Donald" <donald.kuo@intel.com>,
"Kumar, Chandana C" <chandana.c.kumar@intel.com>
Subject: Re: [edk2-platforms: PATCH V9] Platform/Intel: Correct CPU APIC IDs
Date: Thu, 26 Aug 2021 17:51:16 +0000 [thread overview]
Message-ID: <CO1PR11MB4930B886B388DEBAE1E428298CC79@CO1PR11MB4930.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20210820105338.606-1-JackX.Lin@intel.com>
> + //
> + // 5. Re-assigen AcpiProcessorId for AcpiProcessorUId uses purpose.
> + //
> + for (Socket = 0; Socket < MAX_SOCKET; Socket++) {
> + for (CurrProcessor = 0, Index = 0; CurrProcessor < mNumberOfCpus; CurrProcessor++) {
> + if (mCpuApicIdOrderTable[CurrProcessor].Flags && (mCpuApicIdOrderTable[CurrProcessor].SocketNum == Socket)) {
> + mCpuApicIdOrderTable[CurrProcessor].AcpiProcessorId = (ProcessorInfoBuffer.Location.Package << mNumOfBitShift) +
> Index;
> + Index++;
> }
> }
> + }
1. I think you need to change above code to as below?
UINTN IndexInSocket[MAX_SOCKET];
ZeroMem (IndexInSocket, sizeof (IndexInSocket));
for (Socket = 0; Socket < MAX_SOCKET; Socket++) {
for (CurrProcessor = 0, Index = 0; CurrProcessor < mNumberOfCpus; CurrProcessor++) {
if (mCpuApicIdOrderTable[CurrProcessor].Flags && (mCpuApicIdOrderTable[CurrProcessor].SocketNum == Socket)) {
mCpuApicIdOrderTable[CurrProcessor].AcpiProcessorId = (ProcessorInfoBuffer.Location.Package << mNumOfBitShift) + IndexInSocket[Socket];
IndexInSocket[Socket]++;
}
}
2. Can you separate the code refinement change (looks like most of the changes below) in a separate patch?
(No more comments)
>
> - //keep for debug purpose
> - DEBUG ((EFI_D_ERROR, "APIC ID Order Table ReOrdered\n"));
> - DebugDisplayReOrderTable();
> + //keep for debug purpose
> + DEBUG ((DEBUG_INFO, "APIC ID Order Table ReOrdered\n"));
> + DebugDisplayReOrderTable (mCpuApicIdOrderTable);
>
> - mCpuOrderSorted = TRUE;
> - }
> + mCpuOrderSorted = TRUE;
>
> return Status;
> }
> @@ -602,11 +493,11 @@ InitializeMadtHeader (
> }
>
> Status = InitializeHeader (
> - &MadtHeader->Header,
> - EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE,
> - EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION,
> - 0
> - );
> + &MadtHeader->Header,
> + EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE,
> + EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION,
> + 0
> + );
> if (EFI_ERROR (Status)) {
> return Status;
> }
> @@ -784,11 +675,11 @@ BuildAcpiTable (
> // Allocate the memory needed for the table.
> //
> Status = AllocateTable (
> - TableSpecificHdrLength,
> - Structures,
> - StructureCount,
> - &InternalTable
> - );
> + TableSpecificHdrLength,
> + Structures,
> + StructureCount,
> + &InternalTable
> + );
> if (EFI_ERROR (Status)) {
> return Status;
> }
> @@ -871,18 +762,22 @@ InstallMadtFromScratch (
> NewMadtTable = NULL;
> MaxMadtStructCount = 0;
>
> - DetectApicIdMap();
> + mCpuApicIdOrderTable = AllocateZeroPool (mNumberOfCpus * sizeof (EFI_CPU_ID_ORDER_MAP));
> + if (mCpuApicIdOrderTable == NULL) {
> + DEBUG ((DEBUG_ERROR, "Could not allocate mCpuApicIdOrderTable structure pointer array\n"));
> + return EFI_OUT_OF_RESOURCES;
> + }
>
> // Call for Local APIC ID Reorder
> Status = SortCpuLocalApicInTable ();
> if (EFI_ERROR (Status)) {
> - DEBUG ((EFI_D_ERROR, "SortCpuLocalApicInTable failed: %r\n", Status));
> + DEBUG ((DEBUG_ERROR, "SortCpuLocalApicInTable failed: %r\n", Status));
> goto Done;
> }
>
> MaxMadtStructCount = (UINT32) (
> - MAX_CPU_NUM + // processor local APIC structures
> - MAX_CPU_NUM + // processor local x2APIC structures
> + mNumberOfCpus + // processor local APIC structures
> + mNumberOfCpus + // processor local x2APIC structures
> 1 + PcdGet8(PcdPcIoApicCount) + // I/O APIC structures
> 2 + // interrupt source override structures
> 1 + // local APIC NMI structures
> @@ -906,11 +801,11 @@ InstallMadtFromScratch (
> //
> Status = InitializeMadtHeader (&MadtTableHeader);
> if (EFI_ERROR (Status)) {
> - DEBUG ((EFI_D_ERROR, "InitializeMadtHeader failed: %r\n", Status));
> + DEBUG ((DEBUG_ERROR, "InitializeMadtHeader failed: %r\n", Status));
> goto Done;
> }
>
> - DEBUG ((EFI_D_INFO, "Number of CPUs detected = %d \n", mNumberOfCPUs));
> + DEBUG ((DEBUG_INFO, "Number of CPUs detected = %d \n", mNumberOfCpus));
>
> //
> // Build Processor Local APIC Structures and Processor Local X2APIC Structures
> @@ -923,7 +818,7 @@ InstallMadtFromScratch (
> ProcLocalX2ApicStruct.Reserved[0] = 0;
> ProcLocalX2ApicStruct.Reserved[1] = 0;
>
> - for (Index = 0; Index < MAX_CPU_NUM; Index++) {
> + for (Index = 0; Index < mNumberOfCpus; Index++) {
> //
> // If x2APIC mode is not enabled, and if it is possible to express the
> // APIC ID as a UINT8, use a processor local APIC structure. Otherwise,
> @@ -936,10 +831,10 @@ InstallMadtFromScratch (
>
> ASSERT (MadtStructsIndex < MaxMadtStructCount);
> Status = CopyStructure (
> - &MadtTableHeader.Header,
> - (STRUCTURE_HEADER *) &ProcLocalApicStruct,
> - &MadtStructs[MadtStructsIndex++]
> - );
> + &MadtTableHeader.Header,
> + (STRUCTURE_HEADER *) &ProcLocalApicStruct,
> + &MadtStructs[MadtStructsIndex++]
> + );
> } else if (mCpuApicIdOrderTable[Index].ApicId != 0xFFFFFFFF) {
> ProcLocalX2ApicStruct.Flags = (UINT8) mCpuApicIdOrderTable[Index].Flags;
> ProcLocalX2ApicStruct.X2ApicId = mCpuApicIdOrderTable[Index].ApicId;
> @@ -947,13 +842,13 @@ InstallMadtFromScratch (
>
> ASSERT (MadtStructsIndex < MaxMadtStructCount);
> Status = CopyStructure (
> - &MadtTableHeader.Header,
> - (STRUCTURE_HEADER *) &ProcLocalX2ApicStruct,
> - &MadtStructs[MadtStructsIndex++]
> - );
> + &MadtTableHeader.Header,
> + (STRUCTURE_HEADER *) &ProcLocalX2ApicStruct,
> + &MadtStructs[MadtStructsIndex++]
> + );
> }
> if (EFI_ERROR (Status)) {
> - DEBUG ((EFI_D_ERROR, "CopyMadtStructure (local APIC/x2APIC) failed: %r\n", Status));
> + DEBUG ((DEBUG_ERROR, "CopyMadtStructure (local APIC/x2APIC) failed: %r\n", Status));
> goto Done;
> }
> }
> @@ -965,44 +860,44 @@ InstallMadtFromScratch (
> IoApicStruct.Length = sizeof (EFI_ACPI_4_0_IO_APIC_STRUCTURE);
> IoApicStruct.Reserved = 0;
>
> - PcIoApicEnable = PcdGet32(PcdPcIoApicEnable);
> + PcIoApicEnable = PcdGet32 (PcdPcIoApicEnable);
>
> - if (FixedPcdGet32(PcdMaxCpuSocketCount) <= 4) {
> + if (FixedPcdGet32 (PcdMaxCpuSocketCount) <= 4) {
> IoApicStruct.IoApicId = PcdGet8(PcdIoApicId);
> IoApicStruct.IoApicAddress = PcdGet32(PcdIoApicAddress);
> IoApicStruct.GlobalSystemInterruptBase = 0;
> ASSERT (MadtStructsIndex < MaxMadtStructCount);
> Status = CopyStructure (
> - &MadtTableHeader.Header,
> - (STRUCTURE_HEADER *) &IoApicStruct,
> - &MadtStructs[MadtStructsIndex++]
> - );
> + &MadtTableHeader.Header,
> + (STRUCTURE_HEADER *) &IoApicStruct,
> + &MadtStructs[MadtStructsIndex++]
> + );
> if (EFI_ERROR (Status)) {
> - DEBUG ((EFI_D_ERROR, "CopyMadtStructure (I/O APIC) failed: %r\n", Status));
> + DEBUG ((DEBUG_ERROR, "CopyMadtStructure (I/O APIC) failed: %r\n", Status));
> goto Done;
> }
> }
>
> for (PcIoApicIndex = 0; PcIoApicIndex < PcdGet8(PcdPcIoApicCount); PcIoApicIndex++) {
> - PcIoApicMask = (1 << PcIoApicIndex);
> - if ((PcIoApicEnable & PcIoApicMask) == 0) {
> - continue;
> - }
> + PcIoApicMask = (1 << PcIoApicIndex);
> + if ((PcIoApicEnable & PcIoApicMask) == 0) {
> + continue;
> + }
>
> - IoApicStruct.IoApicId = (UINT8)(PcdGet8(PcdPcIoApicIdBase) + PcIoApicIndex);
> - IoApicStruct.IoApicAddress = CurrentIoApicAddress;
> - CurrentIoApicAddress = (CurrentIoApicAddress & 0xFFFF8000) + 0x8000;
> - IoApicStruct.GlobalSystemInterruptBase = (UINT32)(24 + (PcIoApicIndex * 8));
> - ASSERT (MadtStructsIndex < MaxMadtStructCount);
> - Status = CopyStructure (
> - &MadtTableHeader.Header,
> - (STRUCTURE_HEADER *) &IoApicStruct,
> - &MadtStructs[MadtStructsIndex++]
> - );
> - if (EFI_ERROR (Status)) {
> - DEBUG ((EFI_D_ERROR, "CopyMadtStructure (I/O APIC) failed: %r\n", Status));
> - goto Done;
> - }
> + IoApicStruct.IoApicId = (UINT8)(PcdGet8(PcdPcIoApicIdBase) + PcIoApicIndex);
> + IoApicStruct.IoApicAddress = CurrentIoApicAddress;
> + CurrentIoApicAddress = (CurrentIoApicAddress & 0xFFFF8000) + 0x8000;
> + IoApicStruct.GlobalSystemInterruptBase = (UINT32)(24 + (PcIoApicIndex * 8));
> + ASSERT (MadtStructsIndex < MaxMadtStructCount);
> + Status = CopyStructure (
> + &MadtTableHeader.Header,
> + (STRUCTURE_HEADER *) &IoApicStruct,
> + &MadtStructs[MadtStructsIndex++]
> + );
> + if (EFI_ERROR (Status)) {
> + DEBUG ((DEBUG_ERROR, "CopyMadtStructure (I/O APIC) failed: %r\n", Status));
> + goto Done;
> + }
> }
>
> //
> @@ -1021,12 +916,12 @@ InstallMadtFromScratch (
>
> ASSERT (MadtStructsIndex < MaxMadtStructCount);
> Status = CopyStructure (
> - &MadtTableHeader.Header,
> - (STRUCTURE_HEADER *) &IntSrcOverrideStruct,
> - &MadtStructs[MadtStructsIndex++]
> - );
> + &MadtTableHeader.Header,
> + (STRUCTURE_HEADER *) &IntSrcOverrideStruct,
> + &MadtStructs[MadtStructsIndex++]
> + );
> if (EFI_ERROR (Status)) {
> - DEBUG ((EFI_D_ERROR, "CopyMadtStructure (IRQ2 source override) failed: %r\n", Status));
> + DEBUG ((DEBUG_ERROR, "CopyMadtStructure (IRQ2 source override) failed: %r\n", Status));
> goto Done;
> }
>
> @@ -1040,12 +935,12 @@ InstallMadtFromScratch (
>
> ASSERT (MadtStructsIndex < MaxMadtStructCount);
> Status = CopyStructure (
> - &MadtTableHeader.Header,
> - (STRUCTURE_HEADER *) &IntSrcOverrideStruct,
> - &MadtStructs[MadtStructsIndex++]
> - );
> + &MadtTableHeader.Header,
> + (STRUCTURE_HEADER *) &IntSrcOverrideStruct,
> + &MadtStructs[MadtStructsIndex++]
> + );
> if (EFI_ERROR (Status)) {
> - DEBUG ((EFI_D_ERROR, "CopyMadtStructure (IRQ9 source override) failed: %r\n", Status));
> + DEBUG ((DEBUG_ERROR, "CopyMadtStructure (IRQ9 source override) failed: %r\n", Status));
> goto Done;
> }
>
> @@ -1060,12 +955,12 @@ InstallMadtFromScratch (
>
> ASSERT (MadtStructsIndex < MaxMadtStructCount);
> Status = CopyStructure (
> - &MadtTableHeader.Header,
> - (STRUCTURE_HEADER *) &LocalApciNmiStruct,
> - &MadtStructs[MadtStructsIndex++]
> - );
> + &MadtTableHeader.Header,
> + (STRUCTURE_HEADER *) &LocalApciNmiStruct,
> + &MadtStructs[MadtStructsIndex++]
> + );
> if (EFI_ERROR (Status)) {
> - DEBUG ((EFI_D_ERROR, "CopyMadtStructure (APIC NMI) failed: %r\n", Status));
> + DEBUG ((DEBUG_ERROR, "CopyMadtStructure (APIC NMI) failed: %r\n", Status));
> goto Done;
> }
>
> @@ -1084,10 +979,10 @@ InstallMadtFromScratch (
>
> ASSERT (MadtStructsIndex < MaxMadtStructCount);
> Status = CopyStructure (
> - &MadtTableHeader.Header,
> - (STRUCTURE_HEADER *) &LocalX2ApicNmiStruct,
> - &MadtStructs[MadtStructsIndex++]
> - );
> + &MadtTableHeader.Header,
> + (STRUCTURE_HEADER *) &LocalX2ApicNmiStruct,
> + &MadtStructs[MadtStructsIndex++]
> + );
> if (EFI_ERROR (Status)) {
> DEBUG ((DEBUG_ERROR, "CopyMadtStructure (x2APIC NMI) failed: %r\n", Status));
> goto Done;
> @@ -1098,14 +993,14 @@ InstallMadtFromScratch (
> // Build Madt Structure from the Madt Header and collection of pointers in MadtStructs[]
> //
> Status = BuildAcpiTable (
> - (EFI_ACPI_DESCRIPTION_HEADER *) &MadtTableHeader,
> - sizeof (EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER),
> - MadtStructs,
> - MadtStructsIndex,
> - (UINT8 **)&NewMadtTable
> - );
> + (EFI_ACPI_DESCRIPTION_HEADER *) &MadtTableHeader,
> + sizeof (EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_HEADER),
> + MadtStructs,
> + MadtStructsIndex,
> + (UINT8 **) &NewMadtTable
> + );
> if (EFI_ERROR (Status)) {
> - DEBUG ((EFI_D_ERROR, "BuildAcpiTable failed: %r\n", Status));
> + DEBUG ((DEBUG_ERROR, "BuildAcpiTable failed: %r\n", Status));
> goto Done;
> }
>
> @@ -1113,11 +1008,11 @@ InstallMadtFromScratch (
> // Publish Madt Structure to ACPI
> //
> Status = mAcpiTable->InstallAcpiTable (
> - mAcpiTable,
> - NewMadtTable,
> - NewMadtTable->Header.Length,
> - &TableHandle
> - );
> + mAcpiTable,
> + NewMadtTable,
> + NewMadtTable->Header.Length,
> + &TableHandle
> + );
>
> Done:
> //
> @@ -1136,6 +1031,10 @@ Done:
> FreePool (NewMadtTable);
> }
>
> + if (mCpuApicIdOrderTable != NULL) {
> + FreePool (mCpuApicIdOrderTable);
> + }
> +
> return Status;
> }
>
> @@ -1155,8 +1054,8 @@ InstallMcfgFromScratch (
> PciSegmentInfo = GetPciSegmentInfo (&SegmentCount);
>
> McfgTable = AllocateZeroPool (
> - sizeof(EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE_HEADER) +
> -
> sizeof(EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_SPACE_BASE_ADDRESS_ALLOCATION_STRUCTURE) *
> SegmentCount
> + sizeof (EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_BASE_ADDRESS_TABLE_HEADER) +
> + sizeof
> (EFI_ACPI_MEMORY_MAPPED_ENHANCED_CONFIGURATION_SPACE_BASE_ADDRESS_ALLOCATION_STRUCTURE) *
> SegmentCount
> );
> if (McfgTable == NULL) {
> DEBUG ((DEBUG_ERROR, "Could not allocate MCFG structure\n"));
> @@ -1164,11 +1063,11 @@ InstallMcfgFromScratch (
> }
>
> Status = InitializeHeader (
> - &McfgTable->Header,
> -
> EFI_ACPI_3_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE,
> - EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_TABLE_REVISION,
> - 0
> - );
> + &McfgTable->Header,
> +
> EFI_ACPI_3_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE,
> + EFI_ACPI_MEMORY_MAPPED_CONFIGURATION_SPACE_ACCESS_TABLE_REVISION,
> + 0
> + );
> if (EFI_ERROR (Status)) {
> return Status;
> }
> @@ -1192,11 +1091,11 @@ InstallMcfgFromScratch (
> // Publish Madt Structure to ACPI
> //
> Status = mAcpiTable->InstallAcpiTable (
> - mAcpiTable,
> - McfgTable,
> - McfgTable->Header.Length,
> - &TableHandle
> - );
> + mAcpiTable,
> + McfgTable,
> + McfgTable->Header.Length,
> + &TableHandle
> + );
>
> return Status;
> }
> @@ -1280,7 +1179,7 @@ PlatformUpdateTables (
> switch (Table->Signature) {
>
> case EFI_ACPI_4_0_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE:
> - ASSERT(FALSE);
> + ASSERT (FALSE);
> break;
>
> case EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE:
> @@ -1324,9 +1223,9 @@ PlatformUpdateTables (
> FadtHeader->XGpe1Blk.AccessSize = 0;
> }
>
> - DEBUG(( EFI_D_ERROR, "ACPI FADT table @ address 0x%x\n", Table ));
> - DEBUG(( EFI_D_ERROR, " IaPcBootArch 0x%x\n", FadtHeader->IaPcBootArch ));
> - DEBUG(( EFI_D_ERROR, " Flags 0x%x\n", FadtHeader->Flags ));
> + DEBUG ((DEBUG_INFO, "ACPI FADT table @ address 0x%x\n", Table));
> + DEBUG ((DEBUG_INFO, " IaPcBootArch 0x%x\n", FadtHeader->IaPcBootArch));
> + DEBUG ((DEBUG_INFO, " Flags 0x%x\n", FadtHeader->Flags));
> break;
>
> case EFI_ACPI_3_0_HIGH_PRECISION_EVENT_TIMER_TABLE_SIGNATURE:
> @@ -1346,12 +1245,12 @@ PlatformUpdateTables (
> HpetBlockId.Bits.VendorId = HpetCapabilities.Bits.VendorId;
> HpetTable->EventTimerBlockId = HpetBlockId.Uint32;
> HpetTable->MainCounterMinimumClockTickInPeriodicMode = (UINT16)HpetCapabilities.Bits.CounterClockPeriod;
> - DEBUG(( EFI_D_ERROR, "ACPI HPET table @ address 0x%x\n", Table ));
> - DEBUG(( EFI_D_ERROR, " HPET base 0x%x\n", PcdGet32 (PcdHpetBaseAddress) ));
> + DEBUG ((DEBUG_INFO, "ACPI HPET table @ address 0x%x\n", Table));
> + DEBUG ((DEBUG_INFO, " HPET base 0x%x\n", PcdGet32 (PcdHpetBaseAddress)));
> break;
>
> case
> EFI_ACPI_3_0_PCI_EXPRESS_MEMORY_MAPPED_CONFIGURATION_SPACE_BASE_ADDRESS_DESCRIPTION_TABLE_SIGNATURE:
> - ASSERT(FALSE);
> + ASSERT (FALSE);
> break;
>
> default:
> @@ -1403,8 +1302,8 @@ IsHardwareChange (
> // pFADT->XDsdt
> //
> HWChangeSize = HandleCount + 1;
> - HWChange = AllocateZeroPool( sizeof(UINT32) * HWChangeSize );
> - ASSERT( HWChange != NULL );
> + HWChange = AllocateZeroPool (sizeof(UINT32) * HWChangeSize);
> + ASSERT(HWChange != NULL);
>
> if (HWChange == NULL) return;
>
> @@ -1445,14 +1344,14 @@ IsHardwareChange (
> // Calculate CRC value with HWChange data.
> //
> Status = gBS->CalculateCrc32(HWChange, HWChangeSize, &CRC);
> - DEBUG((DEBUG_INFO, "CRC = %x and Status = %r\n", CRC, Status));
> + DEBUG ((DEBUG_INFO, "CRC = %x and Status = %r\n", CRC, Status));
>
> //
> // Set HardwareSignature value based on CRC value.
> //
> FacsPtr = (EFI_ACPI_2_0_FIRMWARE_ACPI_CONTROL_STRUCTURE *)(UINTN)pFADT->FirmwareCtrl;
> FacsPtr->HardwareSignature = CRC;
> - FreePool( HWChange );
> + FreePool (HWChange);
> }
>
> VOID
> @@ -1475,17 +1374,16 @@ UpdateLocalTable (
>
> if (Version != EFI_ACPI_TABLE_VERSION_NONE) {
> Status = mAcpiTable->InstallAcpiTable (
> - mAcpiTable,
> - CurrentTable,
> - CurrentTable->Length,
> - &TableHandle
> - );
> + mAcpiTable,
> + CurrentTable,
> + CurrentTable->Length,
> + &TableHandle
> + );
> ASSERT_EFI_ERROR (Status);
> }
> }
> }
>
> -
> VOID
> EFIAPI
> AcpiEndOfDxeEvent (
> @@ -1493,16 +1391,14 @@ AcpiEndOfDxeEvent (
> VOID *ParentImageHandle
> )
> {
> -
> if (Event != NULL) {
> - gBS->CloseEvent(Event);
> + gBS->CloseEvent (Event);
> }
>
> -
> //
> // Calculate Hardware Signature value based on current platform configurations
> //
> - IsHardwareChange();
> + IsHardwareChange ();
> }
>
> /**
> @@ -1526,7 +1422,6 @@ InstallAcpiPlatform (
> EFI_STATUS Status;
> EFI_EVENT EndOfDxeEvent;
>
> -
> Status = gBS->LocateProtocol (&gEfiMpServiceProtocolGuid, NULL, (VOID **)&mMpService);
> ASSERT_EFI_ERROR (Status);
>
> @@ -1550,19 +1445,19 @@ InstallAcpiPlatform (
> // Determine the number of processors
> //
> mMpService->GetNumberOfProcessors (
> - mMpService,
> - &mNumberOfCPUs,
> - &mNumberOfEnabledCPUs
> - );
> - ASSERT (mNumberOfCPUs <= MAX_CPU_NUM && mNumberOfEnabledCPUs >= 1);
> - DEBUG ((DEBUG_INFO, "mNumberOfCPUs - %d\n", mNumberOfCPUs));
> + mMpService,
> + &mNumberOfCpus,
> + &mNumberOfEnabledCPUs
> + );
> +
> + DEBUG ((DEBUG_INFO, "mNumberOfCpus - %d\n", mNumberOfCpus));
> DEBUG ((DEBUG_INFO, "mNumberOfEnabledCPUs - %d\n", mNumberOfEnabledCPUs));
>
> DEBUG ((DEBUG_INFO, "mX2ApicEnabled - 0x%x\n", mX2ApicEnabled));
> DEBUG ((DEBUG_INFO, "mForceX2ApicId - 0x%x\n", mForceX2ApicId));
>
> // support up to 64 threads/socket
> - AsmCpuidEx(CPUID_EXTENDED_TOPOLOGY, 1, &mNumOfBitShift, NULL, NULL, NULL);
> + AsmCpuidEx (CPUID_EXTENDED_TOPOLOGY, 1, &mNumOfBitShift, NULL, NULL, NULL);
> mNumOfBitShift &= 0x1F;
> DEBUG ((DEBUG_INFO, "mNumOfBitShift - 0x%x\n", mNumOfBitShift));
>
> diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.h
> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.h
> index bd11f9e988..61f7470f80 100644
> --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.h
> +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.h
> @@ -1,7 +1,7 @@
> /** @file
> This is an implementation of the ACPI platform driver.
>
> -Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +Copyright (c) 2017 - 2021, Intel Corporation. All rights reserved.<BR>
> SPDX-License-Identifier: BSD-2-Clause-Patent
>
> **/
> @@ -35,6 +35,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
> #include <Library/MemoryAllocationLib.h>
> #include <Library/AslUpdateLib.h>
> #include <Library/PciSegmentInfoLib.h>
> +#include <Library/SortLib.h>
> +#include <Library/LocalApicLib.h>
>
> #include <Protocol/AcpiTable.h>
> #include <Protocol/MpService.h>
> diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.inf
> b/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.inf
> index 5d9c8cab50..95f6656af0 100644
> --- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.inf
> +++ b/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/AcpiPlatform.inf
> @@ -1,7 +1,7 @@
> ### @file
> # Component information file for AcpiPlatform module
> #
> -# Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
> +# Copyright (c) 2017 - 2021, Intel Corporation. All rights reserved.<BR>
> #
> # SPDX-License-Identifier: BSD-2-Clause-Patent
> #
> @@ -43,6 +43,8 @@
> PciSegmentInfoLib
> AslUpdateLib
> BoardAcpiTableLib
> + SortLib
> + LocalApicLib
>
> [Pcd]
> gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiDefaultOemId
> --
> 2.32.0.windows.2
next prev parent reply other threads:[~2021-08-26 17:51 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-20 10:53 [edk2-platforms: PATCH V9] Platform/Intel: Correct CPU APIC IDs JackX Lin
2021-08-26 17:51 ` Ni, Ray [this message]
2021-08-27 2:44 ` Ni, Ray
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CO1PR11MB4930B886B388DEBAE1E428298CC79@CO1PR11MB4930.namprd11.prod.outlook.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox