Re: use generic DMA mapping code in powerpc V4

From: Christian Zigotzky
Date: Tue Jan 15 2019 - 08:56:42 EST


On 15 January 2019 at 2:35PM, Christoph Hellwig wrote:
On Tue, Jan 15, 2019 at 11:55:25AM +0100, Christian Zigotzky wrote:
Next step: 21074ef03c0816ae158721a78cabe9035938dddd (powerpc/dma: use the
generic direct mapping bypass)

git clone git://git.infradead.org/users/hch/misc.git -b powerpc-dma.6 a

git checkout 21074ef03c0816ae158721a78cabe9035938dddd

I was able to compile the kernel for the AmigaOne X1000 (Nemo board with PA
Semi PA6T-1682M SoC). It boots but the PA Semi onboard ethernet doesn't
work.
Thanks. But we are exactly missing the steps that are relevant. I've
pushed a fixed up powerpc-dma.6 tree, which will only change starting from
the first commit that didn't link.

The first commit that changed from the old one is this one:

http://git.infradead.org/users/hch/misc.git/commitdiff/257002094bc5935dd63207a380d9698ab81f0775

which was that one that your compile failed on first.

Thanks again for all your work!

Thank you! I tried the commit 240d7ecd7f6fa62e074e8a835e620047954f0b28 (powerpc/dma: use the dma-direct allocator for coherent platforms) again.

git clone git://git.infradead.org/users/hch/misc.git -b powerpc-dma.6 a

git checkout 240d7ecd7f6fa62e074e8a835e620047954f0b28

I modified the 'dma.c' patch because of the undefined references to '__dma_nommu_free_coherent' and '__dma_nommu_alloc_coherent':

---

@@ -163,8 +99,13 @@ static inline void dma_nommu_sync_single(struct device *dev,
Â#endif

Âconst struct dma_map_ops dma_nommu_ops = {
+ÂÂÂÂÂÂ .allocÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ = dma_direct_alloc,
+ÂÂÂÂÂÂ .freeÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ = dma_direct_free,
ÂÂÂÂÂÂÂ .map_sgÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ = dma_nommu_map_sg,
ÂÂÂÂÂÂÂ .unmap_sgÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ = dma_nommu_unmap_sg,
ÂÂÂÂÂÂÂ .dma_supportedÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ = dma_direct_supported,

---

The X1000 boots and the PASEMI onboard ethernet works! X5000 (P5020 board): U-Boot loads the kernel and the dtb file. Then the kernel starts but it doesn't find any hard disks (partitions).

-- Christian