FW has to configure devices' StreamIDs so that SMMU is able to lookup context and do proper translation later on. For Armada 7040 & 8040 and publicly available FW, most of the devices are configured properly, but some like ap_sdhci0, PCIe, NIC still remain unassigned which results in SMMU faults about unmatched StreamID (assuming ARM_SMMU_DISABLE_BYPASS_BY_DEFAUL=y). Since there is dependency on custom FW let SMMU be disabled by default. People who still willing to use SMMU need to enable manually and use ARM_SMMU_DISABLE_BYPASS_BY_DEFAUL=n (or via kernel command line) with extra caution. Fixes: 83a3545d9c37 ("arm64: dts: marvell: add SMMU support") Cc: <stable@vger.kernel.org> # 5.9+ Signed-off-by: Tomasz Nowicki <tn@semihalf.com> Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
41 lines
705 B
Plaintext
41 lines
705 B
Plaintext
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
/*
|
|
* Copyright (C) 2016 Marvell Technology Group Ltd.
|
|
*
|
|
* Device Tree file for the Armada 7040 SoC, made of an AP806 Quad and
|
|
* one CP110.
|
|
*/
|
|
|
|
#include "armada-ap806-quad.dtsi"
|
|
#include "armada-70x0.dtsi"
|
|
|
|
/ {
|
|
model = "Marvell Armada 7040";
|
|
compatible = "marvell,armada7040", "marvell,armada-ap806-quad",
|
|
"marvell,armada-ap806";
|
|
};
|
|
|
|
&cp0_pcie0 {
|
|
iommu-map =
|
|
<0x0 &smmu 0x480 0x20>,
|
|
<0x100 &smmu 0x4a0 0x20>,
|
|
<0x200 &smmu 0x4c0 0x20>;
|
|
iommu-map-mask = <0x031f>;
|
|
};
|
|
|
|
&cp0_sata0 {
|
|
iommus = <&smmu 0x444>;
|
|
};
|
|
|
|
&cp0_sdhci0 {
|
|
iommus = <&smmu 0x445>;
|
|
};
|
|
|
|
&cp0_usb3_0 {
|
|
iommus = <&smmu 0x440>;
|
|
};
|
|
|
|
&cp0_usb3_1 {
|
|
iommus = <&smmu 0x441>;
|
|
};
|