lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 10 Jul 2019 15:27:34 -0700
From:   Alistair Francis <alistair23@...il.com>
To:     Robin Murphy <robin.murphy@....com>
Cc:     Alistair Francis <Alistair.Francis@....com>,
        "linux-riscv@...ts.infradead.org" <linux-riscv@...ts.infradead.org>,
        "robh@...nel.org" <robh@...nel.org>,
        "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
        Atish Patra <Atish.Patra@....com>
Subject: Re: [PATCH] Revert "of/device: Really only set bus DMA mask when appropriate"

On Thu, Feb 28, 2019 at 2:42 PM Robin Murphy <robin.murphy@....com> wrote:
>
> On 2019-02-28 10:33 pm, Alistair Francis wrote:
> > This reverts commit 6778be4e520959659b27a441c06a84c9cb009085.
> >
> > Reverting the commit fixes these error messages and an non-functioning
> > USB bus when attaching a USB to PCIe card to a RISC-V board:
> >      xhci_hcd 0000:03:00.0: Host took too long to start, waited 16000 microseconds.
> >      xhci_hcd 0000:03:00.0: startup error -19
> >      xhci_hcd 0000:03:00.0: USB bus 2 deregistered
> >      xhci_hcd 0000:03:00.0: WARNING: Host System Error
> >      xhci_hcd 0000:03:00.0: remove, state 1
> >
> > Signed-off-by: Alistair Francis <alistair.francis@....com>
> > ---
> > I'm not sure if this is the correct fix, it's possible something else is
> > wrong, but I wanted to get some feedback.
>
> Given that the bug which this revert would reintroduce cripples DMA on
> just about every 64-bit DT system, probably not. Can you clarify what
> your DT looks like, and turn on the debug output for of_dma_get_range()
> to see what it says?

Hey Robin,

We were just talking about this today and somebody pointed out that I
never replied to you. I'm sorry, I must have missed your email.

To answer the question the DT looks like this:

/ {
        soc {
                pcie: pcie@...0000000 {
                        #address-cells = <0x3>;
                        #interrupt-cells = <0x1>;
                        #size-cells = <0x2>;
                        compatible = "microsemi,ms-pf-axi-pcie-host";
                        device_type = "pci";
                        bus-range = <0x01 0x7f>;
                        interrupt-map = <0 0 0 1 &ms_pcie_intc 0 0 0 0
2 &ms_pcie_intc 1 0 0 0 3 &ms_pcie_intc 2 0 0 0 4 &ms_pcie_intc 3>;
                        interrupt-map-mask = <0 0 0 7>;
                        interrupt-parent = <&plic0>;
                        interrupts = <32>;
                        ranges = <0x3000000 0x0 0x40000000 0x0
0x40000000 0x0 0x20000000>;
                        reg = <0x20 0x30000000 0x0 0x4000000 0x20 0x0
0x0 0x100000>;
                        reg-names = "control", "apb";
                        ms_pcie_intc: interrupt-controller {
                                #address-cells = <0>;
                                #interrupt-cells = <1>;
                                interrupt-controller;
                        };
                };
        };
};

and this is what the debug output looks like:

...
[    0.071003] OF: no dma-ranges found for node(/soc/pcie@...0000000)
[    0.071049] microsemi-pcie 2030000000.pcie: device is not dma coherent
[    0.071084] microsemi-pcie 2030000000.pcie: device is not behind an iommu
[    0.071924] microsemi-pcie 2030000000.pcie: host bridge
/soc/pcie@...0000000 ranges:
[    0.071990] microsemi-pcie 2030000000.pcie: Parsing ranges property...
[    0.072007] microsemi-pcie 2030000000.pcie:   MEM
0x40000000..0x5fffffff -> 0x40000000
[    0.072160] microsemi-pcie 2030000000.pcie: PCI host bridge to bus 0000:00
[    0.072201] pci_bus 0000:00: root bus resource [bus 01-7f]
[    0.072237] pci_bus 0000:00: root bus resource [mem 0x40000000-0x5fffffff]
[    0.072272] pci_bus 0000:00: scanning bus
[    0.072307] pci 0000:00:00.0: [11aa:1556] type 01 class 0x060400
[    0.072376] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x7fffffff
64bit pref]
[    0.072520] pci 0000:00:00.0: supports D1 D2
[    0.072555] pci 0000:00:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    0.072592] pci 0000:00:00.0: PME# disabled
[    0.073250] pci_bus 0000:00: fixups for bus
[    0.073261] pci 0000:00:00.0: scanning [bus 00-00] behind bridge, pass 0
[    0.073270] pci 0000:00:00.0: bridge configuration invalid ([bus
00-00]), reconfiguring
[    0.073338] pci 0000:00:00.0: scanning [bus 00-00] behind bridge, pass 1
[    0.073423] pci_bus 0000:01: scanning bus
[    0.073764] pci 0000:01:00.0: [11f8:8561] type 01 class 0x060400
[    0.074549] pci 0000:01:00.0: enabling Extended Tags
[    0.077512] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[    0.077571] pci 0000:01:00.0: PME# disabled
[    0.077842] pci 0000:01:00.0: 16.000 Gb/s available PCIe bandwidth,
limited by 5 GT/s x4 link at 0000:00:00.0 (capable of 126.016 Gb/s
with 8 GT/s x16 link)
[    0.090347] pci_bus 0000:01: fixups for bus
[    0.090367] pci 0000:01:00.0: scanning [bus 00-00] behind bridge, pass 0
[    0.090375] pci 0000:01:00.0: bridge configuration invalid ([bus
00-00]), reconfiguring
[    0.090522] pci 0000:01:00.0: scanning [bus 00-00] behind bridge, pass 1
[    0.090992] pci_bus 0000:02: scanning bus
[    0.091134] pci 0000:02:00.0: [11f8:8561] type 01 class 0x060400
[    0.091883] pci 0000:02:00.0: enabling Extended Tags
[    0.095138] pci 0000:02:00.0: PME# supported from D0 D3hot D3cold
[    0.095198] pci 0000:02:00.0: PME# disabled
[    0.095724] pci 0000:02:01.0: [11f8:8561] type 01 class 0x060400
[    0.097486] pci 0000:02:01.0: enabling Extended Tags
[    0.099562] pci 0000:02:01.0: PME# supported from D0 D3hot D3cold
[    0.099622] pci 0000:02:01.0: PME# disabled
[    0.101335] pci 0000:02:02.0: [11f8:8561] type 01 class 0x060400
[    0.103141] pci 0000:02:02.0: enabling Extended Tags
[    0.105219] pci 0000:02:02.0: PME# supported from D0 D3hot D3cold
[    0.105278] pci 0000:02:02.0: PME# disabled
[    0.106874] pci 0000:02:03.0: [11f8:8561] type 01 class 0x060400
[    0.107626] pci 0000:02:03.0: enabling Extended Tags
[    0.110896] pci 0000:02:03.0: PME# supported from D0 D3hot D3cold
[    0.110955] pci 0000:02:03.0: PME# disabled
[    0.112929] pci_bus 0000:02: fixups for bus
[    0.112950] pci 0000:02:00.0: scanning [bus 00-00] behind bridge, pass 0
[    0.112958] pci 0000:02:00.0: bridge configuration invalid ([bus
00-00]), reconfiguring
[    0.113089] pci 0000:02:01.0: scanning [bus 00-00] behind bridge, pass 0
[    0.113097] pci 0000:02:01.0: bridge configuration invalid ([bus
00-00]), reconfiguring
[    0.113225] pci 0000:02:02.0: scanning [bus 00-00] behind bridge, pass 0
[    0.113233] pci 0000:02:02.0: bridge configuration invalid ([bus
00-00]), reconfiguring
[    0.113360] pci 0000:02:03.0: scanning [bus 00-00] behind bridge, pass 0
[    0.113368] pci 0000:02:03.0: bridge configuration invalid ([bus
00-00]), reconfiguring
[    0.113496] pci 0000:02:00.0: scanning [bus 00-00] behind bridge, pass 1
[    0.114790] pci_bus 0000:03: scanning bus
[    0.114964] pci 0000:03:00.0: [1106:3483] type 00 class 0x0c0330
[    0.115247] pci 0000:03:00.0: reg 0x10: [mem 0x00000000-0x00000fff 64bit]
[    0.117139] pci 0000:03:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    0.117198] pci 0000:03:00.0: PME# disabled
[    0.130432] pci_bus 0000:03: fixups for bus
[    0.130441] pci_bus 0000:03: bus scan returning with max=03
[    0.130451] pci_bus 0000:03: busn_res: [bus 03-7f] end is updated to 03
[    0.130551] pci 0000:02:01.0: scanning [bus 00-00] behind bridge, pass 1
[    0.131022] pci_bus 0000:04: scanning bus
[    0.131155] pci 0000:04:00.0: [1002:677b] type 00 class 0x030000
[    0.132409] pci 0000:04:00.0: reg 0x10: [mem 0x00000000-0x0fffffff
64bit pref]
[    0.132581] pci 0000:04:00.0: reg 0x18: [mem 0x00000000-0x0001ffff 64bit]
[    0.132681] pci 0000:04:00.0: reg 0x20: [io  0x0000-0x00ff]
[    0.132855] pci 0000:04:00.0: reg 0x30: [mem 0x00000000-0x0001ffff pref]
[    0.132968] pci 0000:04:00.0: enabling Extended Tags
[    0.134750] pci 0000:04:00.0: supports D1 D2
[    0.135109] pci 0000:04:00.0: 8.000 Gb/s available PCIe bandwidth,
limited by 2.5 GT/s x4 link at 0000:02:01.0 (capable of 32.000 Gb/s
with 2.5 GT/s x16 link)
[    0.135381] pci 0000:04:00.0: vgaarb: VGA device added:
decodes=io+mem,owns=none,locks=none
[    0.136308] pci 0000:04:00.1: [1002:aa98] type 00 class 0x040300
[    0.136630] pci 0000:04:00.1: reg 0x10: [mem 0x00000000-0x00003fff 64bit]
[    0.138228] pci 0000:04:00.1: enabling Extended Tags
[    0.138806] pci 0000:04:00.1: supports D1 D2
[    0.141489] pci_bus 0000:04: fixups for bus
[    0.141497] pci_bus 0000:04: bus scan returning with max=04
[    0.141507] pci_bus 0000:04: busn_res: [bus 04-7f] end is updated to 04
[    0.141606] pci 0000:02:02.0: scanning [bus 00-00] behind bridge, pass 1
[    0.142599] pci_bus 0000:05: scanning bus
[    0.143101] pci_bus 0000:05: fixups for bus
[    0.143108] pci_bus 0000:05: bus scan returning with max=05
[    0.143117] pci_bus 0000:05: busn_res: [bus 05-7f] end is updated to 05
[    0.143217] pci 0000:02:03.0: scanning [bus 00-00] behind bridge, pass 1
[    0.144234] pci_bus 0000:06: scanning bus
[    0.144383] pci 0000:06:00.0: [1b4b:9125] type 00 class 0x010601
[    0.144823] pci 0000:06:00.0: reg 0x10: [io  0x8000-0x8007]
[    0.144954] pci 0000:06:00.0: reg 0x14: [io  0x8040-0x8043]
[    0.145093] pci 0000:06:00.0: reg 0x18: [io  0x8100-0x8107]
[    0.145222] pci 0000:06:00.0: reg 0x1c: [io  0x8140-0x8143]
[    0.146140] pci 0000:06:00.0: reg 0x20: [io  0x800000-0x80000f]
[    0.146270] pci 0000:06:00.0: reg 0x24: [mem 0x00900000-0x009007ff]
[    0.146398] pci 0000:06:00.0: reg 0x30: [mem 0xd0000000-0xd000ffff pref]
[    0.148053] pci 0000:06:00.0: PME# supported from D3hot
[    0.148112] pci 0000:06:00.0: PME# disabled
[    0.150640] pci_bus 0000:06: fixups for bus
[    0.150649] pci_bus 0000:06: bus scan returning with max=06
[    0.150658] pci_bus 0000:06: busn_res: [bus 06-7f] end is updated to 06
[    0.150744] pci_bus 0000:02: bus scan returning with max=06
[    0.150753] pci_bus 0000:02: busn_res: [bus 02-7f] end is updated to 06
[    0.150844] pci_bus 0000:01: bus scan returning with max=06
[    0.150853] pci_bus 0000:01: busn_res: [bus 01-7f] end is updated to 06
[    0.150891] pci_bus 0000:00: bus scan returning with max=06
[    0.150905] pci 0000:02:00.0: bridge window [io  0x1000-0x0fff] to
[bus 03] add_size 1000
[    0.150968] pci 0000:02:00.0: bridge window [mem
0x00100000-0x000fffff 64bit pref] to [bus 03] add_size 200000
add_align 100000
[    0.151032] pci 0000:02:00.0: bridge window [mem
0x00100000-0x001fffff] to [bus 03] add_size 100000 add_align 100000
[    0.151098] pci 0000:02:01.0: bridge window [mem
0x00100000-0x001fffff] to [bus 04] add_size 100000 add_align 100000
[    0.151159] pci 0000:02:02.0: bridge window [io  0x1000-0x0fff] to
[bus 05] add_size 1000
[    0.151221] pci 0000:02:02.0: bridge window [mem
0x00100000-0x000fffff 64bit pref] to [bus 05] add_size 200000
add_align 100000
[    0.151283] pci 0000:02:02.0: bridge window [mem
0x00100000-0x000fffff] to [bus 05] add_size 200000 add_align 100000
[    0.151348] pci 0000:02:03.0: bridge window [mem
0x00100000-0x000fffff 64bit pref] to [bus 06] add_size 200000
add_align 100000
[    0.151412] pci 0000:02:03.0: bridge window [mem
0x00100000-0x001fffff] to [bus 06] add_size 100000 add_align 100000
[    0.151475] pci 0000:01:00.0: bridge window [io  0x1000-0x2fff] to
[bus 02-06] add_size 2000
[    0.151541] pci 0000:01:00.0: bridge window [mem
0x00100000-0x004fffff] to [bus 02-06] add_size 500000 add_align 100000
[    0.151603] pci 0000:00:00.0: bridge window [io  0x1000-0x2fff] to
[bus 01-06] add_size 2000
[    0.151666] pci 0000:00:00.0: bridge window [mem
0x00100000-0x004fffff] to [bus 01-06] add_size 500000 add_align 100000
[    0.151736] pci 0000:00:00.0: BAR 0: no space for [mem size
0x80000000 64bit pref]
[    0.151794] pci 0000:00:00.0: BAR 0: failed to assign [mem size
0x80000000 64bit pref]
[    0.151855] pci 0000:00:00.0: BAR 9: assigned [mem
0x40000000-0x57ffffff 64bit pref]
[    0.151913] pci 0000:00:00.0: BAR 8: assigned [mem 0x58000000-0x588fffff]
[    0.151949] pci 0000:00:00.0: BAR 7: no space for [io  size 0x4000]
[    0.151985] pci 0000:00:00.0: BAR 7: failed to assign [io  size 0x4000]
[    0.152026] pci 0000:00:00.0: BAR 0: no space for [mem size
0x80000000 64bit pref]
[    0.152083] pci 0000:00:00.0: BAR 0: failed to assign [mem size
0x80000000 64bit pref]
[    0.152142] pci 0000:00:00.0: BAR 9: assigned [mem
0x40000000-0x57ffffff 64bit pref]
[    0.152200] pci 0000:00:00.0: BAR 8: assigned [mem 0x58000000-0x583fffff]
[    0.152237] pci 0000:00:00.0: BAR 7: no space for [io  size 0x2000]
[    0.152272] pci 0000:00:00.0: BAR 7: failed to assign [io  size 0x2000]
[    0.152311] pci 0000:00:00.0: BAR 8: reassigned [mem
0x58000000-0x588fffff] (expanded by 0x500000)
[    0.152375] pci 0000:01:00.0: BAR 9: assigned [mem
0x40000000-0x57ffffff 64bit pref]
[    0.152433] pci 0000:01:00.0: BAR 8: assigned [mem 0x58000000-0x588fffff]
[    0.152469] pci 0000:01:00.0: BAR 7: no space for [io  size 0x4000]
[    0.152505] pci 0000:01:00.0: BAR 7: failed to assign [io  size 0x4000]
[    0.152543] pci 0000:01:00.0: BAR 7: no space for [io  size 0x2000]
[    0.152578] pci 0000:01:00.0: BAR 7: failed to assign [io  size 0x2000]
[    0.152638] pci 0000:02:01.0: BAR 9: assigned [mem
0x40000000-0x4fffffff 64bit pref]
[    0.152697] pci 0000:02:00.0: BAR 8: assigned [mem 0x58000000-0x581fffff]
[    0.152735] pci 0000:02:00.0: BAR 9: assigned [mem
0x50000000-0x501fffff 64bit pref]
[    0.152793] pci 0000:02:01.0: BAR 8: assigned [mem 0x58200000-0x583fffff]
[    0.152830] pci 0000:02:02.0: BAR 8: assigned [mem 0x58400000-0x585fffff]
[    0.152867] pci 0000:02:02.0: BAR 9: assigned [mem
0x50200000-0x503fffff 64bit pref]
[    0.152925] pci 0000:02:03.0: BAR 8: assigned [mem 0x58600000-0x587fffff]
[    0.152963] pci 0000:02:03.0: BAR 9: assigned [mem
0x50400000-0x505fffff 64bit pref]
[    0.153020] pci 0000:02:00.0: BAR 7: no space for [io  size 0x1000]
[    0.153056] pci 0000:02:00.0: BAR 7: failed to assign [io  size 0x1000]
[    0.153092] pci 0000:02:01.0: BAR 7: no space for [io  size 0x1000]
[    0.153128] pci 0000:02:01.0: BAR 7: failed to assign [io  size 0x1000]
[    0.153164] pci 0000:02:02.0: BAR 7: no space for [io  size 0x1000]
[    0.153199] pci 0000:02:02.0: BAR 7: failed to assign [io  size 0x1000]
[    0.153235] pci 0000:02:03.0: BAR 7: no space for [io  size 0x1000]
[    0.153270] pci 0000:02:03.0: BAR 7: failed to assign [io  size 0x1000]
[    0.153315] pci 0000:02:01.0: BAR 7: no space for [io  size 0x1000]
[    0.153350] pci 0000:02:01.0: BAR 7: failed to assign [io  size 0x1000]
[    0.153386] pci 0000:02:03.0: BAR 7: no space for [io  size 0x1000]
[    0.153422] pci 0000:02:03.0: BAR 7: failed to assign [io  size 0x1000]
[    0.153458] pci 0000:02:02.0: BAR 7: no space for [io  size 0x1000]
[    0.153493] pci 0000:02:02.0: BAR 7: failed to assign [io  size 0x1000]
[    0.153530] pci 0000:02:00.0: BAR 7: no space for [io  size 0x1000]
[    0.153565] pci 0000:02:00.0: BAR 7: failed to assign [io  size 0x1000]
[    0.153606] pci 0000:03:00.0: BAR 0: assigned [mem
0x58000000-0x58000fff 64bit]
[    0.153766] pci 0000:02:00.0: PCI bridge to [bus 03]
[    0.153852] pci 0000:02:00.0:   bridge window [mem 0x58000000-0x581fffff]
[    0.153967] pci 0000:02:00.0:   bridge window [mem
0x50000000-0x501fffff 64bit pref]
[    0.154163] pci 0000:04:00.0: BAR 0: assigned [mem
0x40000000-0x4fffffff 64bit pref]
[    0.154327] pci 0000:04:00.0: BAR 2: assigned [mem
0x58200000-0x5821ffff 64bit]
[    0.154653] pci 0000:04:00.0: BAR 6: assigned [mem
0x58220000-0x5823ffff pref]
[    0.154712] pci 0000:04:00.1: BAR 0: assigned [mem
0x58240000-0x58243fff 64bit]
[    0.154861] pci 0000:04:00.0: BAR 4: no space for [io  size 0x0100]
[    0.154896] pci 0000:04:00.0: BAR 4: failed to assign [io  size 0x0100]
[    0.154933] pci 0000:02:01.0: PCI bridge to [bus 04]
[    0.155016] pci 0000:02:01.0:   bridge window [mem 0x58200000-0x583fffff]
[    0.155131] pci 0000:02:01.0:   bridge window [mem
0x40000000-0x4fffffff 64bit pref]
[    0.155333] pci 0000:02:02.0: PCI bridge to [bus 05]
[    0.155418] pci 0000:02:02.0:   bridge window [mem 0x58400000-0x585fffff]
[    0.155532] pci 0000:02:02.0:   bridge window [mem
0x50200000-0x503fffff 64bit pref]
[    0.155726] pci 0000:06:00.0: BAR 6: assigned [mem
0x58600000-0x5860ffff pref]
[    0.155784] pci 0000:06:00.0: BAR 5: assigned [mem 0x58610000-0x586107ff]
[    0.155847] pci 0000:06:00.0: BAR 4: no space for [io  size 0x0010]
[    0.155883] pci 0000:06:00.0: BAR 4: failed to assign [io  size 0x0010]
[    0.155919] pci 0000:06:00.0: BAR 0: no space for [io  size 0x0008]
[    0.155954] pci 0000:06:00.0: BAR 0: failed to assign [io  size 0x0008]
[    0.155990] pci 0000:06:00.0: BAR 2: no space for [io  size 0x0008]
[    0.156025] pci 0000:06:00.0: BAR 2: failed to assign [io  size 0x0008]
[    0.156061] pci 0000:06:00.0: BAR 1: no space for [io  size 0x0004]
[    0.156096] pci 0000:06:00.0: BAR 1: failed to assign [io  size 0x0004]
[    0.156132] pci 0000:06:00.0: BAR 3: no space for [io  size 0x0004]
[    0.156167] pci 0000:06:00.0: BAR 3: failed to assign [io  size 0x0004]
[    0.156203] pci 0000:02:03.0: PCI bridge to [bus 06]
[    0.156284] pci 0000:02:03.0:   bridge window [mem 0x58600000-0x587fffff]
[    0.156402] pci 0000:02:03.0:   bridge window [mem
0x50400000-0x505fffff 64bit pref]
[    0.156594] pci 0000:01:00.0: PCI bridge to [bus 02-06]
[    0.156671] pci 0000:01:00.0:   bridge window [mem 0x58000000-0x588fffff]
[    0.156796] pci 0000:01:00.0:   bridge window [mem
0x40000000-0x57ffffff 64bit pref]
[    0.157000] pci 0000:00:00.0: PCI bridge to [bus 01-06]
[    0.157038] pci 0000:00:00.0:   bridge window [mem 0x58000000-0x588fffff]
[    0.157075] pci 0000:00:00.0:   bridge window [mem
0x40000000-0x57ffffff 64bit pref]
[    0.157169] OF: no dma-ranges found for node(/soc/pcie@...0000000)
[    0.157208] pcieport 0000:00:00.0: device is not dma coherent
[    0.157242] pcieport 0000:00:00.0: device is not behind an iommu
[    0.157339] pcieport 0000:00:00.0: assign IRQ: got 8
[    0.157354] pcieport 0000:00:00.0: enabling device (0000 -> 0002)
[    0.157403] pcieport 0000:00:00.0: enabling bus mastering
[    0.157866] pcieport 0000:00:00.0: AER: enabled with IRQ 9
[    0.158050] OF: no dma-ranges found for node(/soc/pcie@...0000000)
[    0.158091] pcieport 0000:01:00.0: device is not dma coherent
[    0.158125] pcieport 0000:01:00.0: device is not behind an iommu
[    0.158178] pcieport 0000:01:00.0: assign IRQ: got 0
[    0.158224] pcieport 0000:01:00.0: enabling device (0000 -> 0002)
[    0.158431] pcieport 0000:01:00.0: enabling bus mastering
[    0.160263] OF: no dma-ranges found for node(/soc/pcie@...0000000)
[    0.160304] pcieport 0000:02:00.0: device is not dma coherent
[    0.160338] pcieport 0000:02:00.0: device is not behind an iommu
[    0.160405] pcieport 0000:02:00.0: assign IRQ: got 0
[    0.160453] pcieport 0000:02:00.0: enabling device (0000 -> 0002)
[    0.160754] pcieport 0000:02:00.0: enabling bus mastering
[    0.163911] OF: no dma-ranges found for node(/soc/pcie@...0000000)
[    0.163952] pcieport 0000:02:01.0: device is not dma coherent
[    0.163986] pcieport 0000:02:01.0: device is not behind an iommu
[    0.164039] pcieport 0000:02:01.0: assign IRQ: got 0
[    0.164088] pcieport 0000:02:01.0: enabling device (0000 -> 0002)
[    0.164371] pcieport 0000:02:01.0: enabling bus mastering
[    0.166345] OF: no dma-ranges found for node(/soc/pcie@...0000000)
[    0.166386] pcieport 0000:02:02.0: device is not dma coherent
[    0.166420] pcieport 0000:02:02.0: device is not behind an iommu
[    0.166473] pcieport 0000:02:02.0: assign IRQ: got 0
[    0.166534] pcieport 0000:02:02.0: enabling device (0000 -> 0002)
[    0.167751] pcieport 0000:02:02.0: enabling bus mastering
[    0.169982] OF: no dma-ranges found for node(/soc/pcie@...0000000)
[    0.170024] pcieport 0000:02:03.0: device is not dma coherent
[    0.170058] pcieport 0000:02:03.0: device is not behind an iommu
[    0.170113] pcieport 0000:02:03.0: assign IRQ: got 0
[    0.170161] pcieport 0000:02:03.0: enabling device (0000 -> 0002)
[    0.170446] pcieport 0000:02:03.0: enabling bus mastering
[    0.173626] pci 0000:03:00.0: enabling device (0000 -> 0002)

...

[    4.342236] OF: no dma-ranges found for node(/soc/pcie@...0000000)
[    4.348329] xhci_hcd 0000:03:00.0: device is not dma coherent
[    4.354058] xhci_hcd 0000:03:00.0: device is not behind an iommu
[    4.360090] xhci_hcd 0000:03:00.0: assign IRQ: got 0
[    4.360227] xhci_hcd 0000:03:00.0: enabling bus mastering
[    4.360248] xhci_hcd 0000:03:00.0: xHCI Host Controller
[    4.365281] xhci_hcd 0000:03:00.0: new USB bus registered, assigned
bus number 1
[    4.373282] xhci_hcd 0000:03:00.0: hcc params 0x002841eb hci
version 0x100 quirks 0x0000000000000090
[    4.381811] xhci_hcd 0000:03:00.0: enabling Mem-Wr-Inval
[    4.382614] hub 1-0:1.0: USB hub found
[    4.385637] hub 1-0:1.0: 1 port detected
[    4.393190] xhci_hcd 0000:03:00.0: xHCI Host Controller
[    4.398137] xhci_hcd 0000:03:00.0: new USB bus registered, assigned
bus number 2
[    4.405507] xhci_hcd 0000:03:00.0: Host supports USB 3.0 SuperSpeed
[    4.411777] xhci_hcd 0000:03:00.0: WARNING: Host System Error
[    4.417527] usb usb2: We don't know the algorithms for LPM for this
host, disabling LPM.
[    4.425983] hub 2-0:1.0: USB hub found
[    4.429311] hub 2-0:1.0: 4 ports detected
...

Alistair



>
> Robin.
>
> > drivers/of/device.c | 4 +---
> >   1 file changed, 1 insertion(+), 3 deletions(-)
> >
> > diff --git a/drivers/of/device.c b/drivers/of/device.c
> > index 3717f2a20d0d..8299f8055da7 100644
> > --- a/drivers/of/device.c
> > +++ b/drivers/of/device.c
> > @@ -149,11 +149,9 @@ int of_dma_configure(struct device *dev, struct device_node *np, bool force_dma)
> >        * set by the driver.
> >        */
> >       mask = DMA_BIT_MASK(ilog2(dma_addr + size - 1) + 1);
> > +     dev->bus_dma_mask = mask;
> >       dev->coherent_dma_mask &= mask;
> >       *dev->dma_mask &= mask;
> > -     /* ...but only set bus mask if we found valid dma-ranges earlier */
> > -     if (!ret)
> > -             dev->bus_dma_mask = mask;
> >
> >       coherent = of_dma_is_coherent(np);
> >       dev_dbg(dev, "device is%sdma coherent\n",
> >

Powered by blists - more mailing lists