[edk2-devel] [PATCH 1/2] MdePkg/IndustryStandard: add definitions for ACPI APMT

Sami Mujawar sami.mujawar at arm.com
Tue Nov 1 11:41:34 UTC 2022


Hi Jeff,

Thank you for this patch.

These changes look good to me.

Reviewed-by: Sami Mujawar <sami.mujawar at 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 <jbrasen at 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/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list