[edk2-devel] [PATCH v2 08/11] DynamicTablesPkg: Add an ET info object to Arm namespace

Sami Mujawar posted 11 patches 12 months ago
There is a newer version of this series
[edk2-devel] [PATCH v2 08/11] DynamicTablesPkg: Add an ET info object to Arm namespace
Posted by Sami Mujawar 12 months ago
Add an Embedded Trace (ET) info object that can be
used to provide information about Embedded Trace
Extension (ETE) or Embedded Trace Module (ETM)
available on a platform.

Although ETE and ETM share the same HID,
ETE has a system register interfaces, unlike
ETM which requires memory mapped registers.

Since this patch aims to support ETE it does
not describe any memory mapped registers.
However, required support for ETM can be added
in the future.

Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
---

Notes:
    v2:
     - No code change from v1 patch series.      [SAMI]

 DynamicTablesPkg/Include/ArmNameSpaceObjects.h | 25 +++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

diff --git a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
index ca02970d7a177968c77ba7ae1a859b81d0904ff8..8c00bdac20bb1323d8dbd17f671e0e61886ad269 100644
--- a/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
+++ b/DynamicTablesPkg/Include/ArmNameSpaceObjects.h
@@ -1,6 +1,6 @@
 /** @file
 
-  Copyright (c) 2017 - 2022, Arm Limited. All rights reserved.<BR>
+  Copyright (c) 2017 - 2023, Arm Limited. All rights reserved.<BR>
 
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
@@ -71,6 +71,7 @@ typedef enum ArmObjectID {
   EArmObjPccSubspaceType3Info,                                 ///< 46 - Pcc Subspace Type 3 Info
   EArmObjPccSubspaceType4Info,                                 ///< 47 - Pcc Subspace Type 4 Info
   EArmObjPccSubspaceType5Info,                                 ///< 48 - Pcc Subspace Type 5 Info
+  EArmObjEtInfo,                                               ///< 49 - Embedded Trace Extension/Module Info
   EArmObjMax
 } EARM_OBJECT_ID;
 
@@ -210,6 +211,12 @@ typedef struct CmArmGicCInfo {
       generating MADT revision 5 or lower.
   */
   UINT16             TrbeInterrupt;
+
+  /** Optional field: Reference Token for the Embedded Trace device info for
+      this processing element.
+      i.e. a token referencing a CM_ARM_ET_INFO object.
+  */
+  CM_OBJECT_TOKEN    EtToken;
 } CM_ARM_GICC_INFO;
 
 /** A structure that describes the
@@ -1304,6 +1311,22 @@ typedef struct CmArmPccSubspaceType5Info {
   PCC_MAILBOX_REGISTER_INFO    ErrorStatusReg;
 } CM_ARM_PCC_SUBSPACE_TYPE5_INFO;
 
+/** An enum describing the Arm Embedded Trace device type.
+*/
+typedef enum ArmEtType {
+  ArmEtTypeEtm,   ///< Embedded Trace module.
+  ArmEtTypeEte,   ///< Embedded Trace Extension.
+  ArmEtTypeMax
+} ARM_ET_TYPE;
+
+/** A structure that describes the Embedded Trace Extension/Module.
+
+    ID: EArmObjEtInfo
+*/
+typedef struct CmArmEtInfo {
+  ARM_ET_TYPE    EtType;
+} CM_ARM_ET_INFO;
+
 #pragma pack()
 
 #endif // ARM_NAMESPACE_OBJECTS_H_
-- 
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#108587): https://edk2.groups.io/g/devel/message/108587
Mute This Topic: https://groups.io/mt/101335839/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-