Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1556690

Re: [PATCH v2] arm64: do not set dma masks that device connection can't handle

From Arnd Bergmann <arnd@arndb.de>
Newsgroups linux.kernel
Subject Re: [PATCH v2] arm64: do not set dma masks that device connection can't handle
Date 2017-01-11 17:30 +0100
Message-ID <sYtWF-In-19@gated-at.bofh.it> (permalink)
References <sXCIG-19v-5@gated-at.bofh.it> <sY5rj-2pg-9@gated-at.bofh.it> <sYqm6-6WF-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Wednesday, January 11, 2017 3:37:22 PM CET Nikita Yushchenko wrote:
> > I actually have a third variation of this problem involving a PCI root
> > complex which *could* drive full-width (40-bit) addresses, but won't,
> > due to the way its PCI<->AXI interface is programmed. That would require
> > even more complicated dma-ranges handling to describe the windows of
> > valid physical addresses which it *will* pass, so I'm not pressing the
> > issue - let's just get the basic DMA mask case fixed first.
> 
> R-Car + NVMe is actually not "basic case".
> 
> It has PCI<->AXI interface involved.
> PCI addresses are 64-bit and controller does handle 64-bit addresses
> there. Mapping between PCI addresses and AXI addresses is defined. But
> AXI is 32-bit.
> 
> SoC has iommu that probably could be used between PCIe module and RAM.
> Although AFAIK nobody made that working yet.
> 
> Board I work with has 4G of RAM, in 4 banks, located at different parts
> of wide address space, and only one of them is below 4G. But if iommu is
> capable of translating addresses such that 4 gigabyte banks map to first
> 4 gigabytes of address space, then all memory will become available for
> DMA from PCIe device.

You can in theory handle this by defining your own platform specific
dma_map_ops, as we used to do in the old days. Unfortunately, the modern
way of using the generic IOVA allocation can't handle really it, so it's
unclear if the work that would be necessary to support it (and the long
term maintenance cost) outweigh the benefits.

The more likely option here is to try harder to get the IOMMU working
(or show that it's impossible but make sure the next chip gets it right).

	Arnd

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v2] arm64: do not set dma masks that device connection can't handle Nikita Yushchenko <nikita.yoush@cogentembedded.com> - 2017-01-09 08:40 +0100
  Re: [PATCH v2] arm64: do not set dma masks that device connection  can't handle Will Deacon <will.deacon@arm.com> - 2017-01-10 13:00 +0100
    Re: [PATCH v2] arm64: do not set dma masks that device connection  can't handle Nikita Yushchenko <nikita.yoush@cogentembedded.com> - 2017-01-10 13:50 +0100
      Re: [PATCH v2] arm64: do not set dma masks that device connection can't handle Arnd Bergmann <arnd@arndb.de> - 2017-01-10 14:20 +0100
      Re: [PATCH v2] arm64: do not set dma masks that device connection  can't handle Robin Murphy <robin.murphy@arm.com> - 2017-01-10 14:30 +0100
        Re: [PATCH v2] arm64: do not set dma masks that device connection  can't handle Nikita Yushchenko <nikita.yoush@cogentembedded.com> - 2017-01-10 15:10 +0100
        Re: [PATCH v2] arm64: do not set dma masks that device connection  can't handle Robin Murphy <robin.murphy@arm.com> - 2017-01-10 15:20 +0100
          Re: [PATCH v2] arm64: do not set dma masks that device connection can't handle Arnd Bergmann <arnd@arndb.de> - 2017-01-10 16:10 +0100
          Re: [PATCH v2] arm64: do not set dma masks that device connection  can't handle Nikita Yushchenko <nikita.yoush@cogentembedded.com> - 2017-01-11 13:40 +0100
            Re: [PATCH v2] arm64: do not set dma masks that device connection can't handle Arnd Bergmann <arnd@arndb.de> - 2017-01-11 17:30 +0100
            Re: [PATCH v2] arm64: do not set dma masks that device connection  can't handle Robin Murphy <robin.murphy@arm.com> - 2017-01-11 19:30 +0100
        Re: [PATCH v2] arm64: do not set dma masks that device connection         can't handle Christoph Hellwig <hch@lst.de> - 2017-01-10 16:00 +0100
        Re: [PATCH v2] arm64: do not set dma masks that device connection         can't handle Christoph Hellwig <hch@lst.de> - 2017-01-10 16:00 +0100
        Re: [PATCH v2] arm64: do not set dma masks that device connection can't handle Arnd Bergmann <arnd@arndb.de> - 2017-01-10 16:10 +0100
      Re: [PATCH v2] arm64: do not set dma masks that device connection         can't handle Christoph Hellwig <hch@lst.de> - 2017-01-10 16:00 +0100

csiph-web