use generic DMA mapping code in powerpc V4
Christian Zigotzky
chzigotzky at xenosoft.de
Wed Jan 16 00:56:34 AEDT 2019
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
More information about the Linuxppc-dev
mailing list