From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:400c:c0c::22a; helo=mail-wr0-x22a.google.com; envelope-from=leif.lindholm@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-wr0-x22a.google.com (mail-wr0-x22a.google.com [IPv6:2a00:1450:400c:c0c::22a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id B7CCB20954BA6 for ; Fri, 16 Mar 2018 09:47:33 -0700 (PDT) Received: by mail-wr0-x22a.google.com with SMTP id l8so12379481wrg.5 for ; Fri, 16 Mar 2018 09:53:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=s62xZX5qtN4S24XwbwJebzfCcPrzrVC2+biDSIuW4Lk=; b=LRdzp+Cmu4eLogWGwKrNy6SdXOF5HsrnaAQRliwGtt+q8gX8uKPVl7SgIT41Zx+hg7 913qMwgvRYqtp7UeGTlVl7oZocfaKtei/ezmJqgPy+wS7Dq8+Iuahh3X/M9QlUCF8x0q RXu0NY1126/0eB5bwzg9U29XZ711zrNvpz7hg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=s62xZX5qtN4S24XwbwJebzfCcPrzrVC2+biDSIuW4Lk=; b=bHWLb04PFqbgWG5d1LQJqjzxyaj+wxkssK7CDRClIvFlIVWL2cictCO1WpMQd4FaDi iKTe1yrcZXpUFl5hgPjg6gBxPe9dum54VvQyXYhuLMGsbdbrXi4vR8FWPXkvnvj7VCMQ LnveP0c7Wa6jF8ZMmBFWDwT9pl7tJscYQbWYqpRX+kQeRKGH5OxSeTQ55jZ7zLJBWiYK gbBlMRAhunVjvDhXqfGBXWcJbtF5HEhnnRn4v231XnymlAcDnSLkg/KIP3WmG3f4QeMF vfmBZiFd+8hoVYRoFsHHvYdLfrgEJsaNsCR5X41/A5giQ5t7PMmNT/nnPJLuLJk7ThnX To2Q== X-Gm-Message-State: AElRT7GN/v5k1ZSt6y7El2Wob/XY2PJLRmtH1IUSau97JhapKtlbq9VO pnZJK8bpH9JQkMi9N3HScd92IQ== X-Google-Smtp-Source: AG47ELsuLR4N/dRyaIgYbv0ovWwnsJsMK2yWtLc5qwff1r/dEuE/12cbeC60folcMsEu72OaZkK39Q== X-Received: by 10.223.200.144 with SMTP id k16mr2413837wrh.282.1521219237450; Fri, 16 Mar 2018 09:53:57 -0700 (PDT) Received: from bivouac.eciton.net (bivouac.eciton.net. [2a00:1098:0:86:1000:23:0:2]) by smtp.gmail.com with ESMTPSA id 11sm5033718wmd.1.2018.03.16.09.53.55 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 16 Mar 2018 09:53:56 -0700 (PDT) Date: Fri, 16 Mar 2018 16:53:54 +0000 From: Leif Lindholm To: "Kinney, Michael D" Cc: Sami Mujawar , "edk2-devel@lists.01.org" , Andrew Fish , "Stephanie.Hughes-Fitt@arm.com" , "nd@arm.com" Message-ID: <20180316165354.fdwwkcj4sh343oew@bivouac.eciton.net> References: <20180315190916.19956-1-sami.mujawar@arm.com> <20180315193128.eghtaqava7rssq3f@bivouac.eciton.net> MIME-Version: 1.0 In-Reply-To: User-Agent: NeoMutt/20170113 (1.7.2) Subject: Re: [staging/dynamictables PATCH] Branch to implement Dynamic Tables Framework X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Mar 2018 16:47:34 -0000 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Thanks Mike, Sami - requested branches created and pushed to edk2-platforms and edk2-staging. Regards, Leif On Thu, Mar 15, 2018 at 10:36:24PM +0000, Kinney, Michael D wrote: > Leif, > > Please create the branch in edk2-staging. > > Reviewed-by: Michael D Kinney > > Mike > > > -----Original Message----- > > From: Leif Lindholm [mailto:leif.lindholm@linaro.org] > > Sent: Thursday, March 15, 2018 12:31 PM > > To: Sami Mujawar > > Cc: edk2-devel@lists.01.org; evan.lloyd@arm.com; > > Matteo.Carlini@arm.com; Stephanie.Hughes-Fitt@arm.com; > > nd@arm.com; Andrew Fish ; Kinney, > > Michael D > > 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 > > > Signed-off-by: Evan Lloyd > > > > Reviewed-by: Leif Lindholm > > > > 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 \ > > > + Sami Mujawar > > > + > > > +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 > > > +-------------- > > > + > > > + > > > + > > > + > > > + > > > +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. > > > + > 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)' > > > > > > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel