diff options
author | Jeff Brasen <jbrasen@nvidia.com> | 2022-11-04 10:04:47 -0600 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2022-12-13 16:50:27 +0000 |
commit | aa65bb4020e7732bd59591c5d7d3121ee4cf71eb (patch) | |
tree | f25e4742984dc301c4427e5acfffbca5ed5fba8f /MdePkg | |
parent | 11ce7a2de7549306a853cc3fe3abe6ef8f874b40 (diff) | |
download | edk2-aa65bb4020e7732bd59591c5d7d3121ee4cf71eb.tar.gz |
MdePkg/IndustryStandard: add definitions for ACPI APMT
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 <jbrasen@nvidia.com>
Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
Diffstat (limited to 'MdePkg')
-rw-r--r-- | MdePkg/Include/IndustryStandard/Acpi64.h | 5 | ||||
-rw-r--r-- | MdePkg/Include/IndustryStandard/ArmPerformanceMonitoringUnitTable.h | 69 |
2 files changed, 74 insertions, 0 deletions
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 @@ -2848,6 +2848,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
///
#define EFI_ACPI_6_4_BOOT_ERROR_RECORD_TABLE_SIGNATURE SIGNATURE_32('B', 'E', 'R', 'T')
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
|