From: "PierreGondois" <pierre.gondois@arm.com>
To: devel@edk2.groups.io
Cc: Pierre Gondois <pierre.gondois@arm.com>
Subject: [edk2-devel] [platforms/devel-dynamictables-reorg PATCH 01/14] Platform/ARM: Morello,N1Sdp: Add Arch Common objects handler
Date: Mon, 10 Jun 2024 11:33:52 +0200 [thread overview]
Message-ID: <20240610093405.1980592-2-Pierre.Gondois@arm.com> (raw)
In-Reply-To: <20240610093405.1980592-1-Pierre.Gondois@arm.com>
From: Pierre Gondois <pierre.gondois@arm.com>
Some DynamicTables objects have been moved from the Arm namespace
to a new Arch Common namespace. Prepare the handling of these objects
in the ConfigurationManagers by adding a function handler for these
objects.
This patch modifies the ConfigurationManager of the following
platforms:
- Morello
- N1Sdp
Signed-off-by: Pierre Gondois <pierre.gondois@arm.com>
---
.../ConfigurationManager.c | 57 ++++++++++++++++++-
.../ConfigurationManagerFvp.c | 45 ++++++++++++++-
.../ConfigurationManager.c | 55 +++++++++++++++++-
3 files changed, 154 insertions(+), 3 deletions(-)
diff --git a/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c b/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
index 7c949812ecef..95fbb997483b 100644
--- a/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
+++ b/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
@@ -1,7 +1,7 @@
/** @file
Configuration Manager Dxe
- Copyright (c) 2021, ARM Limited. All rights reserved.<BR>
+ Copyright (c) 2021 - 2024, Arm Limited. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -764,6 +764,58 @@ GetStandardNameSpaceObject (
return Status;
}
+/** Return an Arch Common namespace object.
+
+ @param [in] This Pointer to the Configuration Manager Protocol.
+ @param [in] CmObjectId The Configuration Manager Object ID.
+ @param [in] Token An optional token identifying the object. If
+ unused this must be CM_NULL_TOKEN.
+ @param [in, out] CmObject Pointer to the Configuration Manager Object
+ descriptor describing the requested Object.
+
+ @retval EFI_SUCCESS Success.
+ @retval EFI_INVALID_PARAMETER A parameter is invalid.
+ @retval EFI_NOT_FOUND The required object information is not found.
+**/
+EFI_STATUS
+EFIAPI
+GetArchCommonNameSpaceObject (
+ IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL * CONST This,
+ IN CONST CM_OBJECT_ID CmObjectId,
+ IN CONST CM_OBJECT_TOKEN Token OPTIONAL,
+ IN OUT CM_OBJ_DESCRIPTOR * CONST CmObject
+ )
+{
+ EFI_STATUS Status;
+ EDKII_PLATFORM_REPOSITORY_INFO *PlatformRepo;
+ EDKII_COMMON_PLATFORM_REPOSITORY_INFO *CommonPlatRepo;
+
+ if ((This == NULL) || (CmObject == NULL)) {
+ ASSERT (This != NULL);
+ ASSERT (CmObject != NULL);
+ return EFI_INVALID_PARAMETER;
+ }
+
+ Status = EFI_NOT_FOUND;
+ PlatformRepo = This->PlatRepoInfo;
+ CommonPlatRepo = This->PlatRepoInfo->CommonPlatRepoInfo;
+
+ switch (GET_CM_OBJECT_ID (CmObjectId)) {
+ default: {
+ Status = EFI_NOT_FOUND;
+ DEBUG ((
+ DEBUG_INFO,
+ "INFO: Object 0x%x. Status = %r\n",
+ CmObjectId,
+ Status
+ ));
+ break;
+ }
+ } //switch
+
+ return Status;
+}
+
/** Return an ARM namespace object.
@param [in] This Pointer to the Configuration Manager Protocol.
@@ -1057,6 +1109,9 @@ MorelloPlatformGetObject (
case EObjNameSpaceStandard:
Status = GetStandardNameSpaceObject (This, CmObjectId, Token, CmObject);
break;
+ case EObjNameSpaceArchCommon:
+ Status = GetArchCommonNameSpaceObject (This, CmObjectId, Token, CmObject);
+ break;
case EObjNameSpaceArm:
Status = GetArmNameSpaceObject (This, CmObjectId, Token, CmObject);
break;
diff --git a/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerFvp.c b/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerFvp.c
index 85b0d390598f..32cf5e830fed 100644
--- a/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerFvp.c
+++ b/Platform/ARM/Morello/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManagerFvp.c
@@ -1,7 +1,7 @@
/** @file
Configuration Manager Dxe
- Copyright (c) 2021, ARM Limited. All rights reserved.<BR>
+ Copyright (c) 2021 - 2024, Arm Limited. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -427,6 +427,49 @@ GetItsGroupInfo (
return EFI_NOT_FOUND;
}
+
+/** Return platform specific arch common namespace object.
+
+ @param [in] This Pointer to the Configuration Manager Protocol.
+ @param [in] CmObjectId The Configuration Manager Object ID.
+ @param [in] Token An optional token identifying the object. If
+ unused this must be CM_NULL_TOKEN.
+ @param [in, out] CmObject Pointer to the Configuration Manager Object
+ descriptor describing the requested Object.
+
+ @retval EFI_SUCCESS Success.
+ @retval EFI_INVALID_PARAMETER A parameter is invalid.
+ @retval EFI_NOT_FOUND The required object information is not found.
+**/
+EFI_STATUS
+EFIAPI
+GetArchCommonNameSpaceObjectPlat (
+ IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL * CONST This,
+ IN CONST CM_OBJECT_ID CmObjectId,
+ IN CONST CM_OBJECT_TOKEN Token OPTIONAL,
+ IN OUT CM_OBJ_DESCRIPTOR * CONST CmObject
+ )
+{
+ EFI_STATUS Status;
+ EDKII_FVP_PLATFORM_REPOSITORY_INFO * PlatformRepo;
+
+ if ((This == NULL) || (CmObject == NULL)) {
+ ASSERT (This != NULL);
+ ASSERT (CmObject != NULL);
+ return EFI_INVALID_PARAMETER;
+ }
+
+ Status = EFI_NOT_FOUND;
+ PlatformRepo = This->PlatRepoInfo->FvpPlatRepoInfo;
+
+ switch (GET_CM_OBJECT_ID (CmObjectId)) {
+ default:
+ break;
+ }
+
+ return Status;
+}
+
/** Return platform specific ARM namespace object.
@param [in] This Pointer to the Configuration Manager Protocol.
diff --git a/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c b/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
index 966a83294c00..99c01297944c 100644
--- a/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
+++ b/Platform/ARM/N1Sdp/ConfigurationManager/ConfigurationManagerDxe/ConfigurationManager.c
@@ -1,7 +1,7 @@
/** @file
Configuration Manager Dxe
- Copyright (c) 2021 - 2024, ARM Limited. All rights reserved.<BR>
+ Copyright (c) 2021, ARM Limited. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -1678,6 +1678,56 @@ GetStandardNameSpaceObject (
return Status;
}
+/** Return an Arch Common namespace object.
+
+ @param [in] This Pointer to the Configuration Manager Protocol.
+ @param [in] CmObjectId The Configuration Manager Object ID.
+ @param [in] Token An optional token identifying the object. If
+ unused this must be CM_NULL_TOKEN.
+ @param [in, out] CmObject Pointer to the Configuration Manager Object
+ descriptor describing the requested Object.
+
+ @retval EFI_SUCCESS Success.
+ @retval EFI_INVALID_PARAMETER A parameter is invalid.
+ @retval EFI_NOT_FOUND The required object information is not found.
+**/
+EFI_STATUS
+EFIAPI
+GetArchCommonNameSpaceObject (
+ IN CONST EDKII_CONFIGURATION_MANAGER_PROTOCOL * CONST This,
+ IN CONST CM_OBJECT_ID CmObjectId,
+ IN CONST CM_OBJECT_TOKEN Token OPTIONAL,
+ IN OUT CM_OBJ_DESCRIPTOR * CONST CmObject
+ )
+{
+ EFI_STATUS Status;
+ EDKII_PLATFORM_REPOSITORY_INFO * PlatformRepo;
+
+ if ((This == NULL) || (CmObject == NULL)) {
+ ASSERT (This != NULL);
+ ASSERT (CmObject != NULL);
+ return EFI_INVALID_PARAMETER;
+ }
+
+ Status = EFI_NOT_FOUND;
+ PlatformRepo = This->PlatRepoInfo;
+
+ switch (GET_CM_OBJECT_ID (CmObjectId)) {
+ default: {
+ Status = EFI_NOT_FOUND;
+ DEBUG ((
+ DEBUG_INFO,
+ "INFO: Object 0x%x. Status = %r\n",
+ CmObjectId,
+ Status
+ ));
+ break;
+ }
+ } //switch
+
+ return Status;
+}
+
/** Return an ARM namespace object.
@param [in] This Pointer to the Configuration Manager Protocol.
@@ -2091,6 +2141,9 @@ N1sdpPlatformGetObject (
case EObjNameSpaceStandard:
Status = GetStandardNameSpaceObject (This, CmObjectId, Token, CmObject);
break;
+ case EObjNameSpaceArchCommon:
+ Status = GetArchCommonNameSpaceObject (This, CmObjectId, Token, CmObject);
+ break;
case EObjNameSpaceArm:
Status = GetArmNameSpaceObject (This, CmObjectId, Token, CmObject);
break;
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#119521): https://edk2.groups.io/g/devel/message/119521
Mute This Topic: https://groups.io/mt/106589339/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
next prev parent reply other threads:[~2024-06-10 9:34 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-10 9:33 [edk2-devel] [platforms/devel-dynamictables-reorg PATCH 00/14] Platform: N1Sdp,Morello,NXP: Move DynamicTablesPkg obj to Arch Common PierreGondois
2024-06-10 9:33 ` PierreGondois [this message]
2024-06-10 9:33 ` [edk2-devel] [platforms/devel-dynamictables-reorg PATCH 02/14] Platform/ARM: Morello,N1Sdp: Move Power Mgmt Profile info " PierreGondois
2024-06-10 9:33 ` [edk2-devel] [platforms/devel-dynamictables-reorg PATCH 03/14] Platform/ARM: Morello,N1Sdp: Move Serial Port " PierreGondois
2024-06-10 9:33 ` [edk2-devel] [platforms/devel-dynamictables-reorg PATCH 04/14] Platform/ARM: Morello,N1Sdp: Move Fixed Feat Flags " PierreGondois
2024-06-10 9:33 ` [edk2-devel] [platforms/devel-dynamictables-reorg PATCH 05/14] Platform/ARM: Morello,N1Sdp: Move CmRef " PierreGondois
2024-06-10 9:33 ` [edk2-devel] [platforms/devel-dynamictables-reorg PATCH 06/14] Platform/ARM: Morello,N1Sdp: Move Pci Config Space " PierreGondois
2024-06-10 9:33 ` [edk2-devel] [platforms/devel-dynamictables-reorg PATCH 07/14] Platform/ARM: Morello,N1Sdp: Rename GicCToken PierreGondois
2024-06-10 9:33 ` [edk2-devel] [platforms/devel-dynamictables-reorg PATCH 08/14] Platform/ARM: Morello,N1Sdp: Move Proc Hierarchy info to Arch Common PierreGondois
2024-06-10 9:34 ` [edk2-devel] [platforms/devel-dynamictables-reorg PATCH 09/14] Platform/ARM: Morello,N1Sdp: Move Cache " PierreGondois
2024-06-10 9:34 ` [edk2-devel] [platforms/devel-dynamictables-reorg PATCH 10/14] Platform/ARM: N1Sdp: Move Memory Affinity " PierreGondois
2024-06-10 9:34 ` [edk2-devel] [platforms/devel-dynamictables-reorg PATCH 11/14] Platform/NXP: Add Arch Common objects handler PierreGondois
2024-06-11 13:33 ` Sami Mujawar
2024-06-10 9:34 ` [edk2-devel] [platforms/devel-dynamictables-reorg PATCH 12/14] Platform/NXP: Move Power Mgmt Profile info to Arch Common PierreGondois
2024-06-10 9:34 ` [edk2-devel] [platforms/devel-dynamictables-reorg PATCH 13/14] Platform/NXP: Move Serial Port " PierreGondois
2024-06-10 9:34 ` [edk2-devel] [platforms/devel-dynamictables-reorg PATCH 14/14] Platform/NXP: Move Pci Config Space " PierreGondois
2024-06-11 13:29 ` [edk2-devel] [platforms/devel-dynamictables-reorg PATCH 00/14] Platform: N1Sdp,Morello,NXP: Move DynamicTablesPkg obj " 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=20240610093405.1980592-2-Pierre.Gondois@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