TianoCore EDK2 master
Loading...
Searching...
No Matches
ArmPerformanceMonitoringUnitTable.h
Go to the documentation of this file.
1
10#ifndef ARM_PERFORMANCE_MONITORING_UNIT_TABLE_H_
11#define ARM_PERFORMANCE_MONITORING_UNIT_TABLE_H_
12
14
15#pragma pack(1)
16
20typedef struct {
23
27#define EFI_ACPI_ARM_PERFORMANCE_MONITORING_UNIT_TABLE_REVISION 0x00
28
32
33// Node Flags
34#define EFI_ACPI_APMT_DUAL_PAGE_EXTENSION_SUPPORTED BIT0
35#define EFI_ACPI_APMT_PROCESSOR_AFFINITY_TYPE_CONTAINER BIT1
36#define EFI_ACPI_APMT_PROCESSOR_AFFINITY_TYPE_PROCESSOR 0 // BIT 1
37#define EFI_ACPI_APMT_64BIT_SINGLE_COPY_ATOMICITY_SUPPORTED BIT2
38
39// Interrupt Flags
40#define EFI_ACPI_APMT_INTERRUPT_MODE_EDGE_TRIGGERED BIT0
41#define EFI_ACPI_APMT_INTERRUPT_MODE_LEVEL_TRIGGERED 0 // BIT 0
42#define EFI_ACPI_APMT_INTERRUPT_TYPE_WIRED 0 // BIT 1
43
44// Node Type
45#define EFI_ACPI_APMT_NODE_TYPE_MEMORY_CONTROLLER 0x00
46#define EFI_ACPI_APMT_NODE_TYPE_SMMU 0x01
47#define EFI_ACPI_APMT_NODE_TYPE_PCIE_ROOT_COMPLEX 0x02
48#define EFI_ACPI_APMT_NODE_TYPE_ACPI_DEVICE 0x03
49#define EFI_ACPI_APMT_NODE_TYPE_CPU_CACHE 0x04
50
51typedef struct {
52 UINT16 Length;
53 UINT8 NodeFlags;
54 UINT8 NodeType;
55 UINT32 Identifier;
56 UINT64 NodeInstancePrimary;
57 UINT32 NodeInstanceSecondary;
58 UINT64 BaseAddress0;
59 UINT64 BaseAddress1;
60 UINT32 OverflowInterrupt;
61 UINT32 Reserved1;
62 UINT32 OverflowInterruptFlags;
63 UINT32 ProcessorAffinity;
64 UINT32 ImplementationId;
66
67#pragma pack()
68
69#endif