Message ID | 20201027112646.44680-2-shameerali.kolothum.thodi@huawei.com |
---|---|
State | Accepted |
Commit | 8e1fdd7f1655c538fb017d0493c80d02cbc8d8d4 |
Headers | show |
Series | ACPI/IORT: Support for IORT RMR node | expand |
Hi Erik, [Adding back the original MLs + CC list] > -----Original Message----- > From: Kaneda, Erik [mailto:erik.kaneda@intel.com] > Sent: 28 October 2020 18:20 > To: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>; > Moore, Robert <robert.moore@intel.com>; Wysocki, Rafael J > <rafael.j.wysocki@intel.com> > Subject: RE: [Devel] [RFC PATCH 1/4] ACPICA: IORT: Update for revision E > > > > > -----Original Message----- > > From: Shameerali Kolothum Thodi > > <shameerali.kolothum.thodi@huawei.com> > > Sent: Wednesday, October 28, 2020 1:15 AM > > To: Moore, Robert <robert.moore@intel.com> > > Cc: Kaneda, Erik <erik.kaneda@intel.com> > > Subject: RE: [Devel] [RFC PATCH 1/4] ACPICA: IORT: Update for revision > > E > > > > Hi, > > > > > -----Original Message----- > > > From: Moore, Robert [mailto:robert.moore@intel.com] > > > Sent: 27 October 2020 21:46 > > > To: Shameerali Kolothum Thodi > > <shameerali.kolothum.thodi@huawei.com> > > > Cc: Kaneda, Erik <erik.kaneda@intel.com> > > > Subject: RE: [Devel] [RFC PATCH 1/4] ACPICA: IORT: Update for > > > revision E > > > > > > This patch will need to be ported to the native ACPICA format. > > > > Thanks for your feedback. Sorry that, I am not familiar with the process here. > > As mentioned > > below, I thought a pull request via acpica git is enough, which you > > can find here, > > > > https://github.com/acpica/acpica/pull/638 > > > > The above pull includes this header file change + other changes > > related to RMR for tools. > > > > Please let me know what else needs to be done when you say "native > > format". > > Oh ok, thanks for the pull request. You're submitting this as an RFC for linux. Do > you expect the IORT definition to change throughout linux's RFC period? If you > don't plan on changing the IORT definition, we can look at the pull request. The IORT revision E document is published here, https://developer.arm.com/documentation/den0049/latest/ and I don’t think it will change now (But ARM folks can confirm this). I submitted this as an RFC, because of the very dependency on this actbl2.h header updates and this being not available in kernel. > Once we merge it, I'll submit the ACPICA patches to Rafael after we do a > release. Ok. Thanks for the details. Looking forward to getting this merged to kernel soon :) Thanks, Shameer > Erik > > > > Thanks, > > Shameer > > > > > > > > > > > > > -----Original Message----- > > > From: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com> > > > Sent: Tuesday, October 27, 2020 4:27 AM > > > To: linux-arm-kernel@lists.infradead.org; > > > linux-acpi@vger.kernel.org; iommu@lists.linux-foundation.org; > > > devel@acpica.org > > > Cc: linuxarm@huawei.com; lorenzo.pieralisi@arm.com; joro@8bytes.org; > > > robin.murphy@arm.com; wanghuiqiang@huawei.com; > > > jonathan.cameron@huawei.com > > > Subject: [Devel] [RFC PATCH 1/4] ACPICA: IORT: Update for revision E > > > > > > IORT revision E contains a few additions like, > > > -Added an identifier field in the node descriptors to aid table > > > cross-referencing. > > > -Introduced the Reserved Memory Range(RMR) node. This is used > > > to describe memory ranges that are used by endpoints and > > > requires > > > a unity mapping in SMMU. > > > -Introduced a flag in the RC node to express support for PRI. > > > > > > Signed-off-by: Shameer Kolothum > > <shameerali.kolothum.thodi@huawei.com> > > > --- > > > -This should be updated through acpica git. I have sent out a pull > > > request for the same here, > > > https://github.com/acpica/acpica/pull/638 > > > > > > Please help to review. > > > --- > > > include/acpi/actbl2.h | 25 +++++++++++++++++++------ > > > 1 file changed, 19 insertions(+), 6 deletions(-) > > > > > > diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h index > > > ec66779cb193..274fce7b5c01 100644 > > > --- a/include/acpi/actbl2.h > > > +++ b/include/acpi/actbl2.h > > > @@ -68,7 +68,7 @@ > > > * IORT - IO Remapping Table > > > * > > > * Conforms to "IO Remapping Table System Software on ARM > > > Platforms", > > > - * Document number: ARM DEN 0049D, March 2018 > > > + * Document number: ARM DEN 0049E, June 2020 > > > * > > > > > > > > ********************************************************** > > ****** > > > **************/ > > > > > > @@ -86,7 +86,8 @@ struct acpi_iort_node { > > > u8 type; > > > u16 length; > > > u8 revision; > > > - u32 reserved; > > > + u16 reserved; > > > + u16 identifier; > > > u32 mapping_count; > > > u32 mapping_offset; > > > char node_data[1]; > > > @@ -100,7 +101,8 @@ enum acpi_iort_node_type { > > > ACPI_IORT_NODE_PCI_ROOT_COMPLEX = 0x02, > > > ACPI_IORT_NODE_SMMU = 0x03, > > > ACPI_IORT_NODE_SMMU_V3 = 0x04, > > > - ACPI_IORT_NODE_PMCG = 0x05 > > > + ACPI_IORT_NODE_PMCG = 0x05, > > > + ACPI_IORT_NODE_RMR = 0x06, > > > }; > > > > > > struct acpi_iort_id_mapping { > > > @@ -167,10 +169,10 @@ struct acpi_iort_root_complex { > > > u8 reserved[3]; /* Reserved, must be zero */ > > > }; > > > > > > -/* Values for ats_attribute field above */ > > > +/* Masks for ats_attribute field above */ > > > > > > -#define ACPI_IORT_ATS_SUPPORTED 0x00000001 /* The > root > > > complex supports ATS */ > > > -#define ACPI_IORT_ATS_UNSUPPORTED 0x00000000 /* The > root > > > complex doesn't support ATS */ > > > +#define ACPI_IORT_ATS_SUPPORTED (1) /* The root complex > > > supports ATS */ > > > +#define ACPI_IORT_PRI_SUPPORTED (1<<1) /* The root > complex > > > supports PRI */ > > > > > > struct acpi_iort_smmu { > > > u64 base_address; /* SMMU base address */ > > > @@ -241,6 +243,17 @@ struct acpi_iort_pmcg { > > > u64 page1_base_address; > > > }; > > > > > > +struct acpi_iort_rmr { > > > + u32 rmr_count; > > > + u32 rmr_offset; > > > +}; > > > + > > > +struct acpi_iort_rmr_desc { > > > + u64 base_address; > > > + u64 length; > > > + u32 reserved; > > > +}; > > > + > > > > > > > > /********************************************************** > > ***** > > > **************** > > > * > > > * IVRS - I/O Virtualization Reporting Structure > > > -- > > > 2.17.1 > > > _______________________________________________ > > > Devel mailing list -- devel@acpica.org To unsubscribe send an email > > > to > > > devel- > > leave@acpica.org %(web_page_url)slistinfo%(cgiext)s/%(_internal_name > > > )s
diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h index ec66779cb193..274fce7b5c01 100644 --- a/include/acpi/actbl2.h +++ b/include/acpi/actbl2.h @@ -68,7 +68,7 @@ * IORT - IO Remapping Table * * Conforms to "IO Remapping Table System Software on ARM Platforms", - * Document number: ARM DEN 0049D, March 2018 + * Document number: ARM DEN 0049E, June 2020 * ******************************************************************************/ @@ -86,7 +86,8 @@ struct acpi_iort_node { u8 type; u16 length; u8 revision; - u32 reserved; + u16 reserved; + u16 identifier; u32 mapping_count; u32 mapping_offset; char node_data[1]; @@ -100,7 +101,8 @@ enum acpi_iort_node_type { ACPI_IORT_NODE_PCI_ROOT_COMPLEX = 0x02, ACPI_IORT_NODE_SMMU = 0x03, ACPI_IORT_NODE_SMMU_V3 = 0x04, - ACPI_IORT_NODE_PMCG = 0x05 + ACPI_IORT_NODE_PMCG = 0x05, + ACPI_IORT_NODE_RMR = 0x06, }; struct acpi_iort_id_mapping { @@ -167,10 +169,10 @@ struct acpi_iort_root_complex { u8 reserved[3]; /* Reserved, must be zero */ }; -/* Values for ats_attribute field above */ +/* Masks for ats_attribute field above */ -#define ACPI_IORT_ATS_SUPPORTED 0x00000001 /* The root complex supports ATS */ -#define ACPI_IORT_ATS_UNSUPPORTED 0x00000000 /* The root complex doesn't support ATS */ +#define ACPI_IORT_ATS_SUPPORTED (1) /* The root complex supports ATS */ +#define ACPI_IORT_PRI_SUPPORTED (1<<1) /* The root complex supports PRI */ struct acpi_iort_smmu { u64 base_address; /* SMMU base address */ @@ -241,6 +243,17 @@ struct acpi_iort_pmcg { u64 page1_base_address; }; +struct acpi_iort_rmr { + u32 rmr_count; + u32 rmr_offset; +}; + +struct acpi_iort_rmr_desc { + u64 base_address; + u64 length; + u32 reserved; +}; + /******************************************************************************* * * IVRS - I/O Virtualization Reporting Structure
IORT revision E contains a few additions like, -Added an identifier field in the node descriptors to aid table cross-referencing. -Introduced the Reserved Memory Range(RMR) node. This is used to describe memory ranges that are used by endpoints and requires a unity mapping in SMMU. -Introduced a flag in the RC node to express support for PRI. Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com> --- -This should be updated through acpica git. I have sent out a pull request for the same here, https://github.com/acpica/acpica/pull/638 Please help to review. --- include/acpi/actbl2.h | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-)