public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Sunil V L" <sunilvl@ventanamicro.com>
To: Sami Mujawar <sami.mujawar@arm.com>
Cc: devel@edk2.groups.io, Pierre.Gondois@arm.com,
	YeoReum.Yun@arm.com, AbdulLateef.Attar@amd.com,
	jeshuas@nvidia.com, jbrasen@nvidia.com, gmahadevan@nvidia.com,
	quic_llindhol@quicinc.com, meenakshi.aggarwal@nxp.com,
	Akanksha.Jain2@arm.com, Sibel.Allinson@arm.com, nd@arm.com
Subject: Re: [edk2-devel] [staging/dynamictables-reorg PATCH v1 1/2] DynamicTablesPkg: Introduce an Arch Common Namespace
Date: Tue, 5 Mar 2024 16:12:34 +0530	[thread overview]
Message-ID: <Zeb3GhvblwmN2qL3@sunil-laptop> (raw)
In-Reply-To: <20240304164617.26652-2-sami.mujawar@arm.com>

On Mon, Mar 04, 2024 at 04:46:16PM +0000, Sami Mujawar wrote:
> Introduce an Arch Common Namespace so that the common
> architectural objects can be defined under this namespace
> in the Configuration manager. Also rearrange the namespace
> IDs so that the Arch Common Namespace has a value of 0x1,
> the Arm Namespace ID has a value of 0x2, and the Custom/OEM
> namespace ID has a value of 0xF. Also introduce a helper
> macro to create configuration manager objects in the Arch
> Common Namespace.
> 
> The Arch Common Namespace shall contain objects like
> Serial Port, PCI Bus information etc. It must not contain
> Architecture specific components e.g. GICC which is Arm
> architecture specific component and therefore must be
> defined in the Arm Namespace.
> 
> Cc: Pierre Gondois <Pierre.Gondois@arm.com>
> Cc: Yeo Reum Yun <YeoReum.Yun@arm.com>
> Cc: Sunil V L <sunilvl@ventanamicro.com>
> Cc: AbdulLateef Attar <AbdulLateef.Attar@amd.com>
> Cc: Jeshua Smith <jeshuas@nvidia.com>
> Cc: Jeff Brasen <jbrasen@nvidia.com>
> Cc: Girish Mahadevan <gmahadevan@nvidia.com>
> Cc: Leif Lindholm <quic_llindhol@quicinc.com>
> Cc: Meenakshi Aggarwal <meenakshi.aggarwal@nxp.com>
> Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
> ---
>  DynamicTablesPkg/Include/ConfigurationManagerObject.h | 26 ++++--
>  DynamicTablesPkg/Readme.md                            | 98 ++++++++++++++++++++
>  2 files changed, 117 insertions(+), 7 deletions(-)
> 
> diff --git a/DynamicTablesPkg/Include/ConfigurationManagerObject.h b/DynamicTablesPkg/Include/ConfigurationManagerObject.h
> index 74ad25d5d94a34da39e6c8dd909f9863e223d086..4255c82b42aefb52148a14a44c91328ec82f1550 100644
> --- a/DynamicTablesPkg/Include/ConfigurationManagerObject.h
> +++ b/DynamicTablesPkg/Include/ConfigurationManagerObject.h
> @@ -1,6 +1,6 @@
>  /** @file
>  
> -  Copyright (c) 2017 - 2022, ARM Limited. All rights reserved.
> +  Copyright (c) 2017 - 2024, Arm Limited. All rights reserved.
>  
>    SPDX-License-Identifier: BSD-2-Clause-Patent
>  
> @@ -29,8 +29,9 @@ _______________________________________________________________________________
>  
>  Bits: [31:28] - Name Space ID
>                  0000 - Standard
> -                0001 - ARM
> -                1000 - Custom/OEM
> +                0001 - Arch Common
> +                0010 - ARM
> +                1111 - Custom/OEM
>                  All other values are reserved.
>  
>  Bits: [27:16] - Reserved.
> @@ -105,10 +106,11 @@ typedef UINT32 CM_OBJECT_ID;
>      for the Configuration Manager Objects.
>  */
>  typedef enum ObjectNameSpaceID {
> -  EObjNameSpaceStandard,      ///< Standard Objects Namespace
> -  EObjNameSpaceArm,           ///< ARM Objects Namespace
> -  EObjNameSpaceOem = 0x8,     ///< OEM Objects Namespace
> -  EObjNameSpaceMax
> +  EObjNameSpaceStandard,          ///< Standard Objects Namespace
> +  EObjNameSpaceArchCommon,        ///< Arch Common Objects Namespace
> +  EObjNameSpaceArm,               ///< ARM Objects Namespace
> +  EObjNameSpaceOem = 0xF,         ///< OEM Objects Namespace
> +  EObjNameSpaceMax,
>  } EOBJECT_NAMESPACE_ID;
>  
>  /** A descriptor for Configuration Manager Objects.
> @@ -182,6 +184,16 @@ typedef struct CmObjDescriptor {
>  #define CREATE_CM_ARM_OBJECT_ID(ObjectId) \
>            (CREATE_CM_OBJECT_ID (EObjNameSpaceArm, ObjectId))
>  
> +/** This macro returns a Configuration Manager Object ID
> +    in the Arch Common Object Namespace.
> +
> +  @param [in] ObjectId    The Object ID.
> +
> +  @retval Returns an Arch Common Configuration Manager Object ID.
> +**/
> +#define CREATE_CM_ARCH_COMMON_OBJECT_ID(ObjectId) \
> +          (CREATE_CM_OBJECT_ID (EObjNameSpaceArchCommon, ObjectId))
> +
>  /** This macro returns a Configuration Manager Object ID
>      in the OEM Object Namespace.
>  
> diff --git a/DynamicTablesPkg/Readme.md b/DynamicTablesPkg/Readme.md
> index c1cdc5e17326709e811a2f3fe530316e95dec7ee..ba4ae7155f13a77298ece74cc567bb3e9dfc303d 100644
> --- a/DynamicTablesPkg/Readme.md
> +++ b/DynamicTablesPkg/Readme.md
> @@ -402,3 +402,101 @@ Refer to the following presentation from *UEFI Plugfest Seattle 2018*:
>  
>  [Dynamic Tables Framework: A Step Towards Automatic Generation of Advanced Configuration and Power Interface (ACPI) & System Management BIOS (SMBIOS) Tables](http://www.uefi.org/sites/default/files/resources/Arm_Dynamic%20Tables%20Framework%20A%20Step%20Towards%20Automatic%20Generation%20of%20Advanced%20Configuration%20and%20Power%20Interface%20%28ACPI%29%20%26%20System%20Management%20BIOS%20%28SMBIOS%29%20Tables%20_0.pdf)
>  
> +## Configuration Manager Objects
> +
> +The CM_OBJECT_ID type is used to identify the Configuration Manager
> +    objects.
> +
> +## Description of Configuration Manager Object ID
> +
> +| 31 30 29 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 6 5 4 3 2 1 0 |
> +| ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
> +| `Name Space ID` | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | `Object ID` |
> +---------------------------------------------------------------------------------
> +
NIT: Can we minimize the width by using range instead of each bits? 31-28,
27-8 and 7-0 would be better even when it is rendered in the browser
IMO.

Otherwise LGTM.

Thanks!

Reviewed-by: Sunil V L <sunilvl@ventanamicro.com>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#116359): https://edk2.groups.io/g/devel/message/116359
Mute This Topic: https://groups.io/mt/104726065/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



  reply	other threads:[~2024-03-05 10:42 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-04 16:46 [edk2-devel] [staging/dynamictables-reorg PATCH v1 0/2] DynamicTablesPkg: Arch Common Namespace Sami Mujawar
2024-03-04 16:46 ` [edk2-devel] [staging/dynamictables-reorg PATCH v1 1/2] DynamicTablesPkg: Introduce an " Sami Mujawar
2024-03-05 10:42   ` Sunil V L [this message]
2024-03-05 11:00     ` Sami Mujawar
2024-03-04 16:46 ` [edk2-devel] [staging/dynamictables-reorg PATCH v1 2/2] DynamicTablesPkg: Identify common Arm namespace objects Sami Mujawar
2024-03-05  8:44 ` [edk2-devel] [staging/dynamictables-reorg PATCH v1 0/2] DynamicTablesPkg: Arch Common Namespace PierreGondois
2024-03-05  9:45   ` Sami Mujawar
2024-03-05 10:52 ` Sunil V L
2024-03-05 11:09   ` Abdul Lateef Attar via groups.io
2024-03-05 14:03     ` PierreGondois
2024-03-05 14:13       ` Abdul Lateef Attar via groups.io
2024-03-11 14:35   ` Sami Mujawar
2024-03-12  5:26     ` Sunil V L

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=Zeb3GhvblwmN2qL3@sunil-laptop \
    --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