| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- From a6a86473350c7dcbae61afa1e926941d76ca17ed Mon Sep 17 00:00:00 2001
- From: Laurentiu Tudor <[email protected]>
- 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 <[email protected]>
- Signed-off-by: Laurentiu Tudor <[email protected]>
- ---
- 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
- @@ -727,43 +727,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
- @@ -625,40 +625,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 {
|