Add PCD to let platform control the ACPI processor ID base
This patch added PcdAcpiProcessorIdBase to allow platform to customize the processor ID start base within MADT APIC entry. Current EHL and TGL declared PR00 processor object in ACPI with unique ID value 0, but other projects used vlaue 1 instead. This patch will help fix this issue. Signed-off-by: Maurice Ma <maurice.ma@intel.com>
This commit is contained in:
parent
18d16d44ff
commit
c62e24eb8c
|
@ -135,6 +135,9 @@
|
|||
|
||||
gPlatformModuleTokenSpaceGuid.PcdVerifiedBootStage1B | FALSE | BOOLEAN| 0x200000D0
|
||||
|
||||
# ACPI processor ID base value
|
||||
gPlatformModuleTokenSpaceGuid.PcdAcpiProcessorIdBase | 1 | UINT32 | 0x200000D8
|
||||
|
||||
gPlatformModuleTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber | 16 | UINT32 | 0x200000E0
|
||||
gPlatformModuleTokenSpaceGuid.PcdMaxServiceNumber | 8 | UINT32 | 0x200000E1
|
||||
gPlatformModuleTokenSpaceGuid.PcdSeedListBufferSize | 0x00000400 | UINT32 | 0x200000E2
|
||||
|
@ -148,6 +151,7 @@
|
|||
# NOTE: some features might be disabled when ENABLE_FAST_BOOT is set.
|
||||
gPlatformModuleTokenSpaceGuid.PcdFastBootEnabled | FALSE | BOOLEAN| 0x200000F2
|
||||
|
||||
|
||||
[PcdsFixedAtBuild, PcdsPatchableInModule]
|
||||
#
|
||||
# For module patchable PCDs, if it is required to do static patching during the build
|
||||
|
|
|
@ -223,8 +223,9 @@
|
|||
gPlatformModuleTokenSpaceGuid.PcdCfgDataLoadSource | $(CFGDATA_REGION_TYPE)
|
||||
gPlatformModuleTokenSpaceGuid.PcdCfgDatabaseSize | $(CFG_DATABASE_SIZE)
|
||||
|
||||
gPlatformModuleTokenSpaceGuid.PcdHashStoreSize | $(HASH_STORE_SIZE)
|
||||
gPlatformModuleTokenSpaceGuid.PcdHashStoreSize | $(HASH_STORE_SIZE)
|
||||
|
||||
gPlatformModuleTokenSpaceGuid.PcdAcpiProcessorIdBase | $(ACPI_PROCESSOR_ID_BASE)
|
||||
gPlatformModuleTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber | $(CPU_MAX_LOGICAL_PROCESSOR_NUMBER)
|
||||
|
||||
gPlatformCommonLibTokenSpaceGuid.PcdConsoleInDeviceMask | $(CONSOLE_IN_DEVICE_MASK)
|
||||
|
|
|
@ -373,7 +373,7 @@ UpdateMadt (
|
|||
for (Index = 0; Index < SysCpuInfo->CpuCount; Index++) {
|
||||
LocalX2Apic[Index].Type = EFI_ACPI_5_0_PROCESSOR_LOCAL_X2APIC;
|
||||
LocalX2Apic[Index].Length = sizeof (EFI_ACPI_5_0_PROCESSOR_LOCAL_X2APIC_STRUCTURE);
|
||||
LocalX2Apic[Index].AcpiProcessorUid = Index + 1;
|
||||
LocalX2Apic[Index].AcpiProcessorUid = Index + PcdGet32 (PcdAcpiProcessorIdBase);
|
||||
LocalX2Apic[Index].X2ApicId = SysCpuInfo->CpuInfo[Index].ApicId;
|
||||
LocalX2Apic[Index].Flags = 1;
|
||||
}
|
||||
|
@ -384,7 +384,7 @@ UpdateMadt (
|
|||
for (Index = 0; Index < SysCpuInfo->CpuCount; Index++) {
|
||||
LocalApic[Index].Type = EFI_ACPI_5_0_PROCESSOR_LOCAL_APIC;
|
||||
LocalApic[Index].Length = sizeof (EFI_ACPI_5_0_PROCESSOR_LOCAL_APIC_STRUCTURE);
|
||||
LocalApic[Index].AcpiProcessorId = (UINT8)Index + 1;
|
||||
LocalApic[Index].AcpiProcessorId = (UINT8)(Index + PcdGet32 (PcdAcpiProcessorIdBase));
|
||||
LocalApic[Index].ApicId = (UINT8)SysCpuInfo->CpuInfo[Index].ApicId;
|
||||
LocalApic[Index].Flags = 1;
|
||||
}
|
||||
|
@ -643,7 +643,7 @@ AcpiInit (
|
|||
if (!EFI_ERROR(Status)) {
|
||||
if (UpdateRdstXsdt == 1) {
|
||||
Signature = Table->Signature;
|
||||
DEBUG ((DEBUG_INFO, "Publish ACPI table: %a\n", &Signature));
|
||||
DEBUG ((DEBUG_INFO, "Publish ACPI table: %a @ 0x%08X\n", &Signature, (UINT32)(UINTN)Current));
|
||||
RsdtEntry[XsdtIndex] = (UINT32) (UINTN)Current;
|
||||
XsdtEntry[XsdtIndex++] = (UINT64) (UINTN)Current;
|
||||
}
|
||||
|
|
|
@ -64,3 +64,4 @@
|
|||
gPlatformModuleTokenSpaceGuid.PcdSplashEnabled
|
||||
gPlatformCommonLibTokenSpaceGuid.PcdCpuX2ApicEnabled
|
||||
gPlatformModuleTokenSpaceGuid.PcdAcpiTableTemplatePtr
|
||||
gPlatformModuleTokenSpaceGuid.PcdAcpiProcessorIdBase
|
||||
|
|
|
@ -132,6 +132,7 @@ class BaseBoard(object):
|
|||
|
||||
self.PCI_EXPRESS_BASE = 0xE0000000
|
||||
self.ACPI_PM_TIMER_BASE = 0x0408
|
||||
self.ACPI_PROCESSOR_ID_BASE = 1
|
||||
self.USB_KB_POLLING_TIMEOUT = 1
|
||||
|
||||
self.VERIFIED_BOOT_STAGE_1B = 0x0
|
||||
|
|
|
@ -39,6 +39,7 @@ class Board(BaseBoard):
|
|||
self.PCI_IO_BASE = 0x00002000
|
||||
self.PCI_MEM32_BASE = 0x80000000
|
||||
self.ACPI_PM_TIMER_BASE = 0x1808
|
||||
self.ACPI_PROCESSOR_ID_BASE = 0
|
||||
|
||||
self.FLASH_BASE_ADDRESS = 0xFF000000
|
||||
self.FLASH_BASE_SIZE = (self.FLASH_LAYOUT_START - self.FLASH_BASE_ADDRESS)
|
||||
|
|
|
@ -51,7 +51,8 @@ class Board(BaseBoard):
|
|||
self.SUPPORT_ARI = 1
|
||||
self.SUPPORT_SR_IOV = 1
|
||||
|
||||
self.ACPI_PM_TIMER_BASE = 0x1808
|
||||
self.ACPI_PROCESSOR_ID_BASE = 0
|
||||
self.ACPI_PM_TIMER_BASE = 0x1808
|
||||
self.LOADER_ACPI_RECLAIM_MEM_SIZE = 0x000090000
|
||||
|
||||
self.FLASH_BASE_ADDRESS = 0xFF000000
|
||||
|
|
Loading…
Reference in New Issue