All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/8] iommu/arm-smmu: Split pagetable support for Adreno GPUs
@ 2019-11-22 23:31 ` Jordan Crouse
  0 siblings, 0 replies; 8+ messages in thread
From: Jordan Crouse @ 2019-11-22 23:31 UTC (permalink / raw)
  To: iommu
  Cc: Mark Rutland, Jeffrey Hugo, David Airlie, dri-devel,
	Bjorn Andersson, AngeloGioacchino Del Regno, Sam Ravnborg,
	Wen Yang, Jonathan Marek, will, Joerg Roedel, Mamta Shukla,
	Ben Dooks, linux-arm-kernel, Brian Masney, devicetree,
	linux-arm-msm, Sharat Masetty, Jeykumar Sankaran, Alexios Zavras,
	Rob Herring, Andy Gross, Thomas Gleixner, freedreno, Sean Paul,
	Allison Randal, Bruce Wang, Greg Kroah-Hartman, Douglas Anderson,
	linux-kernel, Rob Clark, Daniel Vetter, Drew Davenport,
	robin.murphy, Georgi Djakov


Another refresh to support split pagetables for Adreno GPUs as part of an
incremental process to enable per-context pagetables.

In order to support per-context pagetables the GPU needs to enable split tables
so that we can store global buffers in the TTBR1 space leaving the GPU free to
program the TTBR0 register with the address of a context specific pagetable.

This patchset adds split pagetable support for devices identified with the
compatible string qcom,adreno-smmu-v2. If the compatible string is enabled and
DOMAIN_ATTR_SPLIT_TABLES is non zero at attach time, the implementation will
set up the TTBR0 and TTBR1 spaces with identical configurations and program
the domain pagetable into the TTBR1 register. The TTBR0 register will be
unused.

The driver can determine if split pagetables were programmed by querying
DOMAIN_ATTR_SPLIT_TABLES after attaching. The domain geometry will also be
updated to reflect the virtual address space for the TTBR1 range.

These patches are on based on top of linux-next-20191120 with [1], [2], and [3]
from Robin on the iommu list.

The first four patches add the device tree bindings and implementation
specific support for arm-smmu and the rest of the patches add the drm/msm
implementation followed by the device tree update for sdm845.

[1] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039718.html
[2] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039719.html
[3] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039720.html


Jordan Crouse (8):
  dt-bindings: arm-smmu: Add Adreno GPU variant
  iommu: Add DOMAIN_ATTR_SPLIT_TABLES
  iommu/arm-smmu: Pass io_pgtable_cfg to impl specific init_context
  iommu/arm-smmu: Add split pagetables for Adreno IOMMU implementations
  drm/msm: Attach the IOMMU device during initialization
  drm/msm: Refactor address space initialization
  drm/msm/a6xx: Support split pagetables
  arm64: dts: qcom: sdm845:  Update Adreno GPU SMMU compatible string

 .../devicetree/bindings/iommu/arm,smmu.yaml        |  6 ++
 arch/arm64/boot/dts/qcom/sdm845.dtsi               |  2 +-
 drivers/gpu/drm/msm/adreno/a2xx_gpu.c              | 16 ++++
 drivers/gpu/drm/msm/adreno/a3xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a4xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a5xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c              | 45 ++++++++++
 drivers/gpu/drm/msm/adreno/adreno_gpu.c            | 23 ++++--
 drivers/gpu/drm/msm/adreno/adreno_gpu.h            |  8 ++
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c            | 18 ++--
 drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c           | 18 ++--
 drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c           |  4 -
 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c           | 18 ++--
 drivers/gpu/drm/msm/msm_drv.h                      |  8 +-
 drivers/gpu/drm/msm/msm_gem_vma.c                  | 37 ++-------
 drivers/gpu/drm/msm/msm_gpu.c                      | 49 +----------
 drivers/gpu/drm/msm/msm_gpu.h                      |  4 +-
 drivers/gpu/drm/msm/msm_gpummu.c                   |  6 --
 drivers/gpu/drm/msm/msm_iommu.c                    | 18 ++--
 drivers/gpu/drm/msm/msm_mmu.h                      |  1 -
 drivers/iommu/arm-smmu-impl.c                      |  6 +-
 drivers/iommu/arm-smmu-qcom.c                      | 96 ++++++++++++++++++++++
 drivers/iommu/arm-smmu.c                           | 52 +++++++++---
 drivers/iommu/arm-smmu.h                           | 14 +++-
 include/linux/iommu.h                              |  1 +
 25 files changed, 295 insertions(+), 158 deletions(-)

-- 
2.7.4


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 0/8] iommu/arm-smmu: Split pagetable support for Adreno GPUs
@ 2019-11-22 23:31 ` Jordan Crouse
  0 siblings, 0 replies; 8+ messages in thread
From: Jordan Crouse @ 2019-11-22 23:31 UTC (permalink / raw)
  To: iommu
  Cc: Mark Rutland, Jeffrey Hugo, David Airlie, dri-devel,
	Bjorn Andersson, AngeloGioacchino Del Regno, Sam Ravnborg,
	Wen Yang, Jonathan Marek, will, Joerg Roedel, Mamta Shukla,
	Ben Dooks, linux-arm-kernel, Brian Masney, devicetree,
	linux-arm-msm, Sharat Masetty, Jeykumar Sankaran, Alexios Zavras,
	Rob Herring, Andy Gross, Thomas Gleixner, freedreno


Another refresh to support split pagetables for Adreno GPUs as part of an
incremental process to enable per-context pagetables.

In order to support per-context pagetables the GPU needs to enable split tables
so that we can store global buffers in the TTBR1 space leaving the GPU free to
program the TTBR0 register with the address of a context specific pagetable.

This patchset adds split pagetable support for devices identified with the
compatible string qcom,adreno-smmu-v2. If the compatible string is enabled and
DOMAIN_ATTR_SPLIT_TABLES is non zero at attach time, the implementation will
set up the TTBR0 and TTBR1 spaces with identical configurations and program
the domain pagetable into the TTBR1 register. The TTBR0 register will be
unused.

The driver can determine if split pagetables were programmed by querying
DOMAIN_ATTR_SPLIT_TABLES after attaching. The domain geometry will also be
updated to reflect the virtual address space for the TTBR1 range.

These patches are on based on top of linux-next-20191120 with [1], [2], and [3]
from Robin on the iommu list.

The first four patches add the device tree bindings and implementation
specific support for arm-smmu and the rest of the patches add the drm/msm
implementation followed by the device tree update for sdm845.

[1] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039718.html
[2] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039719.html
[3] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039720.html


Jordan Crouse (8):
  dt-bindings: arm-smmu: Add Adreno GPU variant
  iommu: Add DOMAIN_ATTR_SPLIT_TABLES
  iommu/arm-smmu: Pass io_pgtable_cfg to impl specific init_context
  iommu/arm-smmu: Add split pagetables for Adreno IOMMU implementations
  drm/msm: Attach the IOMMU device during initialization
  drm/msm: Refactor address space initialization
  drm/msm/a6xx: Support split pagetables
  arm64: dts: qcom: sdm845:  Update Adreno GPU SMMU compatible string

 .../devicetree/bindings/iommu/arm,smmu.yaml        |  6 ++
 arch/arm64/boot/dts/qcom/sdm845.dtsi               |  2 +-
 drivers/gpu/drm/msm/adreno/a2xx_gpu.c              | 16 ++++
 drivers/gpu/drm/msm/adreno/a3xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a4xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a5xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c              | 45 ++++++++++
 drivers/gpu/drm/msm/adreno/adreno_gpu.c            | 23 ++++--
 drivers/gpu/drm/msm/adreno/adreno_gpu.h            |  8 ++
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c            | 18 ++--
 drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c           | 18 ++--
 drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c           |  4 -
 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c           | 18 ++--
 drivers/gpu/drm/msm/msm_drv.h                      |  8 +-
 drivers/gpu/drm/msm/msm_gem_vma.c                  | 37 ++-------
 drivers/gpu/drm/msm/msm_gpu.c                      | 49 +----------
 drivers/gpu/drm/msm/msm_gpu.h                      |  4 +-
 drivers/gpu/drm/msm/msm_gpummu.c                   |  6 --
 drivers/gpu/drm/msm/msm_iommu.c                    | 18 ++--
 drivers/gpu/drm/msm/msm_mmu.h                      |  1 -
 drivers/iommu/arm-smmu-impl.c                      |  6 +-
 drivers/iommu/arm-smmu-qcom.c                      | 96 ++++++++++++++++++++++
 drivers/iommu/arm-smmu.c                           | 52 +++++++++---
 drivers/iommu/arm-smmu.h                           | 14 +++-
 include/linux/iommu.h                              |  1 +
 25 files changed, 295 insertions(+), 158 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 0/8] iommu/arm-smmu: Split pagetable support for Adreno GPUs
@ 2019-11-22 23:31 ` Jordan Crouse
  0 siblings, 0 replies; 8+ messages in thread
From: Jordan Crouse @ 2019-11-22 23:31 UTC (permalink / raw)
  To: iommu
  Cc: robin.murphy, will, linux-arm-kernel, linux-arm-msm, Sean Paul,
	Bjorn Andersson, Sharat Masetty, dri-devel, Sam Ravnborg,
	Rob Herring, David Airlie, Joerg Roedel, Ben Dooks,
	Allison Randal, AngeloGioacchino Del Regno, Thomas Gleixner,
	Douglas Anderson, Rob Clark, Greg Kroah-Hartman, Jeffrey Hugo,
	devicetree, Wen Yang, Alexios Zavras, Jeykumar Sankaran,
	Bruce Wang, linux-kernel, Andy Gross, Brian Masney,
	Jonathan Marek, Drew Davenport, Georgi Djakov, Mark Rutland,
	freedreno, Mamta Shukla, Daniel Vetter


Another refresh to support split pagetables for Adreno GPUs as part of an
incremental process to enable per-context pagetables.

In order to support per-context pagetables the GPU needs to enable split tables
so that we can store global buffers in the TTBR1 space leaving the GPU free to
program the TTBR0 register with the address of a context specific pagetable.

This patchset adds split pagetable support for devices identified with the
compatible string qcom,adreno-smmu-v2. If the compatible string is enabled and
DOMAIN_ATTR_SPLIT_TABLES is non zero at attach time, the implementation will
set up the TTBR0 and TTBR1 spaces with identical configurations and program
the domain pagetable into the TTBR1 register. The TTBR0 register will be
unused.

The driver can determine if split pagetables were programmed by querying
DOMAIN_ATTR_SPLIT_TABLES after attaching. The domain geometry will also be
updated to reflect the virtual address space for the TTBR1 range.

These patches are on based on top of linux-next-20191120 with [1], [2], and [3]
from Robin on the iommu list.

The first four patches add the device tree bindings and implementation
specific support for arm-smmu and the rest of the patches add the drm/msm
implementation followed by the device tree update for sdm845.

[1] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039718.html
[2] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039719.html
[3] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039720.html


Jordan Crouse (8):
  dt-bindings: arm-smmu: Add Adreno GPU variant
  iommu: Add DOMAIN_ATTR_SPLIT_TABLES
  iommu/arm-smmu: Pass io_pgtable_cfg to impl specific init_context
  iommu/arm-smmu: Add split pagetables for Adreno IOMMU implementations
  drm/msm: Attach the IOMMU device during initialization
  drm/msm: Refactor address space initialization
  drm/msm/a6xx: Support split pagetables
  arm64: dts: qcom: sdm845:  Update Adreno GPU SMMU compatible string

 .../devicetree/bindings/iommu/arm,smmu.yaml        |  6 ++
 arch/arm64/boot/dts/qcom/sdm845.dtsi               |  2 +-
 drivers/gpu/drm/msm/adreno/a2xx_gpu.c              | 16 ++++
 drivers/gpu/drm/msm/adreno/a3xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a4xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a5xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c              | 45 ++++++++++
 drivers/gpu/drm/msm/adreno/adreno_gpu.c            | 23 ++++--
 drivers/gpu/drm/msm/adreno/adreno_gpu.h            |  8 ++
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c            | 18 ++--
 drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c           | 18 ++--
 drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c           |  4 -
 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c           | 18 ++--
 drivers/gpu/drm/msm/msm_drv.h                      |  8 +-
 drivers/gpu/drm/msm/msm_gem_vma.c                  | 37 ++-------
 drivers/gpu/drm/msm/msm_gpu.c                      | 49 +----------
 drivers/gpu/drm/msm/msm_gpu.h                      |  4 +-
 drivers/gpu/drm/msm/msm_gpummu.c                   |  6 --
 drivers/gpu/drm/msm/msm_iommu.c                    | 18 ++--
 drivers/gpu/drm/msm/msm_mmu.h                      |  1 -
 drivers/iommu/arm-smmu-impl.c                      |  6 +-
 drivers/iommu/arm-smmu-qcom.c                      | 96 ++++++++++++++++++++++
 drivers/iommu/arm-smmu.c                           | 52 +++++++++---
 drivers/iommu/arm-smmu.h                           | 14 +++-
 include/linux/iommu.h                              |  1 +
 25 files changed, 295 insertions(+), 158 deletions(-)

-- 
2.7.4


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 0/8] iommu/arm-smmu: Split pagetable support for Adreno GPUs
@ 2019-11-22 23:31 ` Jordan Crouse
  0 siblings, 0 replies; 8+ messages in thread
From: Jordan Crouse @ 2019-11-22 23:31 UTC (permalink / raw)
  To: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA
  Cc: Mark Rutland, Jeffrey Hugo, David Airlie,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Bjorn Andersson,
	AngeloGioacchino Del Regno, Sam Ravnborg, Wen Yang,
	Jonathan Marek, will-DgEjT+Ai2ygdnm+yROfE0A, Joerg Roedel,
	Mamta Shukla, Ben Dooks,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Brian Masney,
	devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Sharat Masetty,
	Jeykumar Sankaran, Alexios Zavras, Rob Herring, Andy Gross,
	Thomas Gleixner, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW


Another refresh to support split pagetables for Adreno GPUs as part of an
incremental process to enable per-context pagetables.

In order to support per-context pagetables the GPU needs to enable split tables
so that we can store global buffers in the TTBR1 space leaving the GPU free to
program the TTBR0 register with the address of a context specific pagetable.

This patchset adds split pagetable support for devices identified with the
compatible string qcom,adreno-smmu-v2. If the compatible string is enabled and
DOMAIN_ATTR_SPLIT_TABLES is non zero at attach time, the implementation will
set up the TTBR0 and TTBR1 spaces with identical configurations and program
the domain pagetable into the TTBR1 register. The TTBR0 register will be
unused.

The driver can determine if split pagetables were programmed by querying
DOMAIN_ATTR_SPLIT_TABLES after attaching. The domain geometry will also be
updated to reflect the virtual address space for the TTBR1 range.

These patches are on based on top of linux-next-20191120 with [1], [2], and [3]
from Robin on the iommu list.

The first four patches add the device tree bindings and implementation
specific support for arm-smmu and the rest of the patches add the drm/msm
implementation followed by the device tree update for sdm845.

[1] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039718.html
[2] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039719.html
[3] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039720.html


Jordan Crouse (8):
  dt-bindings: arm-smmu: Add Adreno GPU variant
  iommu: Add DOMAIN_ATTR_SPLIT_TABLES
  iommu/arm-smmu: Pass io_pgtable_cfg to impl specific init_context
  iommu/arm-smmu: Add split pagetables for Adreno IOMMU implementations
  drm/msm: Attach the IOMMU device during initialization
  drm/msm: Refactor address space initialization
  drm/msm/a6xx: Support split pagetables
  arm64: dts: qcom: sdm845:  Update Adreno GPU SMMU compatible string

 .../devicetree/bindings/iommu/arm,smmu.yaml        |  6 ++
 arch/arm64/boot/dts/qcom/sdm845.dtsi               |  2 +-
 drivers/gpu/drm/msm/adreno/a2xx_gpu.c              | 16 ++++
 drivers/gpu/drm/msm/adreno/a3xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a4xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a5xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c              | 45 ++++++++++
 drivers/gpu/drm/msm/adreno/adreno_gpu.c            | 23 ++++--
 drivers/gpu/drm/msm/adreno/adreno_gpu.h            |  8 ++
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c            | 18 ++--
 drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c           | 18 ++--
 drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c           |  4 -
 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c           | 18 ++--
 drivers/gpu/drm/msm/msm_drv.h                      |  8 +-
 drivers/gpu/drm/msm/msm_gem_vma.c                  | 37 ++-------
 drivers/gpu/drm/msm/msm_gpu.c                      | 49 +----------
 drivers/gpu/drm/msm/msm_gpu.h                      |  4 +-
 drivers/gpu/drm/msm/msm_gpummu.c                   |  6 --
 drivers/gpu/drm/msm/msm_iommu.c                    | 18 ++--
 drivers/gpu/drm/msm/msm_mmu.h                      |  1 -
 drivers/iommu/arm-smmu-impl.c                      |  6 +-
 drivers/iommu/arm-smmu-qcom.c                      | 96 ++++++++++++++++++++++
 drivers/iommu/arm-smmu.c                           | 52 +++++++++---
 drivers/iommu/arm-smmu.h                           | 14 +++-
 include/linux/iommu.h                              |  1 +
 25 files changed, 295 insertions(+), 158 deletions(-)

-- 
2.7.4

_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 0/8] iommu/arm-smmu: Split pagetable support for Adreno GPUs
@ 2019-11-22 23:31 ` Jordan Crouse
  0 siblings, 0 replies; 8+ messages in thread
From: Jordan Crouse @ 2019-11-22 23:31 UTC (permalink / raw)
  To: iommu
  Cc: robin.murphy, will, linux-arm-kernel, linux-arm-msm, Sean Paul,
	Bjorn Andersson, Sharat Masetty, dri-devel, Sam Ravnborg,
	Rob Herring, David Airlie, Joerg Roedel, Ben Dooks,
	Allison Randal, AngeloGioacchino Del Regno, Thomas Gleixner,
	Douglas Anderson, Rob Clark, Greg Kroah-Hartman, Jeffrey Hugo,
	devicetree, Wen Yang


Another refresh to support split pagetables for Adreno GPUs as part of an
incremental process to enable per-context pagetables.

In order to support per-context pagetables the GPU needs to enable split tables
so that we can store global buffers in the TTBR1 space leaving the GPU free to
program the TTBR0 register with the address of a context specific pagetable.

This patchset adds split pagetable support for devices identified with the
compatible string qcom,adreno-smmu-v2. If the compatible string is enabled and
DOMAIN_ATTR_SPLIT_TABLES is non zero at attach time, the implementation will
set up the TTBR0 and TTBR1 spaces with identical configurations and program
the domain pagetable into the TTBR1 register. The TTBR0 register will be
unused.

The driver can determine if split pagetables were programmed by querying
DOMAIN_ATTR_SPLIT_TABLES after attaching. The domain geometry will also be
updated to reflect the virtual address space for the TTBR1 range.

These patches are on based on top of linux-next-20191120 with [1], [2], and [3]
from Robin on the iommu list.

The first four patches add the device tree bindings and implementation
specific support for arm-smmu and the rest of the patches add the drm/msm
implementation followed by the device tree update for sdm845.

[1] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039718.html
[2] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039719.html
[3] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039720.html


Jordan Crouse (8):
  dt-bindings: arm-smmu: Add Adreno GPU variant
  iommu: Add DOMAIN_ATTR_SPLIT_TABLES
  iommu/arm-smmu: Pass io_pgtable_cfg to impl specific init_context
  iommu/arm-smmu: Add split pagetables for Adreno IOMMU implementations
  drm/msm: Attach the IOMMU device during initialization
  drm/msm: Refactor address space initialization
  drm/msm/a6xx: Support split pagetables
  arm64: dts: qcom: sdm845:  Update Adreno GPU SMMU compatible string

 .../devicetree/bindings/iommu/arm,smmu.yaml        |  6 ++
 arch/arm64/boot/dts/qcom/sdm845.dtsi               |  2 +-
 drivers/gpu/drm/msm/adreno/a2xx_gpu.c              | 16 ++++
 drivers/gpu/drm/msm/adreno/a3xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a4xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a5xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c              | 45 ++++++++++
 drivers/gpu/drm/msm/adreno/adreno_gpu.c            | 23 ++++--
 drivers/gpu/drm/msm/adreno/adreno_gpu.h            |  8 ++
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c            | 18 ++--
 drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c           | 18 ++--
 drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c           |  4 -
 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c           | 18 ++--
 drivers/gpu/drm/msm/msm_drv.h                      |  8 +-
 drivers/gpu/drm/msm/msm_gem_vma.c                  | 37 ++-------
 drivers/gpu/drm/msm/msm_gpu.c                      | 49 +----------
 drivers/gpu/drm/msm/msm_gpu.h                      |  4 +-
 drivers/gpu/drm/msm/msm_gpummu.c                   |  6 --
 drivers/gpu/drm/msm/msm_iommu.c                    | 18 ++--
 drivers/gpu/drm/msm/msm_mmu.h                      |  1 -
 drivers/iommu/arm-smmu-impl.c                      |  6 +-
 drivers/iommu/arm-smmu-qcom.c                      | 96 ++++++++++++++++++++++
 drivers/iommu/arm-smmu.c                           | 52 +++++++++---
 drivers/iommu/arm-smmu.h                           | 14 +++-
 include/linux/iommu.h                              |  1 +
 25 files changed, 295 insertions(+), 158 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 0/8] iommu/arm-smmu: Split pagetable support for Adreno GPUs
@ 2019-11-22 23:31 ` Jordan Crouse
  0 siblings, 0 replies; 8+ messages in thread
From: Jordan Crouse @ 2019-11-22 23:31 UTC (permalink / raw)
  To: iommu
  Cc: Mark Rutland, Jeffrey Hugo, David Airlie, dri-devel,
	Bjorn Andersson, AngeloGioacchino Del Regno, Sam Ravnborg,
	Wen Yang, Jonathan Marek, will, Mamta Shukla, Ben Dooks,
	linux-arm-kernel, Brian Masney, devicetree, linux-arm-msm,
	Sharat Masetty, Alexios Zavras, Rob Herring, Andy Gross,
	Thomas Gleixner, freedreno, Sean Paul, Allison Randal,
	Bruce Wang, Greg Kroah-Hartman, Douglas Anderson, linux-kernel,
	Drew Davenport, robin.murphy, Georgi Djakov


Another refresh to support split pagetables for Adreno GPUs as part of an
incremental process to enable per-context pagetables.

In order to support per-context pagetables the GPU needs to enable split tables
so that we can store global buffers in the TTBR1 space leaving the GPU free to
program the TTBR0 register with the address of a context specific pagetable.

This patchset adds split pagetable support for devices identified with the
compatible string qcom,adreno-smmu-v2. If the compatible string is enabled and
DOMAIN_ATTR_SPLIT_TABLES is non zero at attach time, the implementation will
set up the TTBR0 and TTBR1 spaces with identical configurations and program
the domain pagetable into the TTBR1 register. The TTBR0 register will be
unused.

The driver can determine if split pagetables were programmed by querying
DOMAIN_ATTR_SPLIT_TABLES after attaching. The domain geometry will also be
updated to reflect the virtual address space for the TTBR1 range.

These patches are on based on top of linux-next-20191120 with [1], [2], and [3]
from Robin on the iommu list.

The first four patches add the device tree bindings and implementation
specific support for arm-smmu and the rest of the patches add the drm/msm
implementation followed by the device tree update for sdm845.

[1] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039718.html
[2] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039719.html
[3] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039720.html


Jordan Crouse (8):
  dt-bindings: arm-smmu: Add Adreno GPU variant
  iommu: Add DOMAIN_ATTR_SPLIT_TABLES
  iommu/arm-smmu: Pass io_pgtable_cfg to impl specific init_context
  iommu/arm-smmu: Add split pagetables for Adreno IOMMU implementations
  drm/msm: Attach the IOMMU device during initialization
  drm/msm: Refactor address space initialization
  drm/msm/a6xx: Support split pagetables
  arm64: dts: qcom: sdm845:  Update Adreno GPU SMMU compatible string

 .../devicetree/bindings/iommu/arm,smmu.yaml        |  6 ++
 arch/arm64/boot/dts/qcom/sdm845.dtsi               |  2 +-
 drivers/gpu/drm/msm/adreno/a2xx_gpu.c              | 16 ++++
 drivers/gpu/drm/msm/adreno/a3xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a4xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a5xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c              | 45 ++++++++++
 drivers/gpu/drm/msm/adreno/adreno_gpu.c            | 23 ++++--
 drivers/gpu/drm/msm/adreno/adreno_gpu.h            |  8 ++
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c            | 18 ++--
 drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c           | 18 ++--
 drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c           |  4 -
 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c           | 18 ++--
 drivers/gpu/drm/msm/msm_drv.h                      |  8 +-
 drivers/gpu/drm/msm/msm_gem_vma.c                  | 37 ++-------
 drivers/gpu/drm/msm/msm_gpu.c                      | 49 +----------
 drivers/gpu/drm/msm/msm_gpu.h                      |  4 +-
 drivers/gpu/drm/msm/msm_gpummu.c                   |  6 --
 drivers/gpu/drm/msm/msm_iommu.c                    | 18 ++--
 drivers/gpu/drm/msm/msm_mmu.h                      |  1 -
 drivers/iommu/arm-smmu-impl.c                      |  6 +-
 drivers/iommu/arm-smmu-qcom.c                      | 96 ++++++++++++++++++++++
 drivers/iommu/arm-smmu.c                           | 52 +++++++++---
 drivers/iommu/arm-smmu.h                           | 14 +++-
 include/linux/iommu.h                              |  1 +
 25 files changed, 295 insertions(+), 158 deletions(-)

-- 
2.7.4

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 0/8] iommu/arm-smmu: Split pagetable support for Adreno GPUs
@ 2019-11-22 23:31 ` Jordan Crouse
  0 siblings, 0 replies; 8+ messages in thread
From: Jordan Crouse @ 2019-11-22 23:31 UTC (permalink / raw)
  To: iommu
  Cc: Mark Rutland, Jeffrey Hugo, David Airlie, dri-devel,
	Bjorn Andersson, AngeloGioacchino Del Regno, Sam Ravnborg,
	Wen Yang, Jonathan Marek, will, Mamta Shukla, Ben Dooks,
	linux-arm-kernel, Brian Masney, devicetree, linux-arm-msm,
	Sharat Masetty, Jeykumar Sankaran, Alexios Zavras, Rob Herring,
	Andy Gross, Thomas Gleixner, freedreno, Sean Paul,
	Allison Randal, Bruce Wang, Greg Kroah-Hartman, Douglas Anderson,
	linux-kernel, Daniel Vetter, Drew Davenport, robin.murphy,
	Georgi Djakov


Another refresh to support split pagetables for Adreno GPUs as part of an
incremental process to enable per-context pagetables.

In order to support per-context pagetables the GPU needs to enable split tables
so that we can store global buffers in the TTBR1 space leaving the GPU free to
program the TTBR0 register with the address of a context specific pagetable.

This patchset adds split pagetable support for devices identified with the
compatible string qcom,adreno-smmu-v2. If the compatible string is enabled and
DOMAIN_ATTR_SPLIT_TABLES is non zero at attach time, the implementation will
set up the TTBR0 and TTBR1 spaces with identical configurations and program
the domain pagetable into the TTBR1 register. The TTBR0 register will be
unused.

The driver can determine if split pagetables were programmed by querying
DOMAIN_ATTR_SPLIT_TABLES after attaching. The domain geometry will also be
updated to reflect the virtual address space for the TTBR1 range.

These patches are on based on top of linux-next-20191120 with [1], [2], and [3]
from Robin on the iommu list.

The first four patches add the device tree bindings and implementation
specific support for arm-smmu and the rest of the patches add the drm/msm
implementation followed by the device tree update for sdm845.

[1] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039718.html
[2] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039719.html
[3] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039720.html


Jordan Crouse (8):
  dt-bindings: arm-smmu: Add Adreno GPU variant
  iommu: Add DOMAIN_ATTR_SPLIT_TABLES
  iommu/arm-smmu: Pass io_pgtable_cfg to impl specific init_context
  iommu/arm-smmu: Add split pagetables for Adreno IOMMU implementations
  drm/msm: Attach the IOMMU device during initialization
  drm/msm: Refactor address space initialization
  drm/msm/a6xx: Support split pagetables
  arm64: dts: qcom: sdm845:  Update Adreno GPU SMMU compatible string

 .../devicetree/bindings/iommu/arm,smmu.yaml        |  6 ++
 arch/arm64/boot/dts/qcom/sdm845.dtsi               |  2 +-
 drivers/gpu/drm/msm/adreno/a2xx_gpu.c              | 16 ++++
 drivers/gpu/drm/msm/adreno/a3xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a4xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a5xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c              | 45 ++++++++++
 drivers/gpu/drm/msm/adreno/adreno_gpu.c            | 23 ++++--
 drivers/gpu/drm/msm/adreno/adreno_gpu.h            |  8 ++
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c            | 18 ++--
 drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c           | 18 ++--
 drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c           |  4 -
 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c           | 18 ++--
 drivers/gpu/drm/msm/msm_drv.h                      |  8 +-
 drivers/gpu/drm/msm/msm_gem_vma.c                  | 37 ++-------
 drivers/gpu/drm/msm/msm_gpu.c                      | 49 +----------
 drivers/gpu/drm/msm/msm_gpu.h                      |  4 +-
 drivers/gpu/drm/msm/msm_gpummu.c                   |  6 --
 drivers/gpu/drm/msm/msm_iommu.c                    | 18 ++--
 drivers/gpu/drm/msm/msm_mmu.h                      |  1 -
 drivers/iommu/arm-smmu-impl.c                      |  6 +-
 drivers/iommu/arm-smmu-qcom.c                      | 96 ++++++++++++++++++++++
 drivers/iommu/arm-smmu.c                           | 52 +++++++++---
 drivers/iommu/arm-smmu.h                           | 14 +++-
 include/linux/iommu.h                              |  1 +
 25 files changed, 295 insertions(+), 158 deletions(-)

-- 
2.7.4

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 0/8] iommu/arm-smmu: Split pagetable support for Adreno GPUs
@ 2019-11-22 23:31 ` Jordan Crouse
  0 siblings, 0 replies; 8+ messages in thread
From: Jordan Crouse @ 2019-11-22 23:31 UTC (permalink / raw)
  To: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA
  Cc: Mark Rutland, Jeffrey Hugo, David Airlie,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Bjorn Andersson,
	AngeloGioacchino Del Regno, Sam Ravnborg, Wen Yang,
	Jonathan Marek, will-DgEjT+Ai2ygdnm+yROfE0A, Mamta Shukla,
	Ben Dooks, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	Brian Masney, devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-msm-u79uwXL29TY76Z2rM5mHXA, Sharat Masetty,
	Jeykumar Sankaran, Alexios Zavras, Rob Herring, Andy Gross,
	Thomas Gleixner, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	Sean Paul, Allison


Another refresh to support split pagetables for Adreno GPUs as part of an
incremental process to enable per-context pagetables.

In order to support per-context pagetables the GPU needs to enable split tables
so that we can store global buffers in the TTBR1 space leaving the GPU free to
program the TTBR0 register with the address of a context specific pagetable.

This patchset adds split pagetable support for devices identified with the
compatible string qcom,adreno-smmu-v2. If the compatible string is enabled and
DOMAIN_ATTR_SPLIT_TABLES is non zero at attach time, the implementation will
set up the TTBR0 and TTBR1 spaces with identical configurations and program
the domain pagetable into the TTBR1 register. The TTBR0 register will be
unused.

The driver can determine if split pagetables were programmed by querying
DOMAIN_ATTR_SPLIT_TABLES after attaching. The domain geometry will also be
updated to reflect the virtual address space for the TTBR1 range.

These patches are on based on top of linux-next-20191120 with [1], [2], and [3]
from Robin on the iommu list.

The first four patches add the device tree bindings and implementation
specific support for arm-smmu and the rest of the patches add the drm/msm
implementation followed by the device tree update for sdm845.

[1] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039718.html
[2] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039719.html
[3] https://lists.linuxfoundation.org/pipermail/iommu/2019-October/039720.html


Jordan Crouse (8):
  dt-bindings: arm-smmu: Add Adreno GPU variant
  iommu: Add DOMAIN_ATTR_SPLIT_TABLES
  iommu/arm-smmu: Pass io_pgtable_cfg to impl specific init_context
  iommu/arm-smmu: Add split pagetables for Adreno IOMMU implementations
  drm/msm: Attach the IOMMU device during initialization
  drm/msm: Refactor address space initialization
  drm/msm/a6xx: Support split pagetables
  arm64: dts: qcom: sdm845:  Update Adreno GPU SMMU compatible string

 .../devicetree/bindings/iommu/arm,smmu.yaml        |  6 ++
 arch/arm64/boot/dts/qcom/sdm845.dtsi               |  2 +-
 drivers/gpu/drm/msm/adreno/a2xx_gpu.c              | 16 ++++
 drivers/gpu/drm/msm/adreno/a3xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a4xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a5xx_gpu.c              |  1 +
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c              | 45 ++++++++++
 drivers/gpu/drm/msm/adreno/adreno_gpu.c            | 23 ++++--
 drivers/gpu/drm/msm/adreno/adreno_gpu.h            |  8 ++
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c            | 18 ++--
 drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c           | 18 ++--
 drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c           |  4 -
 drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c           | 18 ++--
 drivers/gpu/drm/msm/msm_drv.h                      |  8 +-
 drivers/gpu/drm/msm/msm_gem_vma.c                  | 37 ++-------
 drivers/gpu/drm/msm/msm_gpu.c                      | 49 +----------
 drivers/gpu/drm/msm/msm_gpu.h                      |  4 +-
 drivers/gpu/drm/msm/msm_gpummu.c                   |  6 --
 drivers/gpu/drm/msm/msm_iommu.c                    | 18 ++--
 drivers/gpu/drm/msm/msm_mmu.h                      |  1 -
 drivers/iommu/arm-smmu-impl.c                      |  6 +-
 drivers/iommu/arm-smmu-qcom.c                      | 96 ++++++++++++++++++++++
 drivers/iommu/arm-smmu.c                           | 52 +++++++++---
 drivers/iommu/arm-smmu.h                           | 14 +++-
 include/linux/iommu.h                              |  1 +
 25 files changed, 295 insertions(+), 158 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2019-11-22 23:37 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-22 23:31 [PATCH v2 0/8] iommu/arm-smmu: Split pagetable support for Adreno GPUs Jordan Crouse
2019-11-22 23:31 ` Jordan Crouse
2019-11-22 23:31 Jordan Crouse
2019-11-22 23:31 ` Jordan Crouse
2019-11-22 23:31 Jordan Crouse
2019-11-22 23:31 ` Jordan Crouse
2019-11-22 23:31 Jordan Crouse
2019-11-22 23:31 ` Jordan Crouse

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.