From: Shyam Saini <shyamsaini@linux.microsoft.com>
To: iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
devicetree@vger.kernel.org, virtualization@lists.linux.dev
Cc: will@kernel.org, jacob.pan@linux.microsoft.com,
eric.auger@redhat.com, code@tyhicks.com,
eahariha@linux.microsoft.com, vijayb@linux.microsoft.com
Subject: [PATCH 1/3] dt-bindings: iommu: add "arm,smmu-pci-msi-iova-data" property
Date: Thu, 16 Jan 2025 15:23:07 -0800 [thread overview]
Message-ID: <20250116232307.1436693-4-shyamsaini@linux.microsoft.com> (raw)
In-Reply-To: <20250116232307.1436693-1-shyamsaini@linux.microsoft.com>
By default ARM SMMU drivers use MSI_IOVA_BASE macro to reserve
PCI MSI IOVA memory range, this assumes that all the platforms have
MSI_IOVA_BASE address available for MSI reservation. However, this
is not always the case, as some platforms may have the default
address reserved for some other purposes and as a consequence ARM SMMU
drivers can't reserve MSI memory for those platforms.
To address this issue, add a new dts property
"arm,smmu-pci-msi-iova-data" which can be used to hold custom
PCI MSI IOVA address and its address length. This property can be passed
to ARM SMMU drivers via device tree to reserve specified memory range
for MSI.
Signed-off-by: Shyam Saini <shyamsaini@linux.microsoft.com>
---
.../devicetree/bindings/iommu/arm,smmu-v3.yaml | 12 ++++++++++++
.../devicetree/bindings/iommu/arm,smmu.yaml | 12 ++++++++++++
2 files changed, 24 insertions(+)
diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu-v3.yaml b/Documentation/devicetree/bindings/iommu/arm,smmu-v3.yaml
index 75fcf4cb52d9f..dbad612886604 100644
--- a/Documentation/devicetree/bindings/iommu/arm,smmu-v3.yaml
+++ b/Documentation/devicetree/bindings/iommu/arm,smmu-v3.yaml
@@ -56,6 +56,17 @@ properties:
NOTE: this only applies to the SMMU itself, not masters connected
upstream of the SMMU.
+ arm,smmu-pci-msi-iova-data:
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ description: |
+ Specifies a custom PCI MSI base I/O Virtual Address and its memory range
+ size for ARM SMMU drivers. This allows setting a custom address and
+ memory size pair if the default MSI_IOVA_BASE_DEFAULT address and
+ MSI_IOVA_LENGTH_DEFAULT size are not suitable for the intended platform.
+ items:
+ - description: MSI IOVA base address
+ - description: MSI IOVA address length
+
msi-parent: true
hisilicon,broken-prefetch-cmd:
@@ -92,4 +103,5 @@ examples:
dma-coherent;
#iommu-cells = <1>;
msi-parent = <&its 0xff0000>;
+ arm,smmu-pci-msi-iova-data = <0xa0000000 0x100000>;
};
diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml
index 032fdc27127bf..d080b13765d1f 100644
--- a/Documentation/devicetree/bindings/iommu/arm,smmu.yaml
+++ b/Documentation/devicetree/bindings/iommu/arm,smmu.yaml
@@ -207,6 +207,17 @@ properties:
NOTE: this only applies to the SMMU itself, not masters connected
upstream of the SMMU.
+ arm,smmu-pci-msi-iova-data:
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+ description: |
+ Specifies a custom PCI MSI base I/O Virtual Address and its memory range
+ size for ARM SMMU drivers. This allows setting a custom address and
+ memory size pair if the default MSI_IOVA_BASE_DEFAULT address and
+ MSI_IOVA_LENGTH_DEFAULT size are not suitable for the intended platform.
+ items:
+ - description: MSI IOVA base address
+ - description: MSI IOVA address length
+
calxeda,smmu-secure-config-access:
type: boolean
description:
@@ -679,6 +690,7 @@ examples:
#iommu-cells = <1>;
/* always ignore appended 5-bit TBU number */
stream-match-mask = <0x7c00>;
+ arm,smmu-pci-msi-iova-data = <0xa0000000 0x100000>;
};
bus {
--
2.34.1
next prev parent reply other threads:[~2025-01-16 23:23 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-16 23:23 [PATCH 0/3] make MSI IOVA base address and its length configurable Shyam Saini
2025-01-16 23:23 ` [PATCH 3/3] arm-smmu: use dts passed MSI IOVA address and length Shyam Saini
2025-01-16 23:23 ` [PATCH 2/3] iommu: consolidate MSI_IOVA macro definitions Shyam Saini
2025-01-16 23:23 ` Shyam Saini [this message]
2025-01-20 14:26 ` [PATCH 0/3] make MSI IOVA base address and its length configurable Jason Gunthorpe
2025-01-21 21:49 ` Jacob Pan
[not found] ` <67901659.170a0220.20b206.f1f5SMTPIN_ADDED_BROKEN@mx.google.com>
2025-01-22 0:19 ` Jason Gunthorpe
2025-01-30 23:21 ` Shyam Saini
2025-01-31 0:36 ` Jason Gunthorpe
2025-04-03 19:34 ` Shyam Saini
2025-04-03 23:26 ` Jason Gunthorpe
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-all 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=20250116232307.1436693-4-shyamsaini@linux.microsoft.com \
--to=shyamsaini@linux.microsoft.com \
--cc=code@tyhicks.com \
--cc=devicetree@vger.kernel.org \
--cc=eahariha@linux.microsoft.com \
--cc=eric.auger@redhat.com \
--cc=iommu@lists.linux.dev \
--cc=jacob.pan@linux.microsoft.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=vijayb@linux.microsoft.com \
--cc=virtualization@lists.linux.dev \
--cc=will@kernel.org \
/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