public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Sami Mujawar" <sami.mujawar@arm.com>
To: "Attar, AbdulLateef (Abdul Lateef)" <AbdulLateef.Attar@amd.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "michael.d.kinney@intel.com" <michael.d.kinney@intel.com>,
	"quic_llindhol@quicinc.com" <quic_llindhol@quicinc.com>,
	"ardb+tianocore@kernel.org" <ardb+tianocore@kernel.org>,
	"lersek@redhat.com" <lersek@redhat.com>,
	Pierre Gondois <Pierre.Gondois@arm.com>,
	Yeo Reum Yun <YeoReum.Yun@arm.com>,
	Akanksha Jain <Akanksha.Jain2@arm.com>,
	Sibel Allinson <Sibel.Allinson@arm.com>,
	"sunilvl@ventanamicro.com" <sunilvl@ventanamicro.com>,
	"andrei.warkentin@intel.com" <andrei.warkentin@intel.com>,
	"gmahadevan@nvidia.com" <gmahadevan@nvidia.com>,
	"jeshuas@nvidia.com" <jeshuas@nvidia.com>,
	"Jeff Brasen (jbrasen@nvidia.com)" <jbrasen@nvidia.com>,
	"Meenakshi Aggarwal (meenakshi.aggarwal@nxp.com)"
	<meenakshi.aggarwal@nxp.com>, nd <nd@arm.com>
Subject: Re: [edk2-devel] [staging/dynamictables-reorg PATCH v1 1/1] Branch to reorg Dynamic Tables & support other arch
Date: Wed, 14 Feb 2024 08:20:24 +0000	[thread overview]
Message-ID: <70718F38-7B75-40A6-A565-6A617AE76105@arm.com> (raw)
In-Reply-To: <IA1PR12MB645846BBF54B67F896531D80E04E2@IA1PR12MB6458.namprd12.prod.outlook.com>

Hi Abdul,

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-staging repo.

I will follow up and check if the maintainers can create the branches for us.

Regards,

Sami Mujawar


On 14/02/2024, 04:15, "Attar, AbdulLateef (Abdul Lateef)" <AbdulLateef.Attar@amd.com <mailto:AbdulLateef.Attar@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>


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.mujawar@arm.com <mailto:sami.mujawar@arm.com>>
Sent: Tuesday, January 30, 2024 8:21 PM
To: devel@edk2.groups.io <mailto:devel@edk2.groups.io>
Cc: Sami Mujawar <sami.mujawar@arm.com <mailto:sami.mujawar@arm.com>>; michael.d.kinney@intel.com <mailto:michael.d.kinney@intel.com>; quic_llindhol@quicinc.com <mailto:quic_llindhol@quicinc.com>; ardb+tianocore@kernel.org <mailto:ardb+tianocore@kernel.org>; lersek@redhat.com <mailto:lersek@redhat.com>; pierre.gondois@arm.com <mailto:pierre.gondois@arm.com>; YeoReum.Yun@arm.com <mailto:YeoReum.Yun@arm.com>; Akanksha.Jain2@arm.com <mailto:Akanksha.Jain2@arm.com>; Sibel.Allinson@arm.com <mailto:Sibel.Allinson@arm.com>; sunilvl@ventanamicro.com <mailto:sunilvl@ventanamicro.com>; andrei.warkentin@intel.com <mailto:andrei.warkentin@intel.com>; Attar, AbdulLateef (Abdul Lateef) <AbdulLateef.Attar@amd.com <mailto:AbdulLateef.Attar@amd.com>>; gmahadevan@nvidia.com <mailto:gmahadevan@nvidia.com>; jeshuas@nvidia.com <mailto:jeshuas@nvidia.com>; jbrasen@nvidia.com <mailto:jbrasen@nvidia.com>; meenakshi.aggarwal@nxp.com <mailto:meenakshi.aggarwal@nxp.com>; nd@arm.com <mailto:nd@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>
Branch Name: dynamictables-reorg


2. edk2-platforms Repo
URL: https://github.com/tianocore/edk2-platforms.git <https://github.com/tianocore/edk2-platforms.git>
Branch Name: devel-dynamictables-reorg


Signed-off-by: Sami Mujawar <sami.mujawar@arm.com <mailto:sami.mujawar@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;>)
+
+## 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.mujawar@arm.com <mailto:sami.mujawar@arm.com>>
+ - Pierre Gondois <pierre.gondois@arm.com <mailto:pierre.gondois@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;>)
+ * SMBIOS Table generation (<https://edk2.groups.io/g/devel/message/107254> <https://edk2.groups.io/g/devel/message/107254&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;> <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;> <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>), 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;>
+
+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.mujawar@arm.com <mailto:sami.mujawar@arm.com>>
+ - Pierre Gondois <pierre.gondois@arm.com <mailto:pierre.gondois@arm.com>>
+ - Yeo Reum Yun <YeoReum.Yun@arm.com <mailto:YeoReum.Yun@arm.com>>
+
+# Miscellaneous
+
--
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'







-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115431): https://edk2.groups.io/g/devel/message/115431
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]
-=-=-=-=-=-=-=-=-=-=-=-



  reply	other threads:[~2024-02-14  8:20 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-30 14:50 [edk2-devel] [staging/dynamictables-reorg PATCH v1 1/1] Branch to reorg Dynamic Tables & support other arch Sami Mujawar
2024-01-30 17:14 ` Laszlo Ersek
2024-01-30 18:25   ` Leif Lindholm
2024-02-14  8:29     ` Sami Mujawar
2024-02-14  4:15 ` Abdul Lateef Attar via groups.io
2024-02-14  8:20   ` Sami Mujawar [this message]
2024-03-04 10:40     ` Sunil V L
2024-03-04 15:36       ` Sami Mujawar

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=70718F38-7B75-40A6-A565-6A617AE76105@arm.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