mbox

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

Message ID alpine.DEB.2.21.2006031506590.6774@sstabellini-ThinkPad-T480s (mailing list archive)
State New, archived
Headers show

Pull-request

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

Message

Stefano Stabellini June 3, 2020, 10:22 p.m. UTC
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(-)

Comments

Boris Ostrovsky June 4, 2020, 6:32 p.m. UTC | #1
On 6/3/20 6:22 PM, Stefano Stabellini wrote:
> 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


(+ Julien)


Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>