public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Sami Mujawar" <sami.mujawar@arm.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"quic_rcran@quicinc.com" <quic_rcran@quicinc.com>
Cc: Alexei Fedorov <Alexei.Fedorov@arm.com>,
	"ardb+tianocore@kernel.org" <ardb+tianocore@kernel.org>,
	Pierre Gondois <Pierre.Gondois@arm.com>,
	Matteo Carlini <Matteo.Carlini@arm.com>,
	Akanksha Jain <Akanksha.Jain2@arm.com>,
	Ben Adderson <Ben.Adderson@arm.com>,
	Steven Price <Steven.Price@arm.com>,
	Lorenzo Pieralisi <Lorenzo.Pieralisi@arm.com>,
	"michael.d.kinney@intel.com" <michael.d.kinney@intel.com>,
	"gaoliming@byosoft.com.cn" <gaoliming@byosoft.com.cn>,
	"zhiguang.liu@intel.com" <zhiguang.liu@intel.com>,
	"ray.ni@intel.com" <ray.ni@intel.com>,
	"zhichao.gao@intel.com" <zhichao.gao@intel.com>, nd <nd@arm.com>
Subject: Re: [edk2-devel] [PATCH v3 1/8] MdePkg: IORT header update for IORT Rev E.b spec
Date: Thu, 3 Feb 2022 16:04:50 +0000	[thread overview]
Message-ID: <85E7EF8A-A7E4-4801-9A70-CECDFA1D1BD4@arm.com> (raw)
In-Reply-To: <649339c2-c093-9cc7-28ce-1e44e5928bf7@quicinc.com>

Hi All,

We are going to skip the IORT Rev E.b and E.c. I will be submitting a new patch series, so please ignore this series.

Regards,

Sami Mujawar

On 03/02/2022, 15:24, "devel@edk2.groups.io on behalf of Rebecca Cran via groups.io" <devel@edk2.groups.io on behalf of quic_rcran=quicinc.com@groups.io> wrote:

    Reviewed-by: Rebecca Cran <quic_rcran@quicinc.com>


    On 11/10/21 03:55, Sami Mujawar wrote:
    > Bugzilla: 3458 - Add support IORT Rev E.b specification updates
    >            (https://bugzilla.tianocore.org/show_bug.cgi?id=3458)
    >
    > The IO Remapping Table, Platform Design Document, Revision E.b,
    > Feb 2021 (https://developer.arm.com/documentation/den0049/)
    > introduces the following updates, collectively including the
    > updates and errata fixes to Rev E and Rev E.a:
    >    - increments the IORT table revision to 3.
    >    - updates the node definition to add an 'Identifier' field.
    >    - adds definition of node type 6 - Reserved Memory Range node.
    >    - adds definition for Memory Range Descriptors.
    >    - adds flag to indicate PRI support for root complexes.
    >    - adds flag to indicate if the root complex supports forwarding
    >      of PASID information on translated transactions to the SMMU.
    >
    > Therefore, update the IORT header file to reflect these changes,
    > and also rename the EFI_ACPI_IO_REMAPPING_TABLE_REVISION macro to
    > EFI_ACPI_IO_REMAPPING_TABLE_REV0.
    >
    > Signed-off-by: Sami Mujawar <sami.mujawar@arm.com>
    > Reviewed-by: Zhichao Gao <zhichao.gao@intel.com>
    > ---
    >
    > Notes:
    >      v2:
    >        - Set EFI_ACPI_IO_REMAPPING_TABLE_REVISION to Rev 0 as     [SAMI]
    >          setting to Rev 3 will break existing platforms. The
    >          problem is that existing code would not be populating
    >          the Identifier field in the nodes. This can lead to
    >          non-unique values in the Identifier field.
    >      
    >      v3:
    >       - Submit patch series to update platform code to use the       [LIMING]
    >         EFI_ACPI_IO_REMAPPING_TABLE_REV0 macro.
    >         Ref: https://edk2.groups.io/g/devel/topic/83618423#76799
    >       - Removed definition of EFI_ACPI_IO_REMAPPING_TABLE_REVISION   [SAMI]
    >         as EFI_ACPI_IO_REMAPPING_TABLE_REV0 has been provided for
    >         representing Rev 0. Also, a corresponding patch series
    >         for updating the platforms in edk2-platforms repository
    >         shall be submitted to the edk2 mailing list.
    >       - Include r-b received from v2 series.                         [SAMI]
    >         Ref: https://edk2.groups.io/g/devel/topic/83600724#76660
    >
    >   MdePkg/Include/IndustryStandard/IoRemappingTable.h | 66 +++++++++++++++++---
    >   1 file changed, 59 insertions(+), 7 deletions(-)
    >
    > diff --git a/MdePkg/Include/IndustryStandard/IoRemappingTable.h b/MdePkg/Include/IndustryStandard/IoRemappingTable.h
    > index 90504e3a6715be7facc6450c6ff0e1eab92cd3c7..e80164a07f4d561cd85994b4f785e76f2eab4586 100644
    > --- a/MdePkg/Include/IndustryStandard/IoRemappingTable.h
    > +++ b/MdePkg/Include/IndustryStandard/IoRemappingTable.h
    > @@ -1,12 +1,19 @@
    >   /** @file
    > -  ACPI IO Remapping Table (IORT) as specified in ARM spec DEN0049D
    > -
    > -  http://infocenter.arm.com/help/topic/com.arm.doc.den0049d/DEN0049D_IO_Remapping_Table.pdf
    > +  ACPI IO Remapping Table (IORT) definitions.
    >   
    >     Copyright (c) 2017, Linaro Limited. All rights reserved.<BR>
    > -  Copyright (c) 2018, ARM Limited. All rights reserved.<BR>
    > +  Copyright (c) 2018 - 2021, Arm Limited. All rights reserved.<BR>
    >   
    >     SPDX-License-Identifier: BSD-2-Clause-Patent
    > +
    > +  @par Reference(s):
    > +  - IO Remapping Table, Platform Design Document, Revision E.b, Feb 2021
    > +    (https://developer.arm.com/documentation/den0049/)
    > +
    > +  @par Glossary:
    > +  - Ref  : Reference
    > +  - Mem  : Memory
    > +  - Desc : Descriptor
    >   **/
    >   
    >   #ifndef __IO_REMAPPING_TABLE_H__
    > @@ -14,7 +21,8 @@
    >   
    >   #include <IndustryStandard/Acpi.h>
    >   
    > -#define EFI_ACPI_IO_REMAPPING_TABLE_REVISION        0x0
    > +#define EFI_ACPI_IO_REMAPPING_TABLE_REV0      0x0
    > +#define EFI_ACPI_IO_REMAPPING_TABLE_REV3      0x3
    >   
    >   #define EFI_ACPI_IORT_TYPE_ITS_GROUP                0x0
    >   #define EFI_ACPI_IORT_TYPE_NAMED_COMP               0x1
    > @@ -22,6 +30,7 @@
    >   #define EFI_ACPI_IORT_TYPE_SMMUv1v2                 0x3
    >   #define EFI_ACPI_IORT_TYPE_SMMUv3                   0x4
    >   #define EFI_ACPI_IORT_TYPE_PMCG                     0x5
    > +#define EFI_ACPI_IORT_TYPE_RMR                      0x6
    >   
    >   #define EFI_ACPI_IORT_MEM_ACCESS_PROP_CCA           BIT0
    >   
    > @@ -55,7 +64,16 @@
    >   #define EFI_ACPI_IORT_SMMUv3_MODEL_CAVIUM_CN99XX    0x2
    >   
    >   #define EFI_ACPI_IORT_ROOT_COMPLEX_ATS_UNSUPPORTED  0x0
    > -#define EFI_ACPI_IORT_ROOT_COMPLEX_ATS_SUPPORTED    0x1
    > +#define EFI_ACPI_IORT_ROOT_COMPLEX_ATS_SUPPORTED    BIT0
    > +
    > +#define EFI_ACPI_IORT_ROOT_COMPLEX_PRI_UNSUPPORTED  0x0
    > +#define EFI_ACPI_IORT_ROOT_COMPLEX_PRI_SUPPORTED    BIT1
    > +
    > +#define EFI_ACPI_IORT_ROOT_COMPLEX_PASID_FWD_UNSUPPORTED  0x0
    > +#define EFI_ACPI_IORT_ROOT_COMPLEX_PASID_FWD_SUPPORTED    BIT2
    > +
    > +#define EFI_ACPI_IORT_RMR_REMAP_NOT_PERMITTED       0x0
    > +#define EFI_ACPI_IORT_RMR_REMAP_PERMITTED           BIT0
    >   
    >   #define EFI_ACPI_IORT_ID_MAPPING_FLAGS_SINGLE       BIT0
    >   
    > @@ -89,7 +107,7 @@ typedef struct {
    >     UINT8                                   Type;
    >     UINT16                                  Length;
    >     UINT8                                   Revision;
    > -  UINT32                                  Reserved;
    > +  UINT32                                  Identifier;
    >     UINT32                                  NumIdMappings;
    >     UINT32                                  IdReference;
    >   } EFI_ACPI_6_0_IO_REMAPPING_NODE;
    > @@ -198,6 +216,40 @@ typedef struct {
    >   //EFI_ACPI_6_0_IO_REMAPPING_ID_TABLE      OverflowInterruptMsiMapping[1];
    >   } EFI_ACPI_6_0_IO_REMAPPING_PMCG_NODE;
    >   
    > +///
    > +/// Memory Range Descriptor.
    > +///
    > +typedef struct {
    > +  /// Base address of Reserved Memory Range,
    > +  /// aligned to a page size of 64K.
    > +  UINT64                                  Base;
    > +
    > +  /// Length of the Reserved Memory range.
    > +  /// Must be a multiple of the page size of 64K.
    > +  UINT64                                  Length;
    > +
    > +  /// Reserved, must be zero.
    > +  UINT32                                  Reserved;
    > +} EFI_ACPI_6_0_IO_REMAPPING_MEM_RANGE_DESC;
    > +
    > +///
    > +/// Node type 6: Reserved Memory Range (RMR) node
    > +///
    > +typedef struct {
    > +  EFI_ACPI_6_0_IO_REMAPPING_NODE              Node;
    > +
    > +  /// RMR flags
    > +  UINT32                                      Flags;
    > +
    > +  /// Memory range descriptor count.
    > +  UINT32                                      NumMemRangeDesc;
    > +
    > +  /// Offset of the memory range descriptor array.
    > +  UINT32                                      MemRangeDescRef;
    > +// EFI_ACPI_6_0_IO_REMAPPING_ID_TABLE         IdMapping[1];
    > +// EFI_ACPI_6_0_IO_REMAPPING_MEM_RANGE_DESC   MemRangeDesc[1];
    > +} EFI_ACPI_6_0_IO_REMAPPING_RMR_NODE;
    > +
    >   #pragma pack()
    >   
    >   #endif


    




  reply	other threads:[~2022-02-03 16:05 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-10 10:55 [PATCH v3 0/8] IORT Rev E.b specification updates Sami Mujawar
2021-11-10 10:55 ` [PATCH v3 1/8] MdePkg: IORT header update for IORT Rev E.b spec Sami Mujawar
2022-02-03 15:24   ` [edk2-devel] " Rebecca Cran
2022-02-03 16:04     ` Sami Mujawar [this message]
2021-11-10 10:55 ` [PATCH v3 2/8] ShellPkg: Acpiview: Abbreviate field names to preserve alignment Sami Mujawar
2021-11-10 10:55 ` [PATCH v3 3/8] ShellPkg: Acpiview: IORT parser update for IORT Rev E.b spec Sami Mujawar
2021-11-10 10:55 ` [PATCH v3 4/8] DynamicTablesPkg: Handle error when IdMappingToken is NULL Sami Mujawar
2021-11-10 10:55 ` [PATCH v3 5/8] DynamicTablesPkg: IORT set reference to Id array only if present Sami Mujawar
2021-11-10 10:55 ` [PATCH v3 6/8] DynamicTablesPkg: IORT set reference to interrupt array " Sami Mujawar
2021-11-10 10:55 ` [PATCH v3 7/8] DynamicTablesPkg: Update ArmNameSpaceObjects for IORT Rev E.b Sami Mujawar
2021-11-10 10:55 ` [PATCH v3 8/8] DynamicTablesPkg: IORT generator updates for Rev E.b spec Sami Mujawar
2021-11-10 11:03 ` [edk2-devel] [PATCH v3 0/8] IORT Rev E.b specification updates Sami Mujawar
2022-02-03 16:08   ` Sami Mujawar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=85E7EF8A-A7E4-4801-9A70-CECDFA1D1BD4@arm.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox