This patch series allows the use of swiotlb on mpc86xx, with 85xx support soon to follow. The most notable change here is the addition of addr_needs_map to dma_ops. This is used to tell if a device can reach an address without bounce buffering. I believe that patches will be coming out soon to make dma_ops non-arch-specific, and I expect to see something similar there as well.
I've also changed sg_dma_len to be the same on both 32 and 64-bit. We now look at sg->dma_length in both cases (see patch log). The dma_window* elements in the pci_controller struct are hoisted out of an #ifdef CONFIG_PPC64 so we can use them to store off information about how much memory is mapped via the inbound pci windows. A dma-swiotlb.c is created in arch/powerpc/kernel to contain all the platform-specific iotlb code. Finally, hooks are provided to allow enabling of this feature on 86xx via Kconfig, and a 36-bit device tree for 8641hpcn is provided. Ye Olde Diffstat: arch/powerpc/Kconfig | 2 +- arch/powerpc/boot/dts/mpc8641_hpcn_36b.dts | 597 ++++++++++++++++++++++++++++ arch/powerpc/include/asm/dma-mapping.h | 11 + arch/powerpc/include/asm/pci-bridge.h | 6 +- arch/powerpc/include/asm/scatterlist.h | 6 +- arch/powerpc/include/asm/swiotlb.h | 24 ++ arch/powerpc/kernel/Makefile | 1 + arch/powerpc/kernel/dma-swiotlb.c | 161 ++++++++ arch/powerpc/kernel/dma.c | 2 +- arch/powerpc/kernel/setup_32.c | 4 + arch/powerpc/sysdev/fsl_pci.c | 4 + 11 files changed, 809 insertions(+), 9 deletions(-) Cheers, Becky _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev