From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 94D4721A6F105 for ; Wed, 19 Apr 2017 01:54:04 -0700 (PDT) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 Apr 2017 01:54:03 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.37,220,1488873600"; d="scan'208,217";a="250920929" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by fmsmga004.fm.intel.com with ESMTP; 19 Apr 2017 01:54:03 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 19 Apr 2017 01:54:02 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.246]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.193]) with mapi id 14.03.0319.002; Wed, 19 Apr 2017 16:54:01 +0800 From: "Yao, Jiewen" To: Ard Biesheuvel CC: "Kinney, Michael D" , "edk2-devel@lists.01.org" , "leif.lindholm@linaro.org" , "Gao, Liming" Thread-Topic: [edk2] [PATCH v2] MdePkg/IndustryStandard: add definitions for ACPI 6.0 IORT Thread-Index: AQHSuNwgBCrU0oFJCEuNyg1Id/4kKKHMR+4A//+COICAAJjkcA== Date: Wed, 19 Apr 2017 08:54:00 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503A92E7B7@shsmsx102.ccr.corp.intel.com> References: <1492585843-10974-1-git-send-email-ard.biesheuvel@linaro.org> <74D8A39837DF1E4DA445A8C0B3885C503A92E62F@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 10.0.102.7 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.22 Subject: Re: [PATCH v2] MdePkg/IndustryStandard: add definitions for ACPI 6.0 IORT X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Apr 2017 08:54:04 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Thank you. That makes more sense to me. :) Reviewed-by: Jiewen.yao@intel.com Thank you Yao Jiewen From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Ard = Biesheuvel Sent: Wednesday, April 19, 2017 3:46 PM To: Yao, Jiewen Cc: Kinney, Michael D ; edk2-devel@lists.01.org= ; leif.lindholm@linaro.org; Gao, Liming Subject: Re: [edk2] [PATCH v2] MdePkg/IndustryStandard: add definitions for= ACPI 6.0 IORT On 19 April 2017 at 08:24, Yao, Jiewen > wrote: > Hi Ard > Is there any special reason that we use INT32 instead of UINT32 in EFI_AC= PI_6_0_IO_REMAPPING_TABLE? > > + INT32 NumNodes; > + INT32 NodeOffset; > + INT32 Reserved; > > I am just curious. > No, simply an oversight on my part. I will fix that up before committing. Thanks, Ard. >> -----Original Message----- >> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of A= rd >> Biesheuvel >> Sent: Wednesday, April 19, 2017 3:11 PM >> To: edk2-devel@lists.01.org; Gao, Liming= >; Kinney, >> Michael D = > >> Cc: leif.lindholm@linaro.org; Ard Biesh= euvel > >> Subject: [edk2] [PATCH v2] MdePkg/IndustryStandard: add definitions for = ACPI >> 6.0 IORT >> >> This adds #defines and struct typedefs for the various node types in >> the ACPI 6.0 IO Remapping Table (IORT). >> >> Contributed-under: TianoCore Contribution Agreement 1.0 >> Signed-off-by: Ard Biesheuvel > >> --- >> v2: added PDF link to file header >> updated comment style to align with other ACPI header files >> >> MdePkg/Include/IndustryStandard/IoRemappingTable.h | 183 >> ++++++++++++++++++++ >> 1 file changed, 183 insertions(+) >> >> diff --git a/MdePkg/Include/IndustryStandard/IoRemappingTable.h >> b/MdePkg/Include/IndustryStandard/IoRemappingTable.h >> new file mode 100644 >> index 000000000000..310819b03ff5 >> --- /dev/null >> +++ b/MdePkg/Include/IndustryStandard/IoRemappingTable.h >> @@ -0,0 +1,183 @@ >> +/** @file >> + ACPI IO Remapping Table (IORT) as specified in ARM spec DEN0049B >> + >> + >> http://infocenter.arm.com/help/topic/com.arm.doc.den0049b/DEN0049B_IO_Re >> mapping_Table.pdf >> + >> + Copyright (c) 2017, Linaro Limited. All rights reserved.
>> + >> + This program and the accompanying materials >> + are licensed and made available under the terms and conditions of the= BSD >> License >> + which accompanies this distribution. The full text of the license ma= y be >> found at >> + http://opensource.org/licenses/bsd-license.php >> + >> + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, >> + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS >> OR IMPLIED. >> +**/ >> + >> +#ifndef __IO_REMAPPING_TABLE_H__ >> +#define __IO_REMAPPING_TABLE_H__ >> + >> +#include >> + >> +#define EFI_ACPI_IO_REMAPPING_TABLE_REVISION 0x0 >> + >> +#define EFI_ACPI_IORT_TYPE_ITS_GROUP 0x0 >> +#define EFI_ACPI_IORT_TYPE_NAMED_COMP 0x1 >> +#define EFI_ACPI_IORT_TYPE_ROOT_COMPLEX 0x2 >> +#define EFI_ACPI_IORT_TYPE_SMMUv1v2 0x3 >> +#define EFI_ACPI_IORT_TYPE_SMMUv3 0x4 >> + >> +#define EFI_ACPI_IORT_MEM_ACCESS_PROP_CCA BIT0 >> + >> +#define EFI_ACPI_IORT_MEM_ACCESS_PROP_AH_TR BIT0 >> +#define EFI_ACPI_IORT_MEM_ACCESS_PROP_AH_WA BIT1 >> +#define EFI_ACPI_IORT_MEM_ACCESS_PROP_AH_RA BIT2 >> +#define EFI_ACPI_IORT_MEM_ACCESS_PROP_AH_AHO BIT3 >> + >> +#define EFI_ACPI_IORT_MEM_ACCESS_FLAGS_CPM BIT0 >> +#define EFI_ACPI_IORT_MEM_ACCESS_FLAGS_DACS BIT1 >> + >> +#define EFI_ACPI_IORT_SMMUv1v2_MODEL_v1 0x0 >> +#define EFI_ACPI_IORT_SMMUv1v2_MODEL_v2 0x1 >> +#define EFI_ACPI_IORT_SMMUv1v2_MODEL_MMU400 0x2 >> +#define EFI_ACPI_IORT_SMMUv1v2_MODEL_MMU500 0x3 >> + >> +#define EFI_ACPI_IORT_SMMUv1v2_FLAG_DVM BIT0 >> +#define EFI_ACPI_IORT_SMMUv1v2_FLAG_COH_WALK BIT1 >> + >> +#define EFI_ACPI_IORT_SMMUv1v2_INT_FLAG_LEVEL 0x0 >> +#define EFI_ACPI_IORT_SMMUv1v2_INT_FLAG_EDGE 0x1 >> + >> +#define EFI_ACPI_IORT_SMMUv3_FLAG_COHAC_OVERRIDE BIT0 >> +#define EFI_ACPI_IORT_SMMUv3_FLAG_HTTU_OVERRIDE BIT1 >> + >> +#define EFI_ACPI_IORT_ROOT_COMPLEX_ATS_UNSUPPORTED 0x0 >> +#define EFI_ACPI_IORT_ROOT_COMPLEX_ATS_SUPPORTED 0x1 >> + >> +#define EFI_ACPI_IORT_ID_MAPPING_FLAGS_SINGLE BIT0 >> + >> +#pragma pack(1) >> + >> +/// >> +/// Table header >> +/// >> +typedef struct { >> + EFI_ACPI_DESCRIPTION_HEADER Header; >> + INT32 NumNodes; >> + INT32 NodeOffset; >> + INT32 Reserved; >> +} EFI_ACPI_6_0_IO_REMAPPING_TABLE; >> + >> +/// >> +/// Definition for ID mapping table shared by all node types >> +/// >> +typedef struct { >> + UINT32 InputBase; >> + UINT32 NumIds; >> + UINT32 OutputBase; >> + UINT32 OutputReference; >> + UINT32 Flags; >> +} EFI_ACPI_6_0_IO_REMAPPING_ID_TABLE; >> + >> +/// >> +/// Node header definition shared by all node types >> +/// >> +typedef struct { >> + UINT8 Type; >> + UINT16 Length; >> + UINT8 Revision; >> + UINT32 Reserved; >> + UINT32 NumIdMappings; >> + UINT32 IdReference; >> +} EFI_ACPI_6_0_IO_REMAPPING_NODE; >> + >> +/// >> +/// Node type 0: ITS node >> +/// >> +typedef struct { >> + EFI_ACPI_6_0_IO_REMAPPING_NODE Node; >> + >> + UINT32 NumItsIdentifiers; >> +//UINT32 >> ItsIdentifiers[NumItsIdentifiers]; >> +} EFI_ACPI_6_0_IO_REMAPPING_ITS_NODE; >> + >> +/// >> +/// Node type 1: root complex node >> +/// >> +typedef struct { >> + EFI_ACPI_6_0_IO_REMAPPING_NODE Node; >> + >> + UINT32 CacheCoherent; >> + UINT8 AllocationHints; >> + UINT16 Reserved; >> + UINT8 MemoryAccessFlags; >> + >> + UINT32 AtsAttribute; >> + UINT32 PciSegmentNumber; >> +} EFI_ACPI_6_0_IO_REMAPPING_RC_NODE; >> + >> +/// >> +/// Node type 2: named component node >> +/// >> +typedef struct { >> + EFI_ACPI_6_0_IO_REMAPPING_NODE Node; >> + >> + UINT32 Flags; >> + UINT32 CacheCoherent; >> + UINT8 AllocationHints; >> + UINT16 Reserved; >> + UINT8 MemoryAccessFlags; >> + UINT8 AddressSizeLimit; >> +//UINT8 ObjectName[]; >> +} EFI_ACPI_6_0_IO_REMAPPING_NAMED_COMP_NODE; >> + >> +/// >> +/// Node type 3: SMMUv1 or SMMUv2 node >> +/// >> +typedef struct { >> + UINT32 Interrupt; >> + UINT32 InterruptFlags; >> +} EFI_ACPI_6_0_IO_REMAPPING_SMMU_INT; >> + >> +typedef struct { >> + EFI_ACPI_6_0_IO_REMAPPING_NODE Node; >> + >> + UINT64 Base; >> + UINT64 Span; >> + UINT32 Model; >> + UINT32 Flags; >> + UINT32 GlobalInterruptArrayRef; >> + UINT32 NumContextInterrupts; >> + UINT32 ContextInterruptArrayRef; >> + UINT32 NumPmuInterrupts; >> + UINT32 PmuInterruptArrayRef; >> + >> + UINT32 SMMU_NSgIrpt; >> + UINT32 SMMU_NSgIrptFlags; >> + UINT32 SMMU_NSgCfgIrpt; >> + UINT32 SMMU_NSgCfgIrptFlags; >> + >> +//EFI_ACPI_6_0_IO_REMAPPING_SMMU_CTX_INT >> ContextInterrupt[NumContextInterrupts]; >> +//EFI_ACPI_6_0_IO_REMAPPING_SMMU_CTX_INT >> PmuInterrupt[NumPmuInterrupts]; >> +} EFI_ACPI_6_0_IO_REMAPPING_SMMU_NODE; >> + >> +/// >> +/// Node type 4: SMMUv4 node >> +/// >> +typedef struct { >> + EFI_ACPI_6_0_IO_REMAPPING_NODE Node; >> + >> + UINT64 Base; >> + UINT32 Flags; >> + UINT32 Reserved; >> + UINT64 VatosAddress; >> + UINT32 Model; >> + UINT32 Event; >> + UINT32 Pri; >> + UINT32 Gerr; >> + UINT32 Sync; >> +} EFI_ACPI_6_0_IO_REMAPPING_SMMU3_NODE; >> + >> +#pragma pack() >> + >> +#endif >> -- >> 2.7.4 >> >> _______________________________________________ >> edk2-devel mailing list >> edk2-devel@lists.01.org >> https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel