diff mbox

[U-Boot] pci/layerscape: Setup mmu-masters property for the PCIe

Message ID 1438108427-6161-1-git-send-email-Varun.Sethi@freescale.com
State Accepted
Delegated to: York Sun
Headers show

Commit Message

Varun Sethi July 28, 2015, 6:33 p.m. UTC
Setup mmu-masters property for the PCIe controllers. This would be
used by the Linux SMMU driver, while setting up stream ID table mappings
for the PCIe devices.

Signed-off-by: Varun Sethi <Varun.Sethi@freescale.com>
---
 drivers/pci/pcie_layerscape.c |    9 +++++++++
 1 file changed, 9 insertions(+)

Comments

York Sun Sept. 2, 2015, 2:54 a.m. UTC | #1
On 07/28/2015 01:33 PM, Varun Sethi wrote:
> Setup mmu-masters property for the PCIe controllers. This would be
> used by the Linux SMMU driver, while setting up stream ID table mappings
> for the PCIe devices.
> 
> Signed-off-by: Varun Sethi <Varun.Sethi@freescale.com>
> ---

Applied to fsl-qoriq master branch. Awaiting upstream.

York
diff mbox

Patch

diff --git a/drivers/pci/pcie_layerscape.c b/drivers/pci/pcie_layerscape.c
index 95cfe8c..2f24a6a 100644
--- a/drivers/pci/pcie_layerscape.c
+++ b/drivers/pci/pcie_layerscape.c
@@ -689,6 +689,7 @@  void fdt_fixup_smmu_pcie(void *blob)
 {
 	int count;
 	u32 stream_ids[MAX_STREAM_IDS];
+	u32 ctlr_streamid = 0x300;
 
 	#ifdef CONFIG_PCIE1
 	/* PEX1 stream ID fixup */
@@ -696,6 +697,8 @@  void fdt_fixup_smmu_pcie(void *blob)
 	alloc_stream_ids(FSL_PEX1_STREAM_ID_START, count, stream_ids,
 			 MAX_STREAM_IDS);
 	pcie_set_available_streamids(blob, "/pcie@3400000", stream_ids, count);
+	append_mmu_masters(blob, "/iommu@5000000", "/pcie@3400000",
+			   &ctlr_streamid, 1);
 	#endif
 
 	#ifdef CONFIG_PCIE2
@@ -704,6 +707,8 @@  void fdt_fixup_smmu_pcie(void *blob)
 	alloc_stream_ids(FSL_PEX2_STREAM_ID_START, count, stream_ids,
 			 MAX_STREAM_IDS);
 	pcie_set_available_streamids(blob, "/pcie@3500000", stream_ids, count);
+	append_mmu_masters(blob, "/iommu@5000000", "/pcie@3500000",
+			   &ctlr_streamid, 1);
 	#endif
 
 	#ifdef CONFIG_PCIE3
@@ -712,6 +717,8 @@  void fdt_fixup_smmu_pcie(void *blob)
 	alloc_stream_ids(FSL_PEX3_STREAM_ID_START, count, stream_ids,
 			 MAX_STREAM_IDS);
 	pcie_set_available_streamids(blob, "/pcie@3600000", stream_ids, count);
+	append_mmu_masters(blob, "/iommu@5000000", "/pcie@3600000",
+			   &ctlr_streamid, 1);
 	#endif
 
 	#ifdef CONFIG_PCIE4
@@ -720,6 +727,8 @@  void fdt_fixup_smmu_pcie(void *blob)
 	alloc_stream_ids(FSL_PEX4_STREAM_ID_START, count, stream_ids,
 			 MAX_STREAM_IDS);
 	pcie_set_available_streamids(blob, "/pcie@3700000", stream_ids, count);
+	append_mmu_masters(blob, "/iommu@5000000", "/pcie@3700000",
+			   &ctlr_streamid, 1);
 	#endif
 }
 #endif