mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-27 09:12:39 +00:00
194 lines
6.0 KiB
Diff
194 lines
6.0 KiB
Diff
|
From a6a86473350c7dcbae61afa1e926941d76ca17ed Mon Sep 17 00:00:00 2001
|
||
|
From: Laurentiu Tudor <laurentiu.tudor@nxp.com>
|
||
|
Date: Thu, 20 Sep 2018 13:46:54 +0300
|
||
|
Subject: [PATCH] arm64: dts: ls104x: use a pseudo-bus to constrain usb dma
|
||
|
size
|
||
|
|
||
|
Wrap the usb controllers in an intermediate simple-bus and use it to
|
||
|
constrain the dma address size of these usb controllers to the 40 bits
|
||
|
that they generate toward the interconnect.
|
||
|
This is required because the SoC uses 48 bits address sizes and this
|
||
|
mismatch would lead to smmu context faults because the usb generates
|
||
|
40-bit addresses while the smmu page tables are populated with 48-bit
|
||
|
wide addresses.
|
||
|
|
||
|
Suggested-by: Robin Murphy <robin.murphy@arm.com>
|
||
|
Signed-off-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
|
||
|
---
|
||
|
arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi | 82 ++++++++++++++------------
|
||
|
arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 76 +++++++++++++-----------
|
||
|
2 files changed, 87 insertions(+), 71 deletions(-)
|
||
|
|
||
|
--- a/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
|
||
|
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1043a.dtsi
|
||
|
@@ -726,43 +726,51 @@
|
||
|
<&clockgen 4 0>;
|
||
|
};
|
||
|
|
||
|
- usb0: usb3@2f00000 {
|
||
|
- compatible = "snps,dwc3";
|
||
|
- reg = <0x0 0x2f00000 0x0 0x10000>;
|
||
|
- interrupts = <0 60 0x4>;
|
||
|
- dr_mode = "host";
|
||
|
- snps,quirk-frame-length-adjustment = <0x20>;
|
||
|
- snps,dis_rxdet_inp3_quirk;
|
||
|
- usb3-lpm-capable;
|
||
|
- snps,dis-u1u2-when-u3-quirk;
|
||
|
- snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
|
||
|
- configure-gfladj;
|
||
|
- };
|
||
|
+ usb_aux_bus: usb_aux_bus {
|
||
|
+ #address-cells = <2>;
|
||
|
+ #size-cells = <2>;
|
||
|
+ compatible = "simple-bus";
|
||
|
+ ranges;
|
||
|
+ dma-ranges = <0x0 0x0 0x0 0x0 0x100 0x00000000>;
|
||
|
|
||
|
- usb1: usb3@3000000 {
|
||
|
- compatible = "snps,dwc3";
|
||
|
- reg = <0x0 0x3000000 0x0 0x10000>;
|
||
|
- interrupts = <0 61 0x4>;
|
||
|
- dr_mode = "host";
|
||
|
- snps,quirk-frame-length-adjustment = <0x20>;
|
||
|
- snps,dis_rxdet_inp3_quirk;
|
||
|
- usb3-lpm-capable;
|
||
|
- snps,dis-u1u2-when-u3-quirk;
|
||
|
- snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
|
||
|
- configure-gfladj;
|
||
|
- };
|
||
|
+ usb0: usb3@2f00000 {
|
||
|
+ compatible = "snps,dwc3";
|
||
|
+ reg = <0x0 0x2f00000 0x0 0x10000>;
|
||
|
+ interrupts = <0 60 0x4>;
|
||
|
+ dr_mode = "host";
|
||
|
+ snps,quirk-frame-length-adjustment = <0x20>;
|
||
|
+ snps,dis_rxdet_inp3_quirk;
|
||
|
+ usb3-lpm-capable;
|
||
|
+ snps,dis-u1u2-when-u3-quirk;
|
||
|
+ snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
|
||
|
+ configure-gfladj;
|
||
|
+ };
|
||
|
+
|
||
|
+ usb1: usb3@3000000 {
|
||
|
+ compatible = "snps,dwc3";
|
||
|
+ reg = <0x0 0x3000000 0x0 0x10000>;
|
||
|
+ interrupts = <0 61 0x4>;
|
||
|
+ dr_mode = "host";
|
||
|
+ snps,quirk-frame-length-adjustment = <0x20>;
|
||
|
+ snps,dis_rxdet_inp3_quirk;
|
||
|
+ usb3-lpm-capable;
|
||
|
+ snps,dis-u1u2-when-u3-quirk;
|
||
|
+ snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
|
||
|
+ configure-gfladj;
|
||
|
+ };
|
||
|
|
||
|
- usb2: usb3@3100000 {
|
||
|
- compatible = "snps,dwc3";
|
||
|
- reg = <0x0 0x3100000 0x0 0x10000>;
|
||
|
- interrupts = <0 63 0x4>;
|
||
|
- dr_mode = "host";
|
||
|
- snps,quirk-frame-length-adjustment = <0x20>;
|
||
|
- snps,dis_rxdet_inp3_quirk;
|
||
|
- usb3-lpm-capable;
|
||
|
- snps,dis-u1u2-when-u3-quirk;
|
||
|
- snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
|
||
|
- configure-gfladj;
|
||
|
+ usb2: usb3@3100000 {
|
||
|
+ compatible = "snps,dwc3";
|
||
|
+ reg = <0x0 0x3100000 0x0 0x10000>;
|
||
|
+ interrupts = <0 63 0x4>;
|
||
|
+ dr_mode = "host";
|
||
|
+ snps,quirk-frame-length-adjustment = <0x20>;
|
||
|
+ snps,dis_rxdet_inp3_quirk;
|
||
|
+ usb3-lpm-capable;
|
||
|
+ snps,dis-u1u2-when-u3-quirk;
|
||
|
+ snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
|
||
|
+ configure-gfladj;
|
||
|
+ };
|
||
|
};
|
||
|
|
||
|
sata: sata@3200000 {
|
||
|
--- a/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
|
||
|
+++ b/arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi
|
||
|
@@ -624,40 +624,48 @@
|
||
|
<&clockgen 4 1>;
|
||
|
};
|
||
|
|
||
|
- usb0: usb@2f00000 {
|
||
|
- compatible = "snps,dwc3";
|
||
|
- reg = <0x0 0x2f00000 0x0 0x10000>;
|
||
|
- interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
|
||
|
- dr_mode = "host";
|
||
|
- snps,quirk-frame-length-adjustment = <0x20>;
|
||
|
- snps,dis_rxdet_inp3_quirk;
|
||
|
- snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
|
||
|
- usb3-lpm-capable;
|
||
|
- snps,dis-u1u2-when-u3-quirk;
|
||
|
- };
|
||
|
+ usb_aux_bus: usb_aux_bus {
|
||
|
+ #address-cells = <2>;
|
||
|
+ #size-cells = <2>;
|
||
|
+ compatible = "simple-bus";
|
||
|
+ ranges;
|
||
|
+ dma-ranges = <0x0 0x0 0x0 0x0 0x100 0x00000000>;
|
||
|
|
||
|
- usb1: usb@3000000 {
|
||
|
- compatible = "snps,dwc3";
|
||
|
- reg = <0x0 0x3000000 0x0 0x10000>;
|
||
|
- interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
|
||
|
- dr_mode = "host";
|
||
|
- snps,quirk-frame-length-adjustment = <0x20>;
|
||
|
- snps,dis_rxdet_inp3_quirk;
|
||
|
- snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
|
||
|
- usb3-lpm-capable;
|
||
|
- snps,dis-u1u2-when-u3-quirk;
|
||
|
- };
|
||
|
+ usb0: usb@2f00000 {
|
||
|
+ compatible = "snps,dwc3";
|
||
|
+ reg = <0x0 0x2f00000 0x0 0x10000>;
|
||
|
+ interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
|
||
|
+ dr_mode = "host";
|
||
|
+ snps,quirk-frame-length-adjustment = <0x20>;
|
||
|
+ snps,dis_rxdet_inp3_quirk;
|
||
|
+ snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
|
||
|
+ usb3-lpm-capable;
|
||
|
+ snps,dis-u1u2-when-u3-quirk;
|
||
|
+ };
|
||
|
+
|
||
|
+ usb1: usb@3000000 {
|
||
|
+ compatible = "snps,dwc3";
|
||
|
+ reg = <0x0 0x3000000 0x0 0x10000>;
|
||
|
+ interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
|
||
|
+ dr_mode = "host";
|
||
|
+ snps,quirk-frame-length-adjustment = <0x20>;
|
||
|
+ snps,dis_rxdet_inp3_quirk;
|
||
|
+ snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
|
||
|
+ usb3-lpm-capable;
|
||
|
+ snps,dis-u1u2-when-u3-quirk;
|
||
|
+ };
|
||
|
|
||
|
- usb2: usb@3100000 {
|
||
|
- compatible = "snps,dwc3";
|
||
|
- reg = <0x0 0x3100000 0x0 0x10000>;
|
||
|
- interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
|
||
|
- dr_mode = "host";
|
||
|
- snps,quirk-frame-length-adjustment = <0x20>;
|
||
|
- snps,dis_rxdet_inp3_quirk;
|
||
|
- snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
|
||
|
- usb3-lpm-capable;
|
||
|
- snps,dis-u1u2-when-u3-quirk;
|
||
|
+ usb2: usb@3100000 {
|
||
|
+ compatible = "snps,dwc3";
|
||
|
+ reg = <0x0 0x3100000 0x0 0x10000>;
|
||
|
+ interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
|
||
|
+ dr_mode = "host";
|
||
|
+ snps,quirk-frame-length-adjustment = <0x20>;
|
||
|
+ snps,dis_rxdet_inp3_quirk;
|
||
|
+ snps,incr-burst-type-adjustment = <1>, <4>, <8>, <16>;
|
||
|
+ usb3-lpm-capable;
|
||
|
+ snps,dis-u1u2-when-u3-quirk;
|
||
|
+ };
|
||
|
};
|
||
|
|
||
|
sata: sata@3200000 {
|