dynamic tables framework: a step towards …...presented by dynamic tables framework: a step towards...
TRANSCRIPT
presented by
Dynamic Tables Framework: A Step Towards Automatic Generation of Advanced Configuration and Power
Interface (ACPI) & System Management BIOS (SMBIOS) Tables
Spring 2018 UEFI Seminar and PlugfestMarch 26-30, 2018
Presented by Sami Mujawar (Arm Ltd.)
Agenda
• Introduction
• Dynamic Tables Framework
• Status & Plans
• Links
• Questions
www.uefi.org 2UEFI Plugfest – Spring 2018
Background
www.uefi.org 4UEFI Plugfest – Spring 2018
• Number of firmware builds for a platform.
big/Juno x big.LITTLE/ x Display/ x Debug/ = Firmware
LITTLE Headless Release3 x 2 x 2 = 12
(MADT) (FADT) (6 ACPI variants)• Multiple firmware builds for similar platforms/hardware
variants.• Erroneous tables generated while handcrafting tables.
Goals
www.uefi.org 5UEFI Plugfest – Spring 2018
• Configurable firmware builds.
• Unify firmware build for similar platforms.
• Minimize/eliminate human induced errors.
• Ability to validate, and generate firmware that complies with relevant specifications.
Simplicity
www.uefi.org 6UEFI Plugfest – Spring 2018
• Select which ACPI tables to install.
• Provide hardware information.
• Framework generates the ACPI tables.
• Allow use of pre-generated tables.
Framework Architecture
www.uefi.org 8UEFI Plugfest – Spring 2018
Key
ACPI Table Generators
Table Manager
ACPI Table Factory SMBIOS Table Factory
MADT
GTDT
Table<n>
OEM
SMBIOS Table Generators
Type0
Type1
Type<n>
OEM
Configuration Manager
Configuration Manager Protocol
PlatformInfo
Repository
Platform Specific/OEM Modules
Platform Specific ImplementationStandard/Generic Implementation
RAW
Configuration Manager
www.uefi.org 9UEFI Plugfest – Spring 2018
• Platform specific implementation.• Collates the platform hardware
information required for building the tables.
• Populates an abstract Platform Information Repository.
• Provides a list of tables to be installed.• Implements the Configuration
Manager Protocol that provides an interface to access the platform information.
Key
Configuration Manager
Configuration Manager Protocol
PlatformInfo
Repository
Platform Specific/OEM Modules
Platform Specific Implementation
Table Manager
www.uefi.org 10UEFI Plugfest – Spring 2018
• Drives the table generation and installation.– Retrieves the list of tables
to install from the Configuration Manager.
– Gets the required table generators from the Table Factory
– Invokes the table generator to build the tables.
– Installs the tables.Key
ACPI Table Generators
Table Manager
ACPI Table Factory SMBIOS Table Factory
MADT
GTDT
Table<n>
OEM
SMBIOS Table Generators
Type0
Type1
Type<n>
OEM
Platform Specific/OEM Modules
Standard/Generic Implementation
RAW
Table Factory
www.uefi.org 11UEFI Plugfest – Spring 2018
• The table factory is responsible for managing the list of available table generators.
• The table generators register with the table factory.
Key
ACPI Table Generators
Table Manager
ACPI Table Factory SMBIOS Table Factory
MADT
GTDT
Table<n>
OEM
SMBIOS Table Generators
Type0
Type1
Type<n>
OEM
Platform Specific/OEM Modules
Standard/Generic Implementation
RAW
Table Generators
www.uefi.org 12UEFI Plugfest – Spring 2018
• Implement table specific logic for constructing the tables.
• Uses Configuration Manager Protocol interface to fetch the required platform information for building the table.
• Perform checks to see if the information provided to generate the table is consistent with the specifications.
Key
ACPI Table Generators
Table Manager
ACPI Table Factory SMBIOS Table Factory
MADT
GTDT
Table<n>
OEM
SMBIOS Table Generators
Type0
Type1
Type<n>
OEM
Platform Specific/OEM Modules
Standard/Generic Implementation
RAW
Table Generator Types
www.uefi.org 13UEFI Plugfest – Spring 2018
• Standard
– Generic implementation
– RAW
• OEM
– Allows customization
Key
ACPI Table Generators
Table Manager
ACPI Table Factory SMBIOS Table Factory
MADT
GTDT
Table<n>
OEM
SMBIOS Table Generators
Type0
Type1
Type<n>
OEM
Platform Specific/OEM Modules
Standard/Generic Implementation
RAW
Table generation sequence
www.uefi.org 14UEFI Plugfest – Spring 2018
:Dynamic Firmware
Table Manager
:Configuration
Manager
ACPI Table Factory
:Table Factory
Get Table List
Table List
loop
[for each
Table in List]
loop
[for each
Table in List]
Get Generator (e.g. MADT)
:Table
Generator
Build Table
Get Hardware1
Info
Get Hardware2
Info
UEFI
ACPI Table Protocol InstallAcpiTable
Current Status
www.uefi.org 16UEFI Plugfest – Spring 2018
• Prototyped on Juno and FVP model platforms.• ACPI 6.2 with support for the following tables:
– DBG2– FADT– GTDT– IORT– MADT– MCFG– SPCR– RAW (DSDT/SSDT)
Future Plans
www.uefi.org 17UEFI Plugfest – Spring 2018
• Supporting more ACPI tables.
• Hardware information parser.
• Adding SMBIOS support.
Hardware Information Parser
www.uefi.org 18UEFI Plugfest – Spring 2018
• Parser capable of loading hardware information from a suitable hardware description format represented using, for example, XML or JSON.
• Enables firmware customisation from generated system descriptions.
HW Info Parser
Key
Configuration Manager
Configuration Manager Protocol
PlatformInfo
Repository
Platform Specific/OEM Modules
Platform Specific Implementation
Links
www.uefi.org 19UEFI Plugfest – Spring 2018
• Dynamic Tables Frameworkhttps://github.com/tianocore/edk2-staging/tree/dynamictables
https://github.com/tianocore/edk2-platforms/tree/devel-dynamictables
• ACPICA Patchhttps://lists.acpica.org/pipermail/devel/2018-March/001755.html
• ACPIviewhttps://lists.01.org/pipermail/edk2-devel/2018-March/022465.html
Impact?
www.uefi.org 21UEFI Plugfest – Spring 2018
• Memory footprint?– RAM requirement may increase somewhat.
• Memory footprint only increases at boot time (no runtime services impact).
– Image Size may be slightly increased.• Can be optimized by excluding generators that are not required
for the platform.
• Boot time?– Possible optimization using:
• Cached information.• Tables pre-generated using dynamic tables framework, possibly
extracted using ACPIview.
Thanks for attending the Spring 2018 UEFI Plugfest
For more information on the UEFI Forum and UEFI Specifications, visit http://www.uefi.org
presented by
www.uefi.org 22UEFI Plugfest – Spring 2018