summaryrefslogtreecommitdiffstats
path: root/DynamicTablesPkg/Readme.md
Commit message (Collapse)AuthorAgeFilesLines
* DynamicTablesPkg: Introduction to Dynamic AMLSami Mujawar2020-08-131-17/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ACPI Definition block (e.g. DSDT or SSDT) tables are implemented using ACPI source language (ASL) and compiled to ACPI Machine language (AML). The AML bytecode runs in the OS ACPI Interpreter. AML has a complex grammar which makes generation of ACPI Definition block tables difficult. Dynamic Tables Framework introduces a new feature 'Dynamic AML' that aims at simplifying the generation of ACPI Definition block tables. Dynamic AML provides the following techniques for generating ACPI Definition blocks. - AML Fixup - AML Codegen - AML Fixup + Codegen AML Fixup involves patching an AML template code at runtime and then installing the fixed-up AML code as an ACPI table. AML Codegen provides APIs to generate small segments of AML code that can be serialised for installation as an ACPI table. AML Fixup + Codegen is an approach where parts of an AML template are fixed-up at runtime as well as the AML Codegen APIs are used to insert small segments of AML code in the AML template. This AML code is then serialised for installation as an ACPI table. To assist Dynamic AML generation an AmlLib library is introduced that provides a rich set of APIs that can be used to parse, traverse, fixup, codegen and serialise AML definition blocks. Signed-off-by: Pierre Gondois <pierre.gondois@arm.com> Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
* DynamicTablesPkg: Update ASL build optionsPierre Gondois2020-08-071-26/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | The EdkII BaseTools have been updated to facilitate the generation of C file containing AML data using the AmlToC script. The build system follows the following sequence for an ASL file compilation: - The ASL file is preprocessed using the C preprocessor - The Trim utility prunes the preprocessed file to removed unwanted data. - This file is compiled using an ASL compiler to generate an AML file. - The AmlToC python script reads the AML data and generates a C file with an array containing the AML data. - This C file containing a unique symbol name for the AML data array is then compiled with the firmware module. This removes the dependency on the ACPICA iASL compiler's "-tc" option which achieved the same effect but was less portable. Therefore, remove the "-tc" option from the ASL flags as this option is only been supported by the ACPICA iASL compiler. Signed-off-by: Pierre Gondois <pierre.gondois@arm.com> Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
* DynamicTablesPkg: Add EDK2 Core CI supportSami Mujawar2020-08-071-0/+71
| | | | | | | | | | | | | | | | | | The TianoCore EDKII project has introduced a Core CI infrastructure using TianoCore EDKII Tools PIP modules: * https://pypi.org/project/edk2-pytool-library/ * https://pypi.org/project/edk2-pytool-extensions/ The edk2\.pytool\Readme.md provides information to configure the environment and to run local builds. This patch defines the necessary settings for enabling the Core CI builds for DynamicTablesPkg. - Add DynamicTablesPkg.ci.yaml for Core CI - Update ReadMe.md for details and instructions Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
* DynamicTablesPkg: Fix issues reported by EDKII CISami Mujawar2020-08-071-1/+1
| | | | | | | | | | | | | | | | | The TianoCore EDKII project has introduced a Core CI infrastructure using TianoCore EDKII Tools PIP modules: * https://pypi.org/project/edk2-pytool-library/ * https://pypi.org/project/edk2-pytool-extensions/ More information on configuring the environment and running the builds can be found in edk2\.pytool\Readme.md This patch fixes the issues reported by the CI system mainly around fixing typo errors and package dec and dsc files. A subsequent patch enables the CI builds for the DynamicTablesPkg. Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
* DynamicTablesPkg: Dynamic Tables FrameworkSami Mujawar2019-02-191-0/+139
The dynamic tables framework is designed to generate standardised firmware tables that describe the hardware information at run-time. A goal of standardised firmware is to have a common firmware for a platform capable of booting both Windows and Linux operating systems. Traditionally the firmware tables are handcrafted using ACPI Source Language (ASL), Table Definition Language (TDL) and C-code. This approach can be error prone and involves time consuming debugging. In addition, it may be desirable to configure platform hardware at runtime such as: configuring the number of cores available for use by the OS, or turning SoC features ON or OFF. This patch introduces Dynamic Tables Framework which also provides mechanisms to reduce the amount of effort required in porting firmware to new platforms. A more detailed description is in the Readme.md file. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Sami Mujawar <sami.mujawar@arm.com> Reviewed-by: Alexei Fedorov <alexei.fedorov@arm.com>