Hi Marek, On Sat, Sep 14, 2019 at 6:45 PM Marek Vasut <marek.vasut@xxxxxxxxx> wrote: > On 9/14/19 6:33 PM, Geert Uytterhoeven wrote: > > On Sat, Sep 14, 2019 at 6:06 PM Marek Vasut wrote: > >> On 9/9/19 1:18 PM, Geert Uytterhoeven wrote: > >>> On Sat, Sep 7, 2019 at 6:16 PM Marek Vasut wrote: > >>>> Add dma-ranges property into /soc node to describe the DMA capabilities > >>>> of the bus. This is currently needed to translate PCI DMA ranges, which > >>>> are limited to 32bit addresses. > >>> > >>>> --- a/arch/arm64/boot/dts/renesas/r8a7795.dtsi > >>>> +++ b/arch/arm64/boot/dts/renesas/r8a7795.dtsi > >>>> @@ -330,6 +330,7 @@ > >>>> #address-cells = <2>; > >>>> #size-cells = <2>; > >>>> ranges; > >>>> + dma-ranges = <0 0x40000000 0 0x40000000 0 0xc0000000>; > >>> > >>> Shouldn't the length be 0x80000000 (for all SoCs)? > >> > >> Or should that match the amount of DRAM below 32bit boundary ? > > > > Which is 0x80000000, according to the memory area section for the > > various R-Car Gen3 SoCs. > > What if you have a system with 1 GiB of DRAM ? Should be covered by 0x80000000, no? Linux will never ask a PCI device to do bus mastering to an area not backed by populated memory, will it? However, you ask a good question: does this property specify the limits of the bridge, or the limits of the bridge combined with the actual populated or available memory? In the former case, offset and length should be "0 0x0" resp. "1 0x00000000". In the latter case, it depends on the actual board (SiP is board, too) configuration. Which means U-Boot may need to update this ("AND" mask the value we specify here?), based on what it writes into the memory node? > >>> Or should we allow DMA to internal System RAM, too? > >> > >> I think we should include SRAM, yes. > > > > So that needs a separate range. > > Let's see how the discussion pans out about the placement of the > dma-ranges in the first place. Yep. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds