Re: [RFC PATCH v2 1/8] ACPICA: IORT: Update for revision E
From: Jon Nettleton <hidden>
Date: 2021-03-25 08:44:45
Also in:
linux-acpi, linux-iommu
On Mon, Mar 22, 2021 at 11:37 AM Shameerali Kolothum Thodi [off-list ref] wrote:
[+] Hi Erik, As this is now just merged ino acpica-master and based on the discussion we had here, https://github.com/acpica/acpica/pull/638 I had a discussion with ARM folks(Lorenzo) in the linaro-open-discussions call and can confirm that the IORT Revision E is not the final specification and has some issues which is now corrected in the latest E.b revision[1]. Also there are no current users for the Rev E and it may not be a good idea to push this version into the Linux kernel or elsewhere.
Well it was a released revision, although it was found to have issues. Currently HoneyComb Systems Ready certified firmware does include support for this table, although incomplete. Without agreement on mainline support I am fine to update to the latest spec bump.
So could you please revert the merge and I am planning to work on the E.b soon. Please let me know if I need to explicitly send a revert pull request or not.
Can you please CC. me on your next release. I was planning on spending time on this regardless. I already have a patchset for the fsl-mc-bus driver that needs to change in order to function properly with RMR support. Thanks.
Thanks, Shameer 1. https://developer.arm.com/documentation/den0049/latest/quoted
-----Original Message----- From: iommu [mailto:iommu-bounces@lists.linux-foundation.org] On Behalf Of Shameer Kolothum Sent: 19 November 2020 12:12 To: linux-arm-kernel@lists.infradead.org; linux-acpi@vger.kernel.org; iommu@lists.linux-foundation.org; devel@acpica.org Cc: Linuxarm <redacted>; steven.price@arm.com; Guohanjun (Hanjun Guo) [off-list ref]; Sami.Mujawar@arm.com; robin.murphy@arm.com; wanghuiqiang [off-list ref] Subject: [RFC PATCH v2 1/8] 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 <redacted> --- include/acpi/actbl2.h | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-)diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h indexec66779cb193..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 rootcomplex 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 _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu_______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
_______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel