[edk2-devel] [edk2-platforms: PATCH V9] Platform/Intel: Correct CPU APIC IDs

Ni, Ray ray.ni at intel.com
Thu Aug 26 17:51:16 UTC 2021


> +  //
> +  // 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



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#79858): https://edk2.groups.io/g/devel/message/79858
Mute This Topic: https://groups.io/mt/85018230/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list