VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/Firmware/DynamicTablesPkg/Readme.md@ 86605

Last change on this file since 86605 was 80721, checked in by vboxsync, 5 years ago

Devices/EFI/FirmwareNew: Start upgrade process to edk2-stable201908 (compiles on Windows and works to some extent), bugref:4643

  • Property svn:eol-style set to native
File size: 5.4 KB
Line 
1Dynamic Tables Framework
2------------------------
3
4Dynamic Tables Framework provides mechanisms to reduce the amount
5of effort required in porting firmware to new platforms. The aim is
6to provide an implementation capable of generating the firmware
7tables from an external source. This is potentially a management
8node, either local or remote, or, where suitable, a file that might
9be generated from the system construction. This initial release
10does not fully implement that - the configuration is held in local
11UEFI modules.
12
13Feature Summary
14---------------
15The dynamic tables framework is designed to generate standardised
16firmware tables that describe the hardware information at
17run-time. A goal of standardised firmware is to have a common
18firmware for a platform capable of booting both Windows and Linux
19operating systems.
20
21Traditionally the firmware tables are handcrafted using ACPI
22Source Language (ASL), Table Definition Language (TDL) and
23C-code. This approach can be error prone and involves time
24consuming debugging. In addition, it may be desirable to configure
25platform hardware at runtime such as: configuring the number of
26cores available for use by the OS, or turning SoC features ON or
27OFF.
28
29The dynamic tables framework simplifies this by providing a set
30of standard table generators, that are implemented as libraries.
31These generators query a platform specific component, the
32'Configuration Manager', to collate the information required
33for generating the tables at run-time.
34
35The framework also provides the ability to implement custom/OEM
36generators; thereby facilitating support for custom tables. The
37custom generators can also utilize the existing standard generators
38and override any functionality if needed.
39
40The framework currently implements a set of standard ACPI table
41generators for ARM architecture, that can generate Server Base Boot
42Requirement (SBBR) compliant tables. Although, the set of standard
43generators implement the functionality required for ARM architecture;
44the framework is extensible, and support for other architectures can
45be added easily.
46
47The framework currently supports the following table generators for ARM:
48* DBG2 - Debug Port Table 2
49* DSDT - Differentiated system description table. This is essentially
50 a RAW table generator.
51* FADT - Fixed ACPI Description Table
52* GTDT - Generic Timer Description Table
53* IORT - IO Remapping Table
54* MADT - Multiple APIC Description Table
55* MCFG - PCI Express memory mapped configuration space base address
56 Description Table
57* SPCR - Serial Port Console Redirection Table
58* SSDT - Secondary System Description Table. This is essentially
59 a RAW table generator.
60
61Roadmap
62-------
63The current implementation of the Configuration Manager populates the
64platform information statically as a C structure. Further enhancements
65to introduce runtime loading of platform information from a platform
66information file is planned.
67
68Also support for generating SMBIOS tables is planned and will be added
69subsequently.
70
71Related Modules
72---------------
73
74### ACPICA iASL compiler
75The RAW table generator, used to process the DSDT/SSDT files depends on
76the iASL compiler to convert the DSDT/SSDT ASL files to a C array containing
77the hex AML code. The "-tc" option of the iASL compiler has been enhanced to
78support generation of an AML hex file (C header) with a unique symbol name
79so that it is suitable for inclusion from a C source file.
80
81Related Links
82--------------
83
84<https://github.com/acpica/acpica.git>
85
86
87Supported Platforms
88-------------------
891. Juno
902. FVP Models
91
92Build Instructions
93------------------
941. Set path for the iASL compiler with support for generating a C header
95 file as output.
96
972. Set PACKAGES_PATH to point to the locations of the following repositories:
98
99Example:
100
101> set PACKAGES_PATH=%CD%\edk2;%CD%\edk2-platforms;
102
103 or
104
105> export PACKAGES_PATH=$PWD/edk2:$PWD/edk2-platforms
106
1073. To enable Dynamic tables framework the *'DYNAMIC_TABLES_FRAMEWORK'*
108option must be defined. This can be passed as a command line
109parameter to the edk2 build system.
110
111Example:
112
113>build -a AARCH64 -p Platform\ARM\JunoPkg\ArmJuno.dsc
114 -t GCC5 **-D DYNAMIC_TABLES_FRAMEWORK**
115
116or
117
118>build -a AARCH64 -p Platform\ARM\VExpressPkg\ArmVExpress-FVP-AArch64.dsc
119 -t GCC5 **-D DYNAMIC_TABLES_FRAMEWORK**
120
121Prerequisites
122-------------
123ACPICA iASL compiler with the enhanced "-tc" option to support generation of
124AML hex (C header) files with unique symbol names.
125
126A patch *'[iASL: Enhance the -tc option (create AML hex file in C)](https://github.com/acpica/acpica/commit/f9a88a4c1cd020b6a5475d63b29626852a0b5f37)'*, dated 16 March 2018 (2018-03-16),
127to enable this support has been integrated to the ACPICA source repository.
128
129Ensure that the iASL compiler used for building *Dynamic Tables Framework* has this feature enabled.
130
131This feature was made available in the *ACPICA Compiler update
132[Version 20180508](https://www.acpica.org/node/156)*, dated 8 May 2018 (2018-05-08).
133
134Documentation
135-------------
136
137Refer to the following presentation from *UEFI Plugfest Seattle 2018*:
138
139[Dynamic Tables Framework: A Step Towards Automatic Generation of Advanced Configuration and Power Interface (ACPI) & System Management BIOS (SMBIOS) Tables – Sami Mujawar (Arm).](http://www.uefi.org/sites/default/files/resources/Arm_Dynamic%20Tables%20Framework%20A%20Step%20Towards%20Automatic%20Generation%20of%20Advanced%20Configuration%20and%20Power%20Interface%20%28ACPI%29%20%26%20System%20Management%20BIOS%20%28SMBIOS%29%20Tables%20_0.pdf)
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette