summaryrefslogtreecommitdiffstats
path: root/DynamicTablesPkg
Commit message (Collapse)AuthorAgeFilesLines
* DynamicTablesPkg: Disable deprecated APIsSami Mujawar2019-06-111-0/+4
| | | | | | | | | | Add the DISABLE_NEW_DEPRECATED_INTERFACES macro to the DynamicTablesPkg package build flags to disable deprecated APIs. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
* DynamicTablesPkg: Fix line endings in dsc fileSami Mujawar2019-06-111-36/+36
| | | | | | | | | Changed the line endings to DOS line endings for DynamicTablesPkg/DynamicTablesPkg.dsc Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
* DynamicTablesPkg: GTDT updates for ACPI 6.3Pierre Gondois2019-06-112-30/+44
| | | | | | | | | | The ACPI 6.3 specification adds support for describing ARMv8.1 EL2 virtual timers. Update GTDT Generator to extend this support. Signed-off-by: Pierre Gondois <pierre.gondois@arm.com> Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
* DynamicTablesPkg: Add dynamic PPTT table generation supportKrzysztof Koch2019-06-118-6/+1867
| | | | | | | | | | | | | | | | | The PPTT generator uses the configuration manager protocol to obtain information about platform's processor topology and caches. This data is then used to generate the PPTT table. The table generator supports ACPI 6.3, PPTT table revision 2. The dynamic PPTT generator also carries out extensive input validation which includes cycle detection and MADT-PPTT cross-validation. A number of architectural compliance checks are also performed. Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com> Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
* DynamicTablesPkg: Add ACPI 6.3 SPE support to MADT generatorKrzysztof Koch2019-06-102-46/+66
| | | | | | | | | | | | | The Dynamic Tables Framework now supports generating Multiple APIC Description Table (MADT) revision 5 for ARM platforms while maintaining backward-compatibility with ACPI 6.2. The relevant change is the enablement of the Statistical Profiling Extension (SPE). Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com> Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
* DynamicTablesPkg: Test for duplicate GT Block frame numbersKrzysztof Koch2019-06-101-2/+64
| | | | | | | | | Check for duplicate frame numbers when populating the GT Block Timer Frames inside the GTDT table generator. Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com> Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
* DynamicTablesPkg: Test for duplicate UIDs in MADT generatorKrzysztof Koch2019-06-101-7/+83
| | | | | | | | | Check for duplicate ACPI Processor UIDs when populating the GIC CPU (GICC) Interface structures inside the MADT table generator. Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com> Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
* DynamicTablesPkg: Add code for finding duplicate values in arraysKrzysztof Koch2019-06-102-0/+112
| | | | | | | | | | | | Added generic function for detecting duplicate values in an array. Also defined a function prototype to test if two objects are equal. The prototype is used as an argument to the 'FindDuplicateValues' function. Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com> Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
* DynamicTablesPkg: Add frame number validation to GTDT generatorKrzysztof Koch2019-06-101-0/+9
| | | | | | | | | | | | Added code to check if the Generic Timer Block Structure's frame number provided by the platform repository is within the allowed range (0-7). References: - ACPI 6.2 Errata A, Table 5-122, September 2017 Signed-off-by: Krzysztof Koch <krzysztof.koch@arm.com> Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
* DynamicTablesPkg: Replace BSD License with BSD+Patent LicenseMichael D Kinney2019-04-0942-295/+42
| | | | | | | | | | | | | | | | | | | | https://bugzilla.tianocore.org/show_bug.cgi?id=1373 Replace BSD 2-Clause License with BSD+Patent License. This change is based on the following emails: https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html RFCs with detailed process for the license change: V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
* DynamicTablesPkg: Minor updates and fix typosSami Mujawar2019-03-201-11/+55
| | | | | | | | | | | | | | | | | | | This patch was originally merged in edk2 master at 07f4e26eb6fe5203028ecfe9bad90d3b67dc72c8. However, this was later reverted at 4c20a7913333fdbd3b4c83dba060fefa84027313 as it was merged during the Soft Feature Freeze for edk2-stable201903. Resubmitting this patch as the edk2 merge window is now open. Minor updates to comments and typo fixes. Also removed unused structure CM_ARM_CPU_INFO_LIST. Cc: Laszlo Ersek <lersek@redhat.com> Cc: Alexei Fedorov <alexei.fedorov@arm.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Remove GIC Distributor Id fieldSami Mujawar2019-03-202-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch was originally merged in edk2 master at d3a15f435f9716aa2f2ea5e9b35fcda04f267ab4. However, this was later reverted at 82c4426a176c271d24915b403b267a431bdc52f5 as it was merged during the Soft Feature Freeze for edk2-stable201903. Resubmitting this patch as the edk2 merge window is now open. According to ACPI 6.2 Specification - Errata A, 'One, and only one, GIC distributor structure must be present in the MADT for an ARM based system'. Therefore, the GIC Distributor ID field in the ACPI MADT GICD substructure can be set to zero and there is no need for the Configuration Manager to provide this information. Update the CM_ARM_GICD_INFO structure to remove the GicId field. Similarly update the MADT Generator to set the GicId field in the GICD substructure to zero. Cc: Laszlo Ersek <lersek@redhat.com> Cc: Alexei Fedorov <alexei.fedorov@arm.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: DGB2: Update DBG2_DEBUG_PORT_DDISami Mujawar2019-03-201-4/+1
| | | | | | | | | | | | | | | | | | | | | | This patch was originally merged in edk2 master at 6814256083a90ef218e7ae240e51922045175df1. However, this was later reverted at db8382ef5e44bd07654fb4726b77f3c329210561 as it was merged during the Soft Feature Freeze for edk2-stable201903. Resubmitting this patch as the edk2 merge window is now open. The DBG2_DEBUG_PORT_DDI() macro supports adding only one Generic Base Address Register. Therefore, removed the superfluous parameter NumReg and updated the macro to use DBG2_NUMBER_OF_GENERIC_ADDRESS_REGISTERS which has a value 1. Cc: Laszlo Ersek <lersek@redhat.com> Cc: Alexei Fedorov <alexei.fedorov@arm.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Add OEM InfoSami Mujawar2019-03-2010-16/+46
| | | | | | | | | | | | | | | | | | | This patch originally merged in edk2 master at c788bdaba47536447ae37518a96d92e0da54aad7. However, this was later reverted at bdbbedea949eb4b10d24110c0e559b03c7a6bce4 as it was merged during the Soft Feature Freeze for edk2-stable201903. Resubmitting this patch as the edk2 merge window is now open. Added option for OEMs to provide OEM Table ID and OEM Revision for ACPI tables. Cc: Laszlo Ersek <lersek@redhat.com> Cc: Alexei Fedorov <alexei.fedorov@arm.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Rename enum used for ID MappingSami Mujawar2019-03-202-4/+4
| | | | | | | | | | | | | | | | | | | This patch was originally merged in edk2 master at 1d49a75367ef6827b8b8f77f61e9ce245d1bdee3. However, this was later reverted at 334111b0dab80394aeb1ebb8f0f3314847e2dc1f as it was merged during the Soft Feature Freeze for edk2-stable201903. Resubmitting this patch as the edk2 merge window is now open. Renamed the enum EArmObjIdMapping to EArmObjIdMappingArray and updated the IORT generator accordingly. Cc: Laszlo Ersek <lersek@redhat.com> Cc: Alexei Fedorov <alexei.fedorov@arm.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Fix protocol sectionSami Mujawar2019-03-202-8/+6
| | | | | | | | | | | | | | | | | | | This patch was originally merged in edk2 master at bde673b2dcd1b087af7f49dd5f0c3b82b02172a5. However, this was later reverted at 7d180efeaa03df25973416dc0aad099f4fe7e251 as it was merged during the Soft Feature Freeze for edk2-stable201903. Resubmitting this patch as the edk2 merge window is now open. Updated the Protocols section to reflect the protocols that are produced or consumed. Cc: Laszlo Ersek <lersek@redhat.com> Cc: Alexei Fedorov <alexei.fedorov@arm.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: add package .dsc fileLeif Lindholm2019-03-191-0/+44
| | | | | | | | | Having a top-level .dsc makes it easier to perform standalone build tests of the core code, so add one. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
* DynamicTablesPkg: correct LibraryClass dependencies for Arm/DBG2Leif Lindholm2019-03-191-1/+1
| | | | | | | | | This patch changes the stated dependency in AcpiDbg2LibArm.inf from currently listed SerialPortLib to actually required PL011UartLib. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
* Revert "DynamicTablesPkg: Fix protocol section"Sami Mujawar2019-02-262-6/+8
| | | | | | | | | | | | | This reverts commit bde673b2dcd1b087af7f49dd5f0c3b82b02172a5. Reverting this patch as Soft Feature Freeze for edk2-stable201903 started on 22 Feb 2019. Cc: Laszlo Ersek <lersek@redhat.com> Cc: Alexei Fedorov <alexei.fedorov@arm.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* Revert "DynamicTablesPkg: Rename enum used for ID Mapping"Sami Mujawar2019-02-262-4/+4
| | | | | | | | | | | | | This reverts commit 1d49a75367ef6827b8b8f77f61e9ce245d1bdee3. Reverting this patch as Soft Feature Freeze for edk2-stable201903 started on 22 Feb 2019. Cc: Laszlo Ersek <lersek@redhat.com> Cc: Alexei Fedorov <alexei.fedorov@arm.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* Revert "DynamicTablesPkg: Add OEM Info"Sami Mujawar2019-02-2610-46/+16
| | | | | | | | | | | | | This reverts commit c788bdaba47536447ae37518a96d92e0da54aad7. Reverting this patch as Soft Feature Freeze for edk2-stable201903 started on 22 Feb 2019. Cc: Laszlo Ersek <lersek@redhat.com> Cc: Alexei Fedorov <alexei.fedorov@arm.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* Revert "DynamicTablesPkg: DGB2: Update DBG2_DEBUG_PORT_DDI"Sami Mujawar2019-02-261-1/+4
| | | | | | | | | | | | | This reverts commit 6814256083a90ef218e7ae240e51922045175df1. Reverting this patch as Soft Feature Freeze for edk2-stable201903 started on 22 Feb 2019. Cc: Laszlo Ersek <lersek@redhat.com> Cc: Alexei Fedorov <alexei.fedorov@arm.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* Revert "DynamicTablesPkg: Remove GIC Distributor Id field"Sami Mujawar2019-02-262-4/+5
| | | | | | | | | | | | | This reverts commit d3a15f435f9716aa2f2ea5e9b35fcda04f267ab4. Reverting this patch as Soft Feature Freeze for edk2-stable201903 started on 22 Feb 2019. Cc: Laszlo Ersek <lersek@redhat.com> Cc: Alexei Fedorov <alexei.fedorov@arm.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* Revert "DynamicTablesPkg: Minor updates and fix typos"Sami Mujawar2019-02-261-55/+11
| | | | | | | | | | | | | This reverts commit 07f4e26eb6fe5203028ecfe9bad90d3b67dc72c8. Reverting this patch as Soft Feature Freeze for edk2-stable201903 started on 22 Feb 2019. Cc: Laszlo Ersek <lersek@redhat.com> Cc: Alexei Fedorov <alexei.fedorov@arm.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Minor updates and fix typosSami Mujawar2019-02-251-11/+55
| | | | | | | | | Minor updates to comments and typo fixes. Also removed unused structure CM_ARM_CPU_INFO_LIST. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Remove GIC Distributor Id fieldSami Mujawar2019-02-252-5/+4
| | | | | | | | | | | | | | | | | According to ACPI 6.2 Specification - Errata A, 'One, and only one, GIC distributor structure must be present in the MADT for an ARM based system'. Therefore, the GIC Distributor ID field in the ACPI MADT GICD substructure can be set to zero and there is no need for the Configuration Manager to provide this information. Update the CM_ARM_GICD_INFO structure to remove the GicId field. Similarly update the MADT Generator to set the GicId field in the GICD substructure to zero. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: DGB2: Update DBG2_DEBUG_PORT_DDISami Mujawar2019-02-251-4/+1
| | | | | | | | | | | | The DBG2_DEBUG_PORT_DDI() macro supports adding only one Generic Base Address Register. Therefore, removed the superfluous parameter NumReg and updated the macro to use DBG2_NUMBER_OF_GENERIC_ADDRESS_REGISTERS which has a value 1. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Add OEM InfoSami Mujawar2019-02-2510-16/+46
| | | | | | | | | Added option for OEMs to provide OEM Table ID and OEM Revision for ACPI tables. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Rename enum used for ID MappingSami Mujawar2019-02-252-4/+4
| | | | | | | | | Renamed the enum EArmObjIdMapping to EArmObjIdMappingArray and updated the IORT generator accordingly. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Fix protocol sectionSami Mujawar2019-02-252-8/+6
| | | | | | | | | Updated the Protocols section to reflect the protocols that are produced or consumed. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg/AcpiSpcrLibArm: Support 16550 UART.Ashish Singhal2019-02-251-0/+2
| | | | | | | | | | Add support for 16550 UART to ACPI SPCR table as it is a supported UART type by HLOS. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ashish Singhal <ashishsingha@nvidia.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg/DynamicTableManagerDxe: Update DEPEXAshish Singhal2019-02-251-1/+3
| | | | | | | | | | | | DynamicTableManagerDxe initialization fails if gEdkiiDynamicTableFactoryProtocolGuid, gEdkiiConfigurationManagerProtocolGuid and gEfiAcpiTableProtocolGuid are not already available. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ashish Singhal <ashishsingha@nvidia.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Arm IORT Table GeneratorSami Mujawar2019-02-194-0/+2174
| | | | | | | | | | | | | | | | | | | | | | The IORT generator uses the configuration manager protocol to obtain information about the PCI Root Complex, SMMU, GIC ITS, Performance Monitoring counters etc. and generates the IORT table. The mappings between the components are represented using tokens. The generator invokes the configuration manager protocol interfaces and requests for objects referenced by tokens to establish the link. This table data is then used by the Table Manager to install the IORT table. The Table Manager then invokes the generator interface to free any resources allocated by the IORT table generator. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Arm PCI MCFG Table GeneratorSami Mujawar2019-02-193-0/+413
| | | | | | | | | | | | | | | | The MCFG generator uses the configuration manager protocol to obtain the PCI Configuration space information from the platform configuration manager and builds the MCFG table. This table data is then used by the Table Manager to install the MCFG table. The Table Manager then invokes the generator interface to free any resources allocated by the MCFG table generator. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Arm DBG2 Table GeneratorSami Mujawar2019-02-193-0/+512
| | | | | | | | | | | | The DBG2 generator uses the configuration manager protocol to obtain the debug serial port information from the platform configuration manager. It then updates a template DBG2 table structure. This table data is used by the Table Manager to install the DBG2 table. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Arm SPCR Table GeneratorSami Mujawar2019-02-193-0/+390
| | | | | | | | | | | The SPCR generator uses the configuration manager protocol to obtain the serial port information from the platform configuration manager. It then updates a template SPCR table structure. This table data is used by the Table Manager to install the SPCR table. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Arm ACPI GTDT GeneratorSami Mujawar2019-02-193-0/+743
| | | | | | | | | | | | | | | The GTDT generator uses the configuration manager protocol to obtain information about the architectural and platform timers available on the platform and generates the ACPI GTDT table. This table data is then used by the Table Manager to install the GTDT table. The Table Manager then invokes the generator interface to free any resources allocated by the GTDT table generator. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Arm ACPI MADT GeneratorSami Mujawar2019-02-193-0/+788
| | | | | | | | | | | | | | The MADT generator uses the configuration manager protocol to obtain information about the Arm interrupt controllers (GICC, GICD, etc.) and generates the ACPI MADT table. This table data is then used by the Table Manager to install the MADT table. The Table Manager then invokes the generator interface to free any resources allocated by the MADT table generator. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Arm ACPI FADT GeneratorSami Mujawar2019-02-193-0/+732
| | | | | | | | | | | | The FADT generator collates the relevant information required for generating a FADT table from configuration manager using the configuration manager protocol. It then updates a template FADT table structure. This table data is used by the Table Manager to install the FADT table. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Arm Raw/DSDT/SSDT GeneratorSami Mujawar2019-02-193-1/+199
| | | | | | | | | | | | A Raw generator is a simple generator. This generator provides the ability to install a binary blob (that contains ACPI table data) as an ACPI table. The binary blob could be pre-generated ACPI table data or it may be the pre-compiled output from an iAsl compiler for a DSDT or SSDT table. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Dynamic Table Manager DxeSami Mujawar2019-02-194-0/+794
| | | | | | | | | | | | | | The dynamic table manager implements the top level component that drives the table generation and installation process. It uses the configuration manager protocol to get the list of tables to be installed from the configuration manager. It iterates through the list of tables, requests the table factories for corresponding generators and invokes the generator interface to build the tables. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Dynamic Table Factory DxeSami Mujawar2019-02-199-0/+989
| | | | | | | | | | | | | The dynamic table factory dxe implements the dynamic table factory protocol. It also implements the ACPI, SMBIOS and DT table factories. The table generators register themselves with the respective table factories and the factories are responsible for instantiating instances of the generators to build the firmware tables. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Dynamic Table Factory ProtocolSami Mujawar2019-02-192-0/+272
| | | | | | | | | | This patch introduces the dynamic table factory protocol that provides an interface to register and retrieve registered generators. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Table Helper LibrarySami Mujawar2019-02-194-0/+300
| | | | | | | | | A helper library that implements common functionality for use by table generators. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Configuration Manager HelperSami Mujawar2019-02-191-0/+132
| | | | | | | | | | This patch defines a helper macro 'GET_OBJECT_LIST()' that expands to a function that uses the configuration manager protocol to retrieve configuration manager object(s). Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Configuration Manager ProtocolSami Mujawar2019-02-192-0/+133
| | | | | | | | | | | | | | | | Introduce configuration manager protocol interface that is used by the dynamic tables framework core to communicate with configuration manager. Configuration manager is a platform specific module that implements the configuration manager protocol. Table generators use this interface to retrieve the hardware information from the configuration manager. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Configuration Manager ObjectsSami Mujawar2019-02-191-0/+182
| | | | | | | | | | | | | | | | | | | | | | | | The dynamic tables frameworks core communicates with the platform specific implementation using the configuration manager protocol interface. The dynamic tables framework core uses this interface to retrieve information required for generating the firmware tables. This information is represented in the form of objects, which are classified as standard namespace objects, Arm namespace objects or as Custom/OEM namespace objects. The configuration manager objects provides a convenient way for wrapping up the namespaces using a well defined configuration manager object Id. The configuration manager is a platform specific component that collates the platform information required for generating firmware tables and represents them as configuration manager objects. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Arm NameSpace ObjectsSami Mujawar2019-02-191-0/+591
| | | | | | | | | | | | | | | | | | The dynamic tables frameworks core communicates with the platform specific implementation using the configuration manager protocol interface. The dynamic tables framework core uses this interface to retrieve information required for generating the firmware tables. This information is represented in the form of objects, which are classified as standard namespace objects, Arm namespace objects or as Custom/OEM namespace objects. This patch introduces the definitions for the Arm namespace objects. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: Standard NameSpace ObjectsSami Mujawar2019-02-191-0/+119
| | | | | | | | | | | | | | | | | | The dynamic tables frameworks core communicates with the platform specific implementation using the configuration manager protocol interface. The dynamic tables framework core uses this interface to retrieve information required for generating the firmware tables. This information is represented in the form of objects, which are classified as standard namespace objects, Arm namespace objects or as Custom/OEM namespace objects. This patch introduces the definitions for standard namespace objects. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>
* DynamicTablesPkg: DT Table GeneratorSami Mujawar2019-02-191-0/+182
| | | | | | | | | This patch introduces the interfaces and definitions for implementing a Device Tree table generator. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>