Hi Jeff,

Thank you for this patch.

These changes look good to me.

Reviewed-by: Sami Mujawar <sami.muja...@arm.com>

Regards,

Sami Mujawar

On 27/10/2022 03:40 pm, Jeff Brasen via groups.io wrote:
This adds #defines and struct typedefs for the various node types in

the  ACPI Arm Performance Monitoring Unit (APMT) table.



Signed-off-by: Jeff Brasen <jbra...@nvidia.com>

---

  MdePkg/Include/IndustryStandard/Acpi64.h      |  5 ++

  .../ArmPerformanceMonitoringUnitTable.h       | 69 +++++++++++++++++++

  2 files changed, 74 insertions(+)

  create mode 100644 
MdePkg/Include/IndustryStandard/ArmPerformanceMonitoringUnitTable.h



diff --git a/MdePkg/Include/IndustryStandard/Acpi64.h 
b/MdePkg/Include/IndustryStandard/Acpi64.h

index fe5ebfac2b..575ca0430c 100644

--- a/MdePkg/Include/IndustryStandard/Acpi64.h

+++ b/MdePkg/Include/IndustryStandard/Acpi64.h

@@ -2847,6 +2847,11 @@ typedef struct {

  ///

  #define EFI_ACPI_6_4_MULTIPLE_APIC_DESCRIPTION_TABLE_SIGNATURE  
SIGNATURE_32('A', 'P', 'I', 'C')

+///

+/// "APMT" Arm Performance Monitoring Unit Table

+///

+#define EFI_ACPI_6_4_ARM_PERFORMANCE_MONITORING_UNIT_TABLE_SIGNATURE  
SIGNATURE_32('A', 'P', 'M', 'T')

+

  ///

  /// "BERT" Boot Error Record Table

  ///

diff --git 
a/MdePkg/Include/IndustryStandard/ArmPerformanceMonitoringUnitTable.h 
b/MdePkg/Include/IndustryStandard/ArmPerformanceMonitoringUnitTable.h

new file mode 100644

index 0000000000..fe7084cffd

--- /dev/null

+++ b/MdePkg/Include/IndustryStandard/ArmPerformanceMonitoringUnitTable.h

@@ -0,0 +1,69 @@

+/** @file

+  ACPI Arm Performance Monitoring Unit (APMT) table

+  as specified in ARM spec DEN0117

+

+  Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved.

+  Copyright (c) 2022, ARM Limited. All rights reserved.

+  SPDX-License-Identifier: BSD-2-Clause-Patent

+**/

+

+#ifndef ARM_PERFORMANCE_MONITORING_UNIT_TABLE_H_

+#define ARM_PERFORMANCE_MONITORING_UNIT_TABLE_H_

+

+#include <IndustryStandard/Acpi.h>

+

+#pragma pack(1)

+

+///

+/// Arm Performance Monitoring Unit (APMT) tabl

+///

+typedef struct {

+  EFI_ACPI_DESCRIPTION_HEADER    Header;

+} EFI_ACPI_ARM_PERFORMANCE_MONITORING_UNIT_TABLE_HEADER;

+

+///

+/// APMT Revision (as defined in DEN0117.)

+///

+#define EFI_ACPI_ARM_PERFORMANCE_MONITORING_UNIT_TABLE_REVISION  0x00

+

+///

+/// Arm PMU Node Structure

+///

+

+// Node Flags

+#define EFI_ACPI_APMT_DUAL_PAGE_EXTENSION_SUPPORTED          BIT0

+#define EFI_ACPI_APMT_PROCESSOR_AFFINITY_TYPE_CONTAINER      BIT1

+#define EFI_ACPI_APMT_PROCESSOR_AFFINITY_TYPE_PROCESSOR      0 // BIT 1

+#define EFI_ACPI_APMT_64BIT_SINGLE_COPY_ATOMICITY_SUPPORTED  BIT2

+

+// Interrupt Flags

+#define EFI_ACPI_APMT_INTERRUPT_MODE_EDGE_TRIGGERED   BIT0

+#define EFI_ACPI_APMT_INTERRUPT_MODE_LEVEL_TRIGGERED  0 // BIT 0

+#define EFI_ACPI_APMT_INTERRUPT_TYPE_WIRED            0 // BIT 1

+

+// Node Type

+#define EFI_ACPI_APMT_NODE_TYPE_MEMORY_CONTROLLER  0x00

+#define EFI_ACPI_APMT_NODE_TYPE_SMMU               0x01

+#define EFI_ACPI_APMT_NODE_TYPE_PCIE_ROOT_COMPLEX  0x02

+#define EFI_ACPI_APMT_NODE_TYPE_ACPI_DEVICE        0x03

+#define EFI_ACPI_APMT_NODE_TYPE_CPU_CACHE          0x04

+

+typedef struct {

+  UINT16    Length;

+  UINT8     NodeFlags;

+  UINT8     NodeType;

+  UINT32    Identifier;

+  UINT64    NodeInstancePrimary;

+  UINT32    NodeInstanceSecondary;

+  UINT64    BaseAddress0;

+  UINT64    BaseAddress1;

+  UINT32    OverflowInterrupt;

+  UINT32    Reserved1;

+  UINT32    OverflowInterruptFlags;

+  UINT32    ProcessorAffinity;

+  UINT32    ImplementationId;

+} EFI_ACPI_ARM_PERFORMANCE_MONITORING_UNIT_NODE;

+

+#pragma pack()

+

+#endif



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


Reply via email to