Hi Sunil,

I was not sure if I had the permissions, but apparently, I did. I have managed 
to create the branches (hopefully without any disasters):
https://github.com/tianocore/edk2-staging/tree/dynamictables-reorg
https://github.com/tianocore/edk2-platforms/tree/devel-dynamictables-reorg

We should now be able to post patches to the list for review. I am about to 
send out few initial patches for initiating the discussion shortly.

Regards,

Sami Mujawar

On 04/03/2024, 10:40, "Sunil V L" <suni...@ventanamicro.com 
<mailto:suni...@ventanamicro.com>> wrote:


On Wed, Feb 14, 2024 at 08:20:24AM +0000, Sami Mujawar wrote:
> Hi Abdul,
> 
> The dynamictables-reorg branch is not yet created see 
> https://github.com/tianocore/edk2-staging/branches 
> <https://github.com/tianocore/edk2-staging/branches>
> I am not sure I have permissions to create a new branch under the 
> edk2-staging repo.
> 
> I will follow up and check if the maintainers can create the branches for us.
> 
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,
> 
> Sami Mujawar
> 
> 
> On 14/02/2024, 04:15, "Attar, AbdulLateef (Abdul Lateef)" 
> <abdullateef.at...@amd.com <mailto:abdullateef.at...@amd.com> 
> <mailto:abdullateef.at...@amd.com <mailto:abdullateef.at...@amd.com>>> wrote:
> 
> 
> [AMD Official Use Only - General]
> 
> 
> Hi Sami Mujawar,
> Could you please rebase the branch.
> I have a patch which was built on top of the edk2 master branch.
> 
> 
> master branch changes: https://github.com/tianocore/edk2/pull/5374 
> <https://github.com/tianocore/edk2/pull/5374> 
> <https://github.com/tianocore/edk2/pull/5374> 
> <https://github.com/tianocore/edk2/pull/5374&gt;>
> 
> 
> When I try to apply the same patch(on this branch) getting below errors.
> 
> 
> Checking patch DynamicTablesPkg/DynamicTables.dsc.inc...
> error: while searching for:
> DynamicTablesPkg/Drivers/DynamicTableManagerDxe/DynamicTableManagerDxe.inf?
> ?
> [Components.IA32, Components.X64]?
> #?
> # Dynamic Table Factory Dxe?
> #?
> DynamicTablesPkg/Drivers/DynamicTableFactoryDxe/DynamicTableFactoryDxe.inf?
> ?
> [Components.ARM, Components.AARCH64]?
> #?
> 
> 
> 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?
> ?
> 
> 
> error: patch failed: DynamicTablesPkg/Include/ConfigurationManagerObject.h:1
> error: DynamicTablesPkg/Include/ConfigurationManagerObject.h: patch does not 
> apply
> 
> 
> 
> 
> Thanks
> AbduL
> 
> 
> 
> 
> -----Original Message-----
> From: Sami Mujawar <sami.muja...@arm.com <mailto:sami.muja...@arm.com> 
> <mailto:sami.muja...@arm.com <mailto:sami.muja...@arm.com>>>
> Sent: Tuesday, January 30, 2024 8:21 PM
> To: devel@edk2.groups.io <mailto:devel@edk2.groups.io> 
> <mailto:devel@edk2.groups.io <mailto:devel@edk2.groups.io>>
> Cc: Sami Mujawar <sami.muja...@arm.com <mailto:sami.muja...@arm.com> 
> <mailto:sami.muja...@arm.com <mailto:sami.muja...@arm.com>>>; 
> michael.d.kin...@intel.com <mailto:michael.d.kin...@intel.com> 
> <mailto:michael.d.kin...@intel.com <mailto:michael.d.kin...@intel.com>>; 
> quic_llind...@quicinc.com <mailto:quic_llind...@quicinc.com> 
> <mailto:quic_llind...@quicinc.com <mailto:quic_llind...@quicinc.com>>; 
> ardb+tianoc...@kernel.org <mailto:ardb+tianoc...@kernel.org> 
> <mailto:ardb+tianoc...@kernel.org <mailto:ardb+tianoc...@kernel.org>>; 
> ler...@redhat.com <mailto:ler...@redhat.com> <mailto:ler...@redhat.com 
> <mailto:ler...@redhat.com>>; pierre.gond...@arm.com 
> <mailto:pierre.gond...@arm.com> <mailto:pierre.gond...@arm.com 
> <mailto:pierre.gond...@arm.com>>; yeoreum....@arm.com 
> <mailto:yeoreum....@arm.com> <mailto:yeoreum....@arm.com 
> <mailto:yeoreum....@arm.com>>; akanksha.ja...@arm.com 
> <mailto:akanksha.ja...@arm.com> <mailto:akanksha.ja...@arm.com 
> <mailto:akanksha.ja...@arm.com>>; sibel.allin...@arm.com 
> <mailto:sibel.allin...@arm.com> <mailto:sibel.allin...@arm.com 
> <mailto:sibel.allin...@arm.com>>; suni...@ventanamicro.com 
> <mailto:suni...@ventanamicro.com> <mailto:suni...@ventanamicro.com 
> <mailto:suni...@ventanamicro.com>>; andrei.warken...@intel.com 
> <mailto:andrei.warken...@intel.com> <mailto:andrei.warken...@intel.com 
> <mailto:andrei.warken...@intel.com>>; Attar, AbdulLateef (Abdul Lateef) 
> <abdullateef.at...@amd.com <mailto:abdullateef.at...@amd.com> 
> <mailto:abdullateef.at...@amd.com <mailto:abdullateef.at...@amd.com>>>; 
> gmahade...@nvidia.com <mailto:gmahade...@nvidia.com> 
> <mailto:gmahade...@nvidia.com <mailto:gmahade...@nvidia.com>>; 
> jesh...@nvidia.com <mailto:jesh...@nvidia.com> <mailto:jesh...@nvidia.com 
> <mailto:jesh...@nvidia.com>>; jbra...@nvidia.com <mailto:jbra...@nvidia.com> 
> <mailto:jbra...@nvidia.com <mailto:jbra...@nvidia.com>>; 
> meenakshi.aggar...@nxp.com <mailto:meenakshi.aggar...@nxp.com> 
> <mailto:meenakshi.aggar...@nxp.com <mailto:meenakshi.aggar...@nxp.com>>; 
> n...@arm.com <mailto:n...@arm.com> <mailto:n...@arm.com <mailto:n...@arm.com>>
> Subject: [staging/dynamictables-reorg PATCH v1 1/1] Branch to reorg Dynamic 
> Tables & support other arch
> 
> 
> Caution: This message originated from an External Source. Use proper caution 
> when opening attachments, clicking links, or responding.
> 
> 
> 
> 
> Dynamic Tables Framework currently supports Arm Architecture.
> This patch introduces a new staging branch for Dynamic Tables Framework to:
> - Reorganise the code to streamline adoption by other architectures
> - Introduce Dynamic Tables support for RISC-V architecture
> - Integrate Dynamic SMBIOS support.
> 
> 
> The description is in the Readme.md file.
> 
> 
> Please create the following branches:
> 1. edk2-staging Repo
> URL: https://github.com/tianocore/edk2-staging.git 
> <https://github.com/tianocore/edk2-staging.git> 
> <https://github.com/tianocore/edk2-staging.git> 
> <https://github.com/tianocore/edk2-staging.git&gt;>
> Branch Name: dynamictables-reorg
> 
> 
> 2. edk2-platforms Repo
> URL: https://github.com/tianocore/edk2-platforms.git 
> <https://github.com/tianocore/edk2-platforms.git> 
> <https://github.com/tianocore/edk2-platforms.git> 
> <https://github.com/tianocore/edk2-platforms.git&gt;>
> Branch Name: devel-dynamictables-reorg
> 
> 
> Signed-off-by: Sami Mujawar <sami.muja...@arm.com 
> <mailto:sami.muja...@arm.com> <mailto:sami.muja...@arm.com 
> <mailto:sami.muja...@arm.com>>>
> ---
> Readme.md | 237 ++++++++++++++++++++
> 1 file changed, 237 insertions(+)
> 
> 
> diff --git a/Readme.md b/Readme.md
> new file mode 100644
> index 
> 0000000000000000000000000000000000000000..3031a8967785a2ef90f05b5b0d77053aa82364d3
> --- /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
> + (<https://edk2.groups.io/g/devel/message/107254> 
> <https://edk2.groups.io/g/devel/message/107254&gt;> 
> <https://edk2.groups.io/g/devel/message/107254&gt;> 
> <https://edk2.groups.io/g/devel/message/107254&amp;gt;&gt;>)
> +
> +## 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 <sami.muja...@arm.com <mailto:sami.muja...@arm.com> 
> <mailto:sami.muja...@arm.com <mailto:sami.muja...@arm.com>>>
> + - Pierre Gondois <pierre.gond...@arm.com <mailto:pierre.gond...@arm.com> 
> <mailto:pierre.gond...@arm.com <mailto:pierre.gond...@arm.com>>>
> +
> +## 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 Network.
> + * 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 (<https://edk2.groups.io/g/devel/message/100834> 
> <https://edk2.groups.io/g/devel/message/100834&gt;> 
> <https://edk2.groups.io/g/devel/message/100834&gt;> 
> <https://edk2.groups.io/g/devel/message/100834&amp;gt;&gt;>)
> + * SMBIOS Table generation (<https://edk2.groups.io/g/devel/message/107254> 
> <https://edk2.groups.io/g/devel/message/107254&gt;> 
> <https://edk2.groups.io/g/devel/message/107254&gt;> 
> <https://edk2.groups.io/g/devel/message/107254&amp;gt;&gt;>).
> +
> +# 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 separate
> + patch series.
> +6. The first phase would be to partition the codebase into common code vs
> + 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 
> components.
> +8. Identify the CM_ARM_OBJECTs that can be moved to the *ArchCommon* 
> namespace.
> + 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:<BR>
> +
> +### 1. edk2 codebase <BR>
> + Repo: <https://github.com/tianocore/edk2-staging.git> 
> <https://github.com/tianocore/edk2-staging.git&gt;> 
> <https://github.com/tianocore/edk2-staging.git&gt;> 
> <https://github.com/tianocore/edk2-staging.git&amp;gt;&gt;> <BR>
> + Branch: *dynamictables-reorg*
> +
> +### 2. edk2-platforms codebase <BR>
> + Repo: <https://github.com/tianocore/edk2-platforms.git> 
> <https://github.com/tianocore/edk2-platforms.git&gt;> 
> <https://github.com/tianocore/edk2-platforms.git&gt;> 
> <https://github.com/tianocore/edk2-platforms.git&amp;gt;&gt;> <BR>
> + Branch: *devel-dynamictables-reorg*
> +
> +# Impacted Platforms
> +
> +| Platform | Location | Description | Migration Status | Known Issues |
> +| :---- | :----- | :---- | :--- | :--- |
> +| Arm Virt Kvmtool | edk2/ArmVirtPkg/KvmtoolCfgMgrDxe | Arm Kvmtool Guest 
> firmware | | |
> +| FVP | edk2-platforms/Platform/ARM/VExpressPkg | Arm Fixed Virtual Platform 
> | | |
> +| Juno | edk2-platforms/Platform/ARM/JunoPkg | Arm Juno Software Development 
> Platform | | |
> +| N1SDP | edk2-platforms/Platform/ARM/N1Sdp | Arm Neoverse N1 Software 
> Development Platform | | |
> +| Morello FVP | edk2-platforms/Platform/ARM/Morello | Arm Morello Fixed 
> Virtual Platform | | |
> +| Morello | edk2-platforms/Platform/ARM/Morello | Arm Morello Software 
> Development Platform | | |
> +| LX2160A | edk2-platforms/Silicon/NXP/LX2160A | NXP LX2160A | | |
> +
> +
> +# Prerequisites
> +
> +Ensure that the latest ACPICA iASL compiler is used for building
> +*Dynamic Tables Framework*. <BR> *Dynamic Tables Framework* has been
> +tested using the following iASL compiler version: <BR> ACPICA iASL compiler 
> [Version 20230628](https://www.acpica.org/node/183 
> <https://www.acpica.org/node/183> <https://www.acpica.org/node/183> 
> <https://www.acpica.org/node/183&gt;>), 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 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 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. <BR>
> + The edk2-staging guidelines can be found at
> + <https://github.com/tianocore/edk2-staging> 
> <https://github.com/tianocore/edk2-staging&gt;> 
> <https://github.com/tianocore/edk2-staging&gt;> 
> <https://github.com/tianocore/edk2-staging&amp;gt;&gt;>
> +
> +2. To submit a patch for edk2-staging repo include the branch name in
> + the subject line of the commit message. <BR>
> + e.g. **[staging/dynamictables-reorg PATCH v<*n*> <x/y>]:
> +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. <BR>
> + e.g. **[platforms/devel-dynamictables-reorg PATCH v<*n*> <x/y>]:
> +Package/Module: Subject**
> +
> +
> +# Stakeholders/Distribution List
> +
> + Please send a patch if you wished to be added/removed from the
> + distribution list below.
> +
> + - Sami Mujawar <sami.muja...@arm.com <mailto:sami.muja...@arm.com> 
> <mailto:sami.muja...@arm.com <mailto:sami.muja...@arm.com>>>
> + - Pierre Gondois <pierre.gond...@arm.com <mailto:pierre.gond...@arm.com> 
> <mailto:pierre.gond...@arm.com <mailto:pierre.gond...@arm.com>>>
> + - Yeo Reum Yun <yeoreum....@arm.com <mailto:yeoreum....@arm.com> 
> <mailto:yeoreum....@arm.com <mailto:yeoreum....@arm.com>>>
> +
> +# Miscellaneous
> +
> --
> 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'
> 
> 
> 
> 
> 





-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116323): https://edk2.groups.io/g/devel/message/116323
Mute This Topic: https://groups.io/mt/104054584/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to