[PATCH v2 00/11] fix swiotlb-xen for RPi4

Stefano Stabellini
2020-06-03T22:22:42Z

Hi all,

This series is a collection of fixes to get Linux running on the RPi4 as
dom0.

Conceptually there are only two significant changes:

- make sure not to call virt_to_page on vmalloc virt addresses (patch
#1)
- use phys_to_dma and dma_to_phys to translate phys to/from dma
addresses (all other patches)

In particular in regards to the second part, the RPi4 is the first
board where Xen can run that has the property that dma addresses are
different from physical addresses, and swiotlb-xen was written with the
assumption that phys addr == dma addr.

This series adds the phys_to_dma and dma_to_phys calls to make it work.

Cheers,

Stefano

The following changes since commit b85051e755b0e9d6dd8f17ef1da083851b83287d:

Merge tag 'fixes-for-5.7-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux (2020-05-20 13:23:55 -0700)

are available in the Git repository at:

https://git.kernel.org/pub/scm/linux/kernel/git/sstabellini/xen.git fix-rpi4-v2

for you to fetch changes up to 49783ba67f75da3490d2c01ed9b445d8a89bbb0d:

xen/arm: call dma_to_phys on the dma_addr_t parameter of dma_cache_maint (2020-06-03 15:05:53 -0700)

----------------------------------------------------------------
Boris Ostrovsky (1):
swiotlb-xen: use vmalloc_to_page on vmalloc virt addresses

Stefano Stabellini (10):
swiotlb-xen: remove start_dma_addr
swiotlb-xen: add struct device* parameter to xen_phys_to_bus
swiotlb-xen: add struct device* parameter to xen_bus_to_phys
swiotlb-xen: add struct device* parameter to xen_dma_sync_for_cpu
swiotlb-xen: add struct device* parameter to xen_dma_sync_for_device
swiotlb-xen: add struct device* parameter to is_xen_swiotlb_buffer
swiotlb-xen: introduce phys_to_dma/dma_to_phys translations
swiotlb-xen: rename xen_phys_to_bus to xen_phys_to_dma and xen_bus_to_phys to xen_dma_to_phys
xen/arm: introduce phys/dma translations in xen_dma_sync_for_*
xen/arm: call dma_to_phys on the dma_addr_t parameter of dma_cache_maint

arch/arm/xen/mm.c | 32 +++++++++++++++++++-------------
drivers/xen/swiotlb-xen.c | 72 +++++++++++++++++++++++++++++++++++++-----------------------------------
include/xen/swiotlb-xen.h | 10 ++++++----
3 files changed, 62 insertions(+), 52 deletions(-)