summaryrefslogtreecommitdiff
path: root/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/Madt/Madt.c
diff options
context:
space:
mode:
authorJiewen Yao <jiewen.yao@intel.com>2018-02-14 21:24:02 +0800
committerJiewen Yao <jiewen.yao@intel.com>2018-03-02 08:36:11 +0800
commit78b62d1a0c3fc425107b85d8c97404a80609f752 (patch)
tree722b35a6ab0927e21db963c9bbc63aeb568b2b73 /Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/Madt/Madt.c
parentfb3107567492443967d7d03eb50f78ff94cc7600 (diff)
downloadedk2-platforms-78b62d1a0c3fc425107b85d8c97404a80609f752.tar.xz
Enable MinPlatformPkg to boot with EDK2 platform. Validated on an open server platform.
1) MinPlatform.dec a) Add PcdFspWrapperBootMode to control different behavior in FSP wrapper mode and EDKII mode (by PlatformInitPei) b) Add gPeiBaseMemoryTestPpiGuid and gPeiPlatformMemorySizePpiGuid – they are used for EDKII boot mode. c) Rename MADT related PCD for server (PcdLocalApicAddress/PcdLocalApicMmioSize/PcdIoApicAddress/PcdIoApicMmioSize/PcdIoApicId) d) Add MADT related PCD for multi IO APIC for server (PcdPcIoApicCount/PcdPcIoApicIdBase/PcdPcIoApicAddressBase/PcdPcIoApicInterruptBase) e) Add HPET related PCD (PcdHpetTimerBlockId) f) Add FADT related PCD (PcdFadtPreferredPmProfile/PcdFadtIaPcBootArch/PcdFadtFlags) g) Add PCD for DXE Silicon module flash address (PcdFlashFvFspUBase/PcdFlashFvFspUSize/PcdFlashFvFspUOffset) h) Make Flash Address PCD to be patchable, so that it can be updated in binary FV. 2) Include a) DSC/FDF: Do not always include the module, which might be from silicon code, such as SEC/CpuDxe/SmmCpu/PciHostBridge. b) DSC/FDF: UiApp.inf – fix a bug that UIAPP does not have boot manager. c) DSC/FDF: DP.inf – sync to latest performance dump tool in ShellPkg. 3) Update AcpiPlatform for server platform a) Construct MADT from scratch. b) Construct MCFG from scratch. 4) CompressLib a) Add CompressLib class and instance so that MRC data can be compressed. 5) PlatformInitPei a) Produce BaseMemoryTestPpi and PlatformMemorySizePpi in EDKII boot mode. b) Install FV in FSPM/FSPS/FSPU in EDKII boot mode. c) Move SecurityFv/AdvancedFv installation from SEC to PlatformInitPei. d) Remove BuildFvHob for flash region – it is a bug. e) Mark above 4GiB MMIO to be uncatchable. 6) PciSegmentInfoLib a) Handle the case that the lib is linked by a DXE module only. 7) PlatformSecLib a) Move SecurityFv/AdvancedFv installation from SEC to PlatformInitPei. 8) SpiFvbService a) Do not use fixed PCD, so that the address can be patchable. 9) TestPoint a) Enhance the logic to check if a memory is in save state area or not. (Support PcdCpuHotPlugSupport) 10) Add python tool a) AmlGenOffset.py – generate ACPI patch table. b) ParseVar.py – parse the VarBin generated by FCE tool and output PCD value. c) PatchFv/PatchBfv.py – patch the BFV address in ResetVector.bin d) PatchFv/PatchBinFv.py – patch patchable PCD in a given FV according to build report. e) PatchFv/RebaseBinFv.py – rebase a given FV to a new address. f) PatchFv/SyncBinFvInf.py – generate INF for a binary FV. Cc: Michael A Kubacki <michael.a.kubacki@intel.com> Cc: Amy Chan <amy.chan@intel.com> Cc: Chasel Chiu <chasel.chiu@intel.com> Cc: Rangasai V Chaganty <rangasai.v.chaganty@intel.com> Cc: Isaac W Oram <isaac.w.oram@intel.com> Cc: Brett Wang <brett.wang@intel.com> Cc: Daocheng Bu <daocheng.bu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jiewen Yao <jiewen.yao@intel.com>
Diffstat (limited to 'Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/Madt/Madt.c')
-rw-r--r--Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/Madt/Madt.c389
1 files changed, 0 insertions, 389 deletions
diff --git a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/Madt/Madt.c b/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/Madt/Madt.c
deleted file mode 100644
index 70ce150d73..0000000000
--- a/Platform/Intel/MinPlatformPkg/Acpi/AcpiTables/Madt/Madt.c
+++ /dev/null
@@ -1,389 +0,0 @@
-/** @file
- This file contains a structure definition for the ACPI 2.0 Multiple APIC
- Description Table (MADT). Any changes to the MADT table require updating the
- respective structure count in Madt.h and then adding the structure to the
- MADT defined in this file.
-
-Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
-This program and the accompanying materials are licensed and made available under
-the terms and conditions of the BSD License that accompanies this distribution.
-The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php.
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-//
-// Statements that include other files
-//
-
-#include "Madt.h"
-
-//
-// Multiple APIC Description Table
-//
-
-EFI_ACPI_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE Madt = {
- {
- {
- EFI_ACPI_2_0_MULTIPLE_SAPIC_DESCRIPTION_TABLE_SIGNATURE,
- sizeof (EFI_ACPI_2_0_MULTIPLE_APIC_DESCRIPTION_TABLE),
- EFI_ACPI_5_1_MULTIPLE_APIC_DESCRIPTION_TABLE_REVISION,
-
- //
- // Checksum will be updated at runtime
- //
- 0x00,
-
- //
- // It is expected that these values will be programmed at runtime
- //
- { ' ', ' ', ' ', ' ', ' ', ' ' },
-
- 0,
- EFI_ACPI_OEM_MADT_REVISION,
- 0,
- 0
- },
-
- //
- // MADT specific fields
- //
- FixedPcdGet64 (PcdApicLocalAddress),
- EFI_ACPI_2_0_MULTIPLE_APIC_FLAGS
- },
-
- //
- // Sample Processor Local APIC Structure
- //
- //EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC, // Type
- //sizeof (EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE), // Length
- //0x00 // Processor ID
- //0x00 // Local APIC ID
- //0x00000000, // Flags - Disabled (until initialized by platform driver)
- {
- {
- EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC, // Type
- sizeof (EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE), // Length
- 0x01, // Processor ID
- 0xFF, // Local APIC ID
- 0x00000000 // Flags - Disabled (until initialized by platform driver)
- },
- {
- EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC, // Type
- sizeof (EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE), // Length
- 0x02, // Processor ID
- 0xFF, // Local APIC ID
- 0x00000000 // Flags - Disabled (until initialized by platform driver)
- },
- {
- EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC, // Type
- sizeof (EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE), // Length
- 0x03, // Processor ID
- 0xFF, // Local APIC ID
- 0x00000000 // Flags - Disabled (until initialized by platform driver)
- },
- {
- EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC, // Type
- sizeof (EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE), // Length
- 0x04, // Processor ID
- 0xFF, // Local APIC ID
- 0x00000000 // Flags - Disabled (until initialized by platform driver)
- },
- {
- EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC, // Type
- sizeof (EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE), // Length
- 0x05, // Processor ID
- 0xFF, // Local APIC ID
- 0x00000000 // Flags - Disabled (until initialized by platform driver)
- },
- {
- EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC, // Type
- sizeof (EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE), // Length
- 0x06, // Processor ID
- 0xFF, // Local APIC ID
- 0x00000000 // Flags - Disabled (until initialized by platform driver)
- },
- {
- EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC, // Type
- sizeof (EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE), // Length
- 0x07, // Processor ID
- 0xFF, // Local APIC ID
- 0x00000000 // Flags - Disabled (until initialized by platform driver)
- },
- {
- EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC, // Type
- sizeof (EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE), // Length
- 0x08, // Processor ID
- 0xFF, // Local APIC ID
- 0x00000000 // Flags - Disabled (until initialized by platform driver)
- },
- {
- EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC, // Type
- sizeof (EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE), // Length
- 0x09, // Processor ID
- 0xFF, // Local APIC ID
- 0x00000000 // Flags - Disabled (until initialized by platform driver)
- },
- {
- EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC, // Type
- sizeof (EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE), // Length
- 0x0A, // Processor ID
- 0xFF, // Local APIC ID
- 0x00000000 // Flags - Disabled (until initialized by platform driver)
- },
- {
- EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC, // Type
- sizeof (EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE), // Length
- 0x0B, // Processor ID
- 0xFF, // Local APIC ID
- 0x00000000 // Flags - Disabled (until initialized by platform driver)
- },
- {
- EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC, // Type
- sizeof (EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE), // Length
- 0x0C, // Processor ID
- 0xFF, // Local APIC ID
- 0x00000000 // Flags - Disabled (until initialized by platform driver)
- },
- {
- EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC, // Type
- sizeof (EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE), // Length
- 0x0D, // Processor ID
- 0xFF, // Local APIC ID
- 0x00000000 // Flags - Disabled (until initialized by platform driver)
- },
- {
- EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC, // Type
- sizeof (EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE), // Length
- 0x0E, // Processor ID
- 0xFF, // Local APIC ID
- 0x00000000 // Flags - Disabled (until initialized by platform driver)
- },
- {
- EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC, // Type
- sizeof (EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE), // Length
- 0x0F, // Processor ID
- 0xFF, // Local APIC ID
- 0x00000000 // Flags - Disabled (until initialized by platform driver)
- },
- {
- EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC, // Type
- sizeof (EFI_ACPI_2_0_PROCESSOR_LOCAL_APIC_STRUCTURE), // Length
- 0x10, // Processor ID
- 0xFF, // Local APIC ID
- 0x00000000 // Flags - Disabled (until initialized by platform driver)
- }
- },
-
- //
- // Sample IO APIC Structure
- //
- //EFI_ACPI_2_0_IO_APIC, // Type
- //sizeof (EFI_ACPI_2_0_IO_APIC_STRUCTURE), // Length
- //0x00, // IO APIC ID
- //EFI_ACPI_RESERVED_BYTE, // Reserved
- //0x00000000, // IO APIC Address (physical)
- //0x00000000, // Global System Interrupt Base
- {
- {
- //
- // I/O SAPIC (ICH)
- //
- EFI_ACPI_2_0_IO_APIC, // Type
- sizeof (EFI_ACPI_2_0_IO_APIC_STRUCTURE), // Length
- FixedPcdGet8 (PcdApicIoIdPch), // IO APIC ID
- EFI_ACPI_RESERVED_BYTE, // Reserved
- FixedPcdGet64 (PcdApicIoAddress), // IO APIC Address (physical)
- 0x18 * 0 // Global System Interrupt Base
- }
- },
- //
- // Sample Interrupt Source Override Structure
- //
- //EFI_ACPI_2_0_INTERRUPT_SOURCE_OVERRIDE, // Type
- //sizeof (EFI_ACPI_2_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE), // Length
- //0x00, // Bus
- //0x00, // Source
- //0x00000000, // Global System Interrupt
- //0x0000, // Flags
- {
- {
- //
- // IRQ0=>IRQ2 Interrupt Source Override Structure
- //
- EFI_ACPI_2_0_INTERRUPT_SOURCE_OVERRIDE, // Type
- sizeof (EFI_ACPI_2_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE),// Length
- 0x00, // Bus - ISA
- 0x00, // Source - IRQ0
- 0x00000002, // Global System Interrupt - IRQ2
- 0x0000 // Flags - Conforms to specifications of the bus
- },
- {
- //
- // ISO (SCI Active High) Interrupt Source Override Structure
- //
- EFI_ACPI_2_0_INTERRUPT_SOURCE_OVERRIDE, // Type
- sizeof (EFI_ACPI_2_0_INTERRUPT_SOURCE_OVERRIDE_STRUCTURE),// Length
- 0x00, // Bus - ISA
- 0x09, // Source - IRQ9
- 0x00000009, // Global System Interrupt - IRQ9
- 0x000D // Flags - Level-tiggered, Active High
- }
- },
- //
- // Sample Non-Maskable Interrupt Source Structure
- //
- //EFI_ACPI_2_0_NON_MASKABLE_INTERRUPT_SOURCE, // Type
- //sizeof (EFI_ACPI_2_0_NON_MASKABLE_INTERRUPT_SOURCE_STRUCTURE), // Length
- //0x0000, // Flags
- //0x00000000, // Global System Interrupt
-
- //
- // Sample Local APIC NMI Structure
- //
- //EFI_ACPI_2_0_LOCAL_APIC_NMI, // Type
- //sizeof (EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE), // Length
- //0x00, // ACPI Processor ID
- //0x0000, // Flags
- //0x00, // Local APIC LINT#
-
- {
- {
- EFI_ACPI_2_0_LOCAL_APIC_NMI, // Type
- sizeof (EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE), // Length
- 0x01, // ACPI Processor ID
- 0x0005, // Flags - Edge-tiggered, Active High
- 0x01 // Local APIC LINT#
- },
- {
- EFI_ACPI_2_0_LOCAL_APIC_NMI, // Type
- sizeof (EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE), // Length
- 0x02, // ACPI Processor ID
- 0x0005, // Flags - Edge-tiggered, Active High
- 0x01 // Local APIC LINT#
- },
- {
- EFI_ACPI_2_0_LOCAL_APIC_NMI, // Type
- sizeof (EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE), // Length
- 0x03, // ACPI Processor ID
- 0x0005, // Flags - Edge-tiggered, Active High
- 0x01 // Local APIC LINT#
- },
- {
- EFI_ACPI_2_0_LOCAL_APIC_NMI, // Type
- sizeof (EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE), // Length
- 0x04, // ACPI Processor ID
- 0x0005, // Flags - Edge-tiggered, Active High
- 0x01 // Local APIC LINT#
- },
- {
- EFI_ACPI_2_0_LOCAL_APIC_NMI, // Type
- sizeof (EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE), // Length
- 0x05, // ACPI Processor ID
- 0x0005, // Flags - Edge-tiggered, Active High
- 0x01 // Local APIC LINT#
- },
- {
- EFI_ACPI_2_0_LOCAL_APIC_NMI, // Type
- sizeof (EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE), // Length
- 0x06, // ACPI Processor ID
- 0x0005, // Flags - Edge-tiggered, Active High
- 0x01 // Local APIC LINT#
- },
- {
- EFI_ACPI_2_0_LOCAL_APIC_NMI, // Type
- sizeof (EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE), // Length
- 0x07, // ACPI Processor ID
- 0x0005, // Flags - Edge-tiggered, Active High
- 0x01 // Local APIC LINT#
- },
- {
- EFI_ACPI_2_0_LOCAL_APIC_NMI, // Type
- sizeof (EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE), // Length
- 0x08, // ACPI Processor ID
- 0x0005, // Flags - Edge-tiggered, Active High
- 0x01 // Local APIC LINT#
- },
- {
- EFI_ACPI_2_0_LOCAL_APIC_NMI, // Type
- sizeof (EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE), // Length
- 0x09, // ACPI Processor ID
- 0x0005, // Flags - Edge-tiggered, Active High
- 0x01 // Local APIC LINT#
- },
- {
- EFI_ACPI_2_0_LOCAL_APIC_NMI, // Type
- sizeof (EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE), // Length
- 0x0A, // ACPI Processor ID
- 0x0005, // Flags - Edge-tiggered, Active High
- 0x01 // Local APIC LINT#
- },
- {
- EFI_ACPI_2_0_LOCAL_APIC_NMI, // Type
- sizeof (EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE), // Length
- 0x0B, // ACPI Processor ID
- 0x0005, // Flags - Edge-tiggered, Active High
- 0x01 // Local APIC LINT#
- },
- {
- EFI_ACPI_2_0_LOCAL_APIC_NMI, // Type
- sizeof (EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE), // Length
- 0x0C, // ACPI Processor ID
- 0x0005, // Flags - Edge-tiggered, Active High
- 0x01 // Local APIC LINT#
- },
- {
- EFI_ACPI_2_0_LOCAL_APIC_NMI, // Type
- sizeof (EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE), // Length
- 0x0D, // ACPI Processor ID
- 0x0005, // Flags - Edge-tiggered, Active High
- 0x01 // Local APIC LINT#
- },
- {
- EFI_ACPI_2_0_LOCAL_APIC_NMI, // Type
- sizeof (EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE), // Length
- 0x0E, // ACPI Processor ID
- 0x0005, // Flags - Edge-tiggered, Active High
- 0x01 // Local APIC LINT#
- },
- {
- EFI_ACPI_2_0_LOCAL_APIC_NMI, // Type
- sizeof (EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE), // Length
- 0x0F, // ACPI Processor ID
- 0x0005, // Flags - Edge-tiggered, Active High
- 0x01 // Local APIC LINT#
- },
- {
- EFI_ACPI_2_0_LOCAL_APIC_NMI, // Type
- sizeof (EFI_ACPI_2_0_LOCAL_APIC_NMI_STRUCTURE), // Length
- 0x10, // ACPI Processor ID
- 0x0005, // Flags - Edge-tiggered, Active High
- 0x01 // Local APIC LINT#
- }
- }
-
- //
- // Sample Local APIC Address Override Structure
- //
- //EFI_ACPI_2_0_LOCAL_APIC_ADDRESS_OVERRIDE, // Type
- //sizeof (EFI_ACPI_2_0_LOCAL_APIC_ADDRESS_OVERRIDE_STRUCTURE), // Length
- //EFI_ACPI_RESERVED_WORD, // Reserved
- //0x0000000000000000, // Local APIC Address
-
- //
- // Sample Platform Interrupt Sources Structure
- //
- //EFI_ACPI_2_0_PLATFORM_INTERRUPT_SOURCES, // Type
- //sizeof (EFI_ACPI_2_0_PLATFORM_INTERRUPT_SOURCES_STRUCTURE), // Length
- //0x0000, // Flags
- //0x00, // Interrupt Type
- //0x00, // Processor ID
- //0x00, // Processor EID
- //0x00, // IO SAPIC Vector
- //0x00000000, // Global System Interrupt
- //EFI_ACPI_RESERVED_DWORD, // Reserved
-
-};