dynamic tables framework: a step towards …...presented by dynamic tables framework: a step towards...

22
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 Plugfest March 26-30, 2018 Presented by Sami Mujawar (Arm Ltd.)

Upload: others

Post on 27-Jan-2020

20 views

Category:

Documents


0 download

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

www.uefi.org 3UEFI Plugfest – Spring 2018

Introduction

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.

www.uefi.org 7UEFI Plugfest – Spring 2018

Dynamic Tables Framework

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

www.uefi.org 15UEFI Plugfest – Spring 2018

Status & Plans

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

Questions?

www.uefi.org 20UEFI Plugfest – Spring 2018

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