From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 158E2740034 for ; Mon, 4 Mar 2024 10:40:36 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=3OaEpA97IfMJ2bmalWJcc8vGu908b6kmw7NH0mpz1m0=; c=relaxed/simple; d=groups.io; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:In-Reply-To:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Type:Content-Disposition:Content-Transfer-Encoding; s=20140610; t=1709548835; v=1; b=kTg7ZiAFsQjYwu7C/zDN/ULU5FXQ0mEK8XrV3TUofkgetAL+mi8a3CodnRQnS/6FjkHWYWCG kIBOe+5CTq1GqAZpSl0KhsHFGyh8hBp9wXcexQ79yfBbv2vvQobN1zKhLAobdVTXl+CftoQE/+/ 9Y2LmIVHiFQAvansQgXx1bd8= X-Received: by 127.0.0.2 with SMTP id ZBUmYY7687511xSvvmmbTQP0; Mon, 04 Mar 2024 02:40:35 -0800 X-Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by mx.groups.io with SMTP id smtpd.web10.95356.1709548835017906883 for ; Mon, 04 Mar 2024 02:40:35 -0800 X-Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-1dc96f64c10so38811895ad.1 for ; Mon, 04 Mar 2024 02:40:34 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCXrQQYJ6+zH75yBkvmqOomwnYPQhmlDYUcD9geQl5EC27vVfEYOvDY87S+UoNQgp50VFGNEQgHKaUbW4gE08fZh72nATA== X-Gm-Message-State: n6Rf4Spf4aYovTtG6v6ryLzgx7686176AA= X-Google-Smtp-Source: AGHT+IFNpRha1FE20s1quNj1Kch4cYVB5ekOlKG7e77/CrPbhK5GVHsWThSOKL7SdoME9UtYy1kNyQ== X-Received: by 2002:a17:902:dac6:b0:1dc:81a4:4c73 with SMTP id q6-20020a170902dac600b001dc81a44c73mr11169012plx.0.1709548834421; Mon, 04 Mar 2024 02:40:34 -0800 (PST) X-Received: from sunil-laptop ([106.51.184.12]) by smtp.gmail.com with ESMTPSA id n9-20020a170902d2c900b001d8f111804asm8170601plc.113.2024.03.04.02.40.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Mar 2024 02:40:33 -0800 (PST) Date: Mon, 4 Mar 2024 16:10:24 +0530 From: "Sunil V L" To: Sami Mujawar Cc: "Attar, AbdulLateef (Abdul Lateef)" , "devel@edk2.groups.io" , "michael.d.kinney@intel.com" , "quic_llindhol@quicinc.com" , "ardb+tianocore@kernel.org" , "lersek@redhat.com" , Pierre Gondois , Yeo Reum Yun , Akanksha Jain , Sibel Allinson , "andrei.warkentin@intel.com" , "gmahadevan@nvidia.com" , "jeshuas@nvidia.com" , "Jeff Brasen (jbrasen@nvidia.com)" , "Meenakshi Aggarwal (meenakshi.aggarwal@nxp.com)" , nd Subject: Re: [edk2-devel] [staging/dynamictables-reorg PATCH v1 1/1] Branch to reorg Dynamic Tables & support other arch Message-ID: References: <20240130145035.24760-1-sami.mujawar@arm.com> <70718F38-7B75-40A6-A565-6A617AE76105@arm.com> MIME-Version: 1.0 In-Reply-To: <70718F38-7B75-40A6-A565-6A617AE76105@arm.com> Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,sunilvl@ventanamicro.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=kTg7ZiAF; dmarc=none; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io On Wed, Feb 14, 2024 at 08:20:24AM +0000, Sami Mujawar wrote: > Hi Abdul, >=20 > The dynamictables-reorg branch is not yet created see https://github.com/= tianocore/edk2-staging/branches > I am not sure I have permissions to create a new branch under the edk2-st= aging repo. >=20 > I will follow up and check if the maintainers can create the branches for= us. >=20 Hi Sami, I think I have permission to create branch in edk2-staging since I had created one for RISC-V sometime back. Do you want me to create? Thanks, Sunil > Regards, >=20 > Sami Mujawar >=20 >=20 > =EF=BB=BFOn 14/02/2024, 04:15, "Attar, AbdulLateef (Abdul Lateef)" > wrote: >=20 >=20 > [AMD Official Use Only - General] >=20 >=20 > Hi Sami Mujawar, > Could you please rebase the branch. > I have a patch which was built on top of the edk2 master branch. >=20 >=20 > master branch changes: https://github.com/tianocore/edk2/pull/5374 >=20 >=20 > When I try to apply the same patch(on this branch) getting below errors. >=20 >=20 > Checking patch DynamicTablesPkg/DynamicTables.dsc.inc... > error: while searching for: > DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDxe.in= f? > ? > [Components.IA32, Components.X64]? > #? > # Dynamic Table Factory Dxe? > #? > DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactoryDxe.in= f? > ? > [Components.ARM, Components.AARCH64]? > #? >=20 >=20 > error: patch failed: DynamicTablesPkg/DynamicTables.dsc.inc:31 > error: DynamicTablesPkg/DynamicTables.dsc.inc: patch does not apply > Checking patch DynamicTablesPkg/Include/ArchNameSpaceObjects.h... > Checking patch DynamicTablesPkg/Include/ConfigurationManagerObject.h... > error: while searching for: > /** @file? > ? > Copyright (c) 2017 - 2022, ARM Limited. All rights reserved.? > ? > SPDX-License-Identifier: BSD-2-Clause-Patent? > ? >=20 >=20 > error: patch failed: DynamicTablesPkg/Include/ConfigurationManagerObject.= h:1 > error: DynamicTablesPkg/Include/ConfigurationManagerObject.h: patch does = not apply >=20 >=20 >=20 >=20 > Thanks > AbduL >=20 >=20 >=20 >=20 > -----Original Message----- > From: Sami Mujawar > > Sent: Tuesday, January 30, 2024 8:21 PM > To: devel@edk2.groups.io > Cc: Sami Mujawar >; mi= chael.d.kinney@intel.com ; quic_llindhol= @quicinc.com ; ardb+tianocore@kernel.org = ; lersek@redhat.com ; pierre.gondois@arm.com ; YeoReum.Yun@= arm.com ; Akanksha.Jain2@arm.com ; Sibel.Allinson@arm.com ; = sunilvl@ventanamicro.com ; andrei.warkenti= n@intel.com ; Attar, AbdulLateef (Abdul = Lateef) >; gma= hadevan@nvidia.com ; jeshuas@nvidia.com ; jbrasen@nvidia.com ; mee= nakshi.aggarwal@nxp.com ; nd@arm.com > Subject: [staging/dynamictables-reorg PATCH v1 1/1] Branch to reorg Dynam= ic Tables & support other arch >=20 >=20 > Caution: This message originated from an External Source. Use proper caut= ion when opening attachments, clicking links, or responding. >=20 >=20 >=20 >=20 > Dynamic Tables Framework currently supports Arm Architecture. > This patch introduces a new staging branch for Dynamic Tables Framework t= o: > - Reorganise the code to streamline adoption by other architectures > - Introduce Dynamic Tables support for RISC-V architecture > - Integrate Dynamic SMBIOS support. >=20 >=20 > The description is in the Readme.md file. >=20 >=20 > Please create the following branches: > 1. edk2-staging Repo > URL: https://github.com/tianocore/edk2-staging.git > Branch Name: dynamictables-reorg >=20 >=20 > 2. edk2-platforms Repo > URL: https://github.com/tianocore/edk2-platforms.git > Branch Name: devel-dynamictables-reorg >=20 >=20 > Signed-off-by: Sami Mujawar > > --- > Readme.md | 237 ++++++++++++++++++++ > 1 file changed, 237 insertions(+) >=20 >=20 > diff --git a/Readme.md b/Readme.md > new file mode 100644 > index 0000000000000000000000000000000000000000..3031a8967785a2ef90f05b5b0= d77053aa82364d3 > --- /dev/null > +++ b/Readme.md > @@ -0,0 +1,237 @@ > +# Introduction > + > +**DynamicTablesPkg** currently supports Arm architecture, and we > +welcome the adoption by other architectures. > + > +This branch will be used to: > + - Reorganise the code to streamline adoption by other architectures. > + - Introduce Dynamic Tables support for RISC-V architecture > + - Integrate Dynamic SMBIOS support > + ( ) > + > +## Goals > + - Streamline adoption by other architectures. > + - Minimise the impact of migration for existing platforms > + - Reuse common code > + - Maintain flexibility across architectural components > + > +# Dynamic Tables Framework > + > +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, these include both data tables and ASL > +tables. The ASL generation includes support for both fixup, where a > +template AML code is patched, and additionally provides an API to > +parse, search, generate and serialise the AML bytecode. > + > +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. > + > +## Branch Owners > + > + - Sami Mujawar > > + - Pierre Gondois > > + > +## Feature Summary > + > +### Dynamic Tables framework supports > + - ACPI data tables > + - AML tables > + * AML Template Fixup > + * AML Code Generation > + > +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. > + * PCCT - Platform Communications Channel Table. > + * PPTT - Processor Properties Topology Table. > + * SRAT - System Resource Affinity Table. > + * SSDT-CMN600 - SSDT Table for Arm CoreLink CMN-600 Coherent Mesh Netwo= rk. > + * SSDT-Cpu-Topology - SSDT Table for describing the CPU hierarchy. > + * SSDT-PCIe - SSDT Table describing the PCIe. > + * SSDT-Serial-Port - SSDT Table describing the Serial ports. > + > +## SMBIOS Support > + - A SMBIOS String table helper library has been provided. > + - Initial patches to add SMBIOS support are available at: > + * SMBIOS Dispatcher ( ) > + * SMBIOS Table generation ( ). > + > +# Roadmap > + > +1. See [Related Modules](#related-modules) section below for details of > + staging repositories and branches to be used for prototyping. > +2. The design aspects and changes shall be discussed on the mailing list > + with patches to support the details. > +3. A new section in DynamicTablesPkg\Readme.md shall be added to reflect > + the design updates, e.g. changes to CM Objects, Namespace definitions, = etc. > +4. The design changes should typically be supported by patches for the > + DynamicTables core framework and demonstrate the impact on the platform > + code by typically providing patches for at least one existing > + platform (possibly edk2-platforms/Platform/ARM/[Juno | FVP]). > +5. The design changes should be small and typically be reflected in sepa= rate > + patch series. > +6. The first phase would be to partition the codebase into common code v= s > + architectural specific code. This would involve moving files and > + reflecting the associated changes such that the build does not break. > +7. Define a new namespace *ArchCommon* for the common architectural comp= onents. > +8. Identify the CM_ARM_OBJECTs that can be moved to the *ArchCommon* nam= espace. > + As part of this identify if any object needs to be dropped, > + e.g. EArmObjReserved29 > +9. Identify overlap of SMBIOS objects with existing CM Objects. > +10. Submit patches to move CM objects from Arm Namespace to *ArchCommon* > + Namespace. Ideally one object (and any dependencies) should be moved > + at a time. > +11. Submit patches to migrate upstream platforms that use > +DynamicTablesPkg 12. Define a new namespace for RISC-V specific objects > +13. Submit patches for enabling RISC-V 14. In the next phase support > +for Dynamic SMBIOS can be enabled. > + > +## Note: > +- Periodically rebase with edk2 & edk2-platforms master branch to sync > + with latest changes. > +- Merge *reorg* updates after point 11 above to edk2 & edk2-platforms > +master > + branch. > +- Similarly, the RISC-V support can be merged after point 13. > + > +# Related Modules > + > +## edk2-staging > +The *dynamictables-reorg* branch in the **edk2-staging** repository > +contains the updates to streamline the adoption of Dynamic Tables > +Framework by other architectures. > + > +## edk2-platforms > +The *devel-dynamictables-reorg* branch in the **edk2-platforms** > +repository contains the platform specific changes. > + > +# Related Links > + > +Source Code Repositories for staging:
> + > +### 1. edk2 codebase
> + Repo:
> + Branch: *dynamictables-reorg* > + > +### 2. edk2-platforms codebase
> + Repo:
> + Branch: *devel-dynamictables-reorg* > + > +# Impacted Platforms > + > +| Platform | Location | Description | Migration Status | Known Issues | > +| :---- | :----- | :---- | :--- | :--- | > +| Arm Virt Kvmtool | edk2/ArmVirtPkg/KvmtoolCfgMgrDxe | Arm Kvmtool Gues= t firmware | | | > +| FVP | edk2-platforms/Platform/ARM/VExpressPkg | Arm Fixed Virtual Plat= form | | | > +| Juno | edk2-platforms/Platform/ARM/JunoPkg | Arm Juno Software Develop= ment Platform | | | > +| N1SDP | edk2-platforms/Platform/ARM/N1Sdp | Arm Neoverse N1 Software D= evelopment Platform | | | > +| Morello FVP | edk2-platforms/Platform/ARM/Morello | Arm Morello Fixed = Virtual Platform | | | > +| Morello | edk2-platforms/Platform/ARM/Morello | Arm Morello Software D= evelopment Platform | | | > +| LX2160A | edk2-platforms/Silicon/NXP/LX2160A | NXP LX2160A | | | > + > + > +# Prerequisites > + > +Ensure that the latest ACPICA iASL compiler is used for building > +*Dynamic Tables Framework*.
*Dynamic Tables Framework* has been > +tested using the following iASL compiler version:
ACPICA iASL compi= ler [Version 20230628](https://www.acpica.org/node/183 ), dated 28 June, 2023. > + > +# Build Instructions > + > +1. Set path for the iASL compiler. > + > +2. Set PACKAGES_PATH to point to the locations of the following reposito= ries: > + > +Example: > + > +> set PACKAGES_PATH=3D%CD%\edk2;%CD%\edk2-platforms;%CD%\edk2-non-osi > + > + or > + > +> export PACKAGES_PATH=3D$PWD/edk2:$PWD/edk2-platforms:$PWD/edk2-non-osi > + > +3. To enable Dynamic tables framework the *'DYNAMIC_TABLES_FRAMEWORK'* > +option must be defined for some platforms that support both traditional > +ACPI tables as well as Dynamic Table generation. This can be passed as > +a command line parameter to the edk2 build system. > + > +Example: > + > +Juno supports both traditional and dynamic ACPI tables. > +>build -a AARCH64 -p Platform\ARM\JunoPkg\ArmJuno.dsc > + -t GCC5 **-D DYNAMIC_TABLES_FRAMEWORK** > + > +or > +FVP only supports dynamic ACPI table generation, so the preprocessor > +flag is not required for the build. > +>build -a AARCH64 -p > +>Platform\ARM\VExpressPkg\ArmVExpress-FVP-AArch64.dsc > + -t GCC5 > + > +# Documentation > + > +The documentation for the Dynamic Tables Framework is available at > +DynamicTablesPkg\Readme.md. Additionally, Doxygen style documentation > +is used in the code. > + > +# Guidelines for submitting patches > + > +1. Follow the standard edk2 coding guidelines for preparing patches. > + The edk2-staging guidelines can be found at > + > + > +2. To submit a patch for edk2-staging repo include the branch name in > + the subject line of the commit message.
> + e.g. **[staging/dynamictables-reorg PATCH v<*n*> ]: > +Package/Module: Subject** > + > +3. To submit a patch for edk2-platforms staging repo include the branch > + name in the subject line of the commit message.
> + e.g. **[platforms/devel-dynamictables-reorg PATCH v<*n*> ]: > +Package/Module: Subject** > + > + > +# Stakeholders/Distribution List > + > + Please send a patch if you wished to be added/removed from the > + distribution list below. > + > + - Sami Mujawar > > + - Pierre Gondois > > + - Yeo Reum Yun > > + > +# Miscellaneous > + > -- > 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)' >=20 >=20 >=20 >=20 >=20 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#116308): https://edk2.groups.io/g/devel/message/116308 Mute This Topic: https://groups.io/mt/104054584/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-