From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from walk.intel-email.com (walk.intel-email.com [101.227.64.242]) by mx.groups.io with SMTP id smtpd.web08.1187.1667351154425760830 for ; Tue, 01 Nov 2022 18:05:55 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@byosoft.com.cn header.s=cloud-union header.b=f0KtJVtw; spf=pass (domain: byosoft.com.cn, ip: 101.227.64.242, mailfrom: gaoliming@byosoft.com.cn) Received: from walk.intel-email.com (localhost [127.0.0.1]) by walk.intel-email.com (Postfix) with ESMTP id 67154CD1F7D6 for ; Wed, 2 Nov 2022 09:05:51 +0800 (CST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=byosoft.com.cn; s=cloud-union; t=1667351151; bh=OSpYDJa4Um/5OFelBZRanO1l3ZI0RZ64dgBU+dXxzd4=; h=From:To:Cc:References:In-Reply-To:Subject:Date; b=f0KtJVtwftk2TgA3FKI+IaowyWlBC5ZtBQ/I19PsZksfgIso8WomhcCoR22V7a48u uShCjDvMhUDhYD2SEyhlbKnLbYIT+3PE+pEaUv9shLjiGnlWF39l9DRR4NT1/nBmsA aej1QdmfZF1yD/E5vkYX8nApNg7aDsk8zqTdqgWY= Received: from localhost (localhost [127.0.0.1]) by walk.intel-email.com (Postfix) with ESMTP id 62C4FCD1F7D4 for ; Wed, 2 Nov 2022 09:05:51 +0800 (CST) Received: from walk.intel-email.com (localhost [127.0.0.1]) by walk.intel-email.com (Postfix) with ESMTP id 31E1ACD1F7CD for ; Wed, 2 Nov 2022 09:05:51 +0800 (CST) Authentication-Results: walk.intel-email.com; none Received: from mail.byosoft.com.cn (mail.byosoft.com.cn [58.240.74.242]) by walk.intel-email.com (Postfix) with SMTP id AABD6CD1F7D2 for ; Wed, 2 Nov 2022 09:05:47 +0800 (CST) Received: from DESKTOPS6D0PVI ([58.246.60.130]) (envelope-sender ) by 192.168.6.13 with ESMTP for ; Wed, 02 Nov 2022 09:05:41 +0800 X-WM-Sender: gaoliming@byosoft.com.cn X-Originating-IP: 58.246.60.130 X-WM-AuthFlag: YES X-WM-AuthUser: gaoliming@byosoft.com.cn From: "gaoliming" To: , , Cc: , , , , References: <1dd062eed3bce95a7928fa41f8e3821897867b4c.1666881494.git.jbrasen@nvidia.com> <266ab2d4-4464-de86-6b9c-afc53ab407b5@arm.com> In-Reply-To: <266ab2d4-4464-de86-6b9c-afc53ab407b5@arm.com> Subject: =?UTF-8?B?5Zue5aSNOiBbZWRrMi1kZXZlbF0gW1BBVENIIDEvMl0gTWRlUGtnL0luZHVzdHJ5U3RhbmRhcmQ6IGFkZCBkZWZpbml0aW9ucyBmb3IgQUNQSSBBUE1U?= Date: Wed, 2 Nov 2022 09:05:43 +0800 Message-ID: <002101d8ee57$3bc2b090$b34811b0$@byosoft.com.cn> MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQF8DCQed2KzZUYb6FIlIBYOeQpBDgFKHZQRrtpFL4A= Sender: "gaoliming" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Content-Language: zh-cn Reviewed-by: Liming Gao > -----=E9=82=AE=E4=BB=B6=E5=8E=9F=E4=BB=B6----- > =E5=8F=91=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io = =E4=BB=A3=E8=A1=A8 Sami > Mujawar > =E5=8F=91=E9=80=81=E6=97=B6=E9=97=B4: 2022=E5=B9=B411=E6=9C=881=E6=97=A5 = 19:42 > =E6=94=B6=E4=BB=B6=E4=BA=BA: devel@edk2.groups.io; jbrasen@nvidia.com > =E6=8A=84=E9=80=81: michael.d.kinney@intel.com; gaoliming@byosoft.com.cn; > zhiguang.liu@intel.com; zhichao.gao@intel.com; ray.ni@intel.com; > nd@arm.com > =E4=B8=BB=E9=A2=98: Re: [edk2-devel] [PATCH 1/2] MdePkg/IndustryStandard:= add > definitions for ACPI APMT >=20 > Hi Jeff, >=20 > Thank you for this patch. >=20 > These changes look good to me. >=20 > Reviewed-by: Sami Mujawar >=20 > Regards, >=20 > Sami Mujawar >=20 > 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 > > > > --- > > > > 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_SIGNATU > RE 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 > > > > + > > > > +#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 > > >=20 >=20 >=20 >=20