public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Kinney, Michael D" <michael.d.kinney@intel.com>
To: Leif Lindholm <leif.lindholm@linaro.org>,
	Sami Mujawar <sami.mujawar@arm.com>,
	"Kinney, Michael D" <michael.d.kinney@intel.com>
Cc: "edk2-devel@lists.01.org" <edk2-devel@lists.01.org>,
	"evan.lloyd@arm.com" <evan.lloyd@arm.com>,
	"Matteo.Carlini@arm.com" <Matteo.Carlini@arm.com>,
	"Stephanie.Hughes-Fitt@arm.com" <Stephanie.Hughes-Fitt@arm.com>,
	"nd@arm.com" <nd@arm.com>, Andrew Fish <afish@apple.com>
Subject: Re: [staging/dynamictables PATCH] Branch to implement Dynamic Tables Framework
Date: Thu, 15 Mar 2018 22:36:24 +0000	[thread overview]
Message-ID: <E92EE9817A31E24EB0585FDF735412F5B8974B19@ORSMSX113.amr.corp.intel.com> (raw)
In-Reply-To: <20180315193128.eghtaqava7rssq3f@bivouac.eciton.net>

Leif,

Please create the branch in edk2-staging.

Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>

Mike

> -----Original Message-----
> From: Leif Lindholm [mailto:leif.lindholm@linaro.org]
> Sent: Thursday, March 15, 2018 12:31 PM
> To: Sami Mujawar <sami.mujawar@arm.com>
> Cc: edk2-devel@lists.01.org; evan.lloyd@arm.com;
> Matteo.Carlini@arm.com; Stephanie.Hughes-Fitt@arm.com;
> nd@arm.com; Andrew Fish <afish@apple.com>; Kinney,
> Michael D <michael.d.kinney@intel.com>
> Subject: Re: [staging/dynamictables PATCH] Branch to
> implement Dynamic Tables Framework
> 
> On Thu, Mar 15, 2018 at 07:09:16PM +0000, Sami Mujawar
> wrote:
> > This patch introduces a branch for implementing
> Dynamic Tables
> > Framework. The description is in the Readme.md file.
> >
> > Please create a branch called 'dynamictables' in
> edk2-staging.
> >
> > Contributed-under: TianoCore Contribution Agreement
> 1.1
> > Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
> > Signed-off-by: Evan Lloyd <evan.lloyd@arm.com>
> 
> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
> 
> But, adding Andrew and Mike to cc.
> If they have no comments, I can create this branch
> tomorrow.
> 
> /
>     Leif
> 
> > ---
> >
> > Apologies for sending the patch again. I had missed
> the staging tag in the subject line.
> >
> >  Readme.md | 150 ++++++++++++++++++++
> >  1 file changed, 150 insertions(+)
> >
> > diff --git a/Readme.md b/Readme.md
> > new file mode 100644
> > index
> 0000000000000000000000000000000000000000..652b0e3060f75
> a2afe9506817d1745cd903b0cb2
> > --- /dev/null
> > +++ b/Readme.md
> > @@ -0,0 +1,150 @@
> > +This branch will be used to develop the Dynamic
> Tables Framework.
> > +
> > +Dynamic Tables Framework
> > +------------------------
> > +
> > +To reduce the amount of effort required in porting
> firmware to new
> > +platforms, we propose this "Dynamic Tables"
> framework.  The aim is
> > +to provide an example implementation capable of
> generating the
> > +firmware tables from an external source.  This is
> potentially a
> > +management node, either local or remote, or, where
> suitable, a file
> > +that might be generated from the system
> construction.  This initial
> > +"proof of concept" release does not fully implement
> that - the
> > +configuration is held in local UEFI modules.
> > +
> > +Branch Owners
> > +-------------
> > +   Evan Lloyd <evan.lloyd@arm.com> \
> > +   Sami Mujawar <sami.mujawar@arm.com>
> > +
> > +Feature Summary
> > +---------------
> > +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.
> > +
> > +The dynamic tables framework simplifies this by
> providing a set
> > +of standard table generators, that are implemented
> as libraries.
> > +These generators query a platform specific
> component, the
> > +'Configuration Manager', to collate the information
> required
> > +for generating the tables at run-time.
> > +
> > +The framework also provides the ability to implement
> custom/OEM
> > +generators; thereby facilitating support for custom
> tables. The
> > +custom generators can also utilize the existing
> standard generators
> > +and override any functionality if needed.
> > +
> > +The framework currently implements a set of standard
> ACPI table
> > +generators for ARM architecture, that can generate
> Server Base Boot
> > +Requirement (SBBR) compliant tables. Although, the
> set of standard
> > +generators implement the functionality required for
> ARM architecture;
> > +the framework is extensible, and support for other
> architectures can
> > +be added easily.
> > +
> > +The framework currently supports the following table
> generators for ARM:
> > +* DBG2 - Debug Port Table 2
> > +* DSDT - Differentiated system description table.
> This is essentially
> > +         a RAW table generator.
> > +* FADT - Fixed ACPI Description Table
> > +* GTDT - Generic Timer Description Table
> > +* IORT - IO Remapping Table
> > +* MADT - Multiple APIC Description Table
> > +* MCFG - PCI Express memory mapped configuration
> space base address
> > +         Description Table
> > +* SPCR - Serial Port Console Redirection Table
> > +* SSDT - Secondary System Description Table. This is
> essentially
> > +         a RAW table generator.
> > +
> > +Roadmap
> > +-------
> > +The current implementation of the Configuration
> Manager populates the
> > +platform information statically as a C structure.
> Further enhancements
> > +to introduce runtime loading of platform information
> from a platform
> > +information file is planned.
> > +
> > +Also support for generating SMBIOS tables is planned
> and will be added
> > +subsequently.
> > +
> > +Related Modules
> > +---------------
> > +
> > +### edk2-platforms
> > +The *devel-dynamictables* branch in the **edk2-
> platform** repository contains
> > +the Configuration Manager implementation (the
> platform specific component)
> > +for Juno and Fixed Virtual Platform models.
> > +
> > +### ACPICA iASL compiler
> > +The RAW table generator, used to process the
> DSDT/SSDT files depends on
> > +the iASL compiler to convert the DSDT/SSDT ASL files
> to a C array containing
> > +the hex AML code. The current implementation of the
> iASL compiler does not
> > +support generation of a C header file suitable for
> including from a C source
> > +file.
> > +
> > +Related Links
> > +--------------
> > +
> > +<https://github.com/tianocore/edk2-platforms.git>
> > +
> > +<https://github.com/acpica/acpica.git>
> > +
> > +Supported Platforms
> > +-------------------
> > +1. Juno
> > +2. FVP Models
> > +
> > +Build Instructions
> > +------------------
> > +1. Set path for the iASL compiler with support for
> generating a C header
> > +   file as output.
> > +
> > +2. Set PACKAGES_PATH to point to the locations of
> the following repositories:
> > +
> > +Example:
> > +
> > +> set PACKAGES_PATH=%CD%\edk2;%CD%\edk2-
> platforms;%CD%\edk2-non-osi
> > +
> > +  or
> > +
> > +> export PACKAGES_PATH=$PWD/edk2:$PWD/edk2-
> platforms:$PWD/edk2-non-osi
> > +
> > +3. To enable Dynamic tables framework the
> *'DYNAMIC_TABLES_FRAMEWORK'*
> > +option must be defined. This can be passed as a
> command line
> > +parameter to the edk2 build system.
> > +
> > +Example:
> > +
> > +>build -a AARCH64 -p
> Platform\ARM\JunoPkg\ArmJuno.dsc
> > +   -t GCC5 **-D DYNAMIC_TABLES_FRAMEWORK**
> > +
> > +or
> > +
> > +>build -a AARCH64 -p
> Platform\ARM\VExpressPkg\ArmVExpress-FVP-AArch64.dsc
> > +   -t GCC5 **-D DYNAMIC_TABLES_FRAMEWORK**
> > +
> > +
> > +Prerequisites
> > +-------------
> > +ACPICA iASL compiler with support for generating a C
> header file.
> > +
> > +A patch ***'Modify hex AML C header file
> generation'***, to enable
> > +this support has been submitted to the ACPICA source
> repository.
> > +<https://lists.acpica.org/pipermail/devel/2018-
> March/001755.html>
> > +
> > +Documentation
> > +-------------
> > +A description document is in preparation, and should
> be available in the
> > +near future.
> > +
> > +Miscellaneous
> > +-------------
> > +
> > --
> > 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'
> >
> >


  reply	other threads:[~2018-03-15 22:30 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-15 19:09 [staging/dynamictables PATCH] Branch to implement Dynamic Tables Framework Sami Mujawar
2018-03-15 19:31 ` Leif Lindholm
2018-03-15 22:36   ` Kinney, Michael D [this message]
2018-03-16 16:53     ` Leif Lindholm
  -- strict thread matches above, loose matches on Subject: below --
2018-03-14 18:35 Sami Mujawar
2018-03-15 18:47 ` Leif Lindholm

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=E92EE9817A31E24EB0585FDF735412F5B8974B19@ORSMSX113.amr.corp.intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox