| /** @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 |