linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/21] Imagination BXS-4-64 MC1 GPU support
@ 2024-11-18 13:01 Matt Coster
  2024-11-18 13:01 ` [PATCH v2 01/21] dt-bindings: gpu: img: More explicit compatible strings Matt Coster
                   ` (20 more replies)
  0 siblings, 21 replies; 32+ messages in thread
From: Matt Coster @ 2024-11-18 13:01 UTC (permalink / raw)
  To: Frank Binns, Matt Coster, David Airlie, Simona Vetter,
	Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Nishanth Menon,
	Vignesh Raghavendra, Tero Kristo
  Cc: dri-devel, devicetree, linux-kernel, linux-arm-kernel,
	Randolph Sapp, Darren Etheridge, Sarah Walker

This GPU is found in the TI AM68 family of SoCs, with initial support
added to the k3-j721s2 devicetree and tested on a TI SK-AM68 board.

A suitable firmware binary can currently be found in the IMG
linux-firmware repository[1] as powervr/rogue_36.53.104.796_v1.fw. A
merge request will be sent out for this within the next few weeks.

No new UAPI will be necessary for this platform as it is sufficiently
similar to the already supported AXE-1-16M.

The firmware successfully boots with basic job submission appearing to
work correctly, as tested with a few of Sascha Willems' Vulkan demos[2].
Note these do not necessarily render correctly due to incomplete UMD
support.

UMD support is still a work in progress. The branch at [3] is nearly
feature complete from a Vulkan perspective. We're currently undertaking
a significant rework of the compiler to better accommodate this and
other Rogue GPUs which means we can't do more comprehensive driver
testing at this point. However, we expect to send a Mesa merge request
for the initial version of the compiler (capable of passing some of the
Vulkan CTS smoke tests) within the next few days, with a fully
functional version of the compiler in place by the end of the year.

There are several dt-bindings changes at the beginning of this series.
We expect the result to be versatile enough to handle all Imagination
Rogue GPUs while being a strong foundation to build bindings for the
newer Volcanic architecture (for which we're currently developing
support).

[1]: https://gitlab.freedesktop.org/imagination/linux-firmware/-/tree/powervr
[2]: https://github.com/SaschaWillems/Vulkan
[3]: https://gitlab.freedesktop.org/imagination/mesa/-/tree/dev/bxs

---
Changes in v2:
- Clarified justification for compatible strings (P1)
- Simplified clocks constraints (P2)
- Simplified power-domains constraints (P3/P4)
- Use normal reg syntax for 64-bit values (P8/P21)
- Link to v1: https://lore.kernel.org/r/20241105-sets-bxs-4-64-patch-v1-v1-0-4ed30e865892@imgtec.com

---
Matt Coster (20):
      dt-bindings: gpu: img: More explicit compatible strings
      dt-bindings: gpu: img: Further constrain clocks
      dt-bindings: gpu: img: Power domain details
      dt-bindings: gpu: img: Allow dma-coherent
      drm/imagination: Use more specific compatible strings
      drm/imagination: Add power domain control
      arm64: dts: ti: k3-am62: New GPU binding details
      dt-bindings: gpu: img: Add BXS-4-64 devicetree bindings
      drm/imagination: Revert to non-threaded IRQs
      drm/imagination: Remove firmware enable_reg
      drm/imagination: Rename event_mask -> status_mask
      drm/imagination: Make has_fixed_data_addr a value
      drm/imagination: Use a lookup table for fw defs
      drm/imagination: Use callbacks for fw irq handling
      drm/imagination: Add register required for RISC-V firmware
      drm/imagination: Move ELF fw utils to common file
      drm/imagination: Add platform overrides infrastructure
      drm/imagination: Add device_memory_force_cpu_cached override
      drm/imagination: Add support for TI AM68 GPU
      arm64: dts: ti: k3-j721s2: Add GPU node

Sarah Walker (1):
      drm/imagination: Add RISC-V firmware processor support

 .../devicetree/bindings/gpu/img,powervr-rogue.yaml | 107 ++++++++++++--
 arch/arm64/boot/dts/ti/k3-am62-main.dtsi           |   3 +-
 arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi         |  12 ++
 drivers/gpu/drm/imagination/Makefile               |   2 +
 drivers/gpu/drm/imagination/pvr_ccb.c              |  25 +++-
 drivers/gpu/drm/imagination/pvr_device.c           | 130 ++++++++--------
 drivers/gpu/drm/imagination/pvr_device.h           |  77 +++++++++-
 drivers/gpu/drm/imagination/pvr_drv.c              |  58 +++++++-
 drivers/gpu/drm/imagination/pvr_fw.c               |  26 +++-
 drivers/gpu/drm/imagination/pvr_fw.h               |  85 +++++------
 drivers/gpu/drm/imagination/pvr_fw_meta.c          |  23 +--
 drivers/gpu/drm/imagination/pvr_fw_mips.c          |  82 ++---------
 drivers/gpu/drm/imagination/pvr_fw_riscv.c         | 163 +++++++++++++++++++++
 drivers/gpu/drm/imagination/pvr_fw_startstop.c     |  21 +++
 drivers/gpu/drm/imagination/pvr_fw_util.c          |  67 +++++++++
 drivers/gpu/drm/imagination/pvr_gem.c              |   3 +
 drivers/gpu/drm/imagination/pvr_gem.h              |   7 +-
 drivers/gpu/drm/imagination/pvr_mmu.c              |   7 +-
 drivers/gpu/drm/imagination/pvr_power.c            | 118 ++++++++++++++-
 drivers/gpu/drm/imagination/pvr_power.h            |   3 +
 drivers/gpu/drm/imagination/pvr_queue.c            |  23 ++-
 drivers/gpu/drm/imagination/pvr_rogue_cr_defs.h    |  17 ++-
 drivers/gpu/drm/imagination/pvr_rogue_riscv.h      |  41 ++++++
 23 files changed, 864 insertions(+), 236 deletions(-)
---
base-commit: d78f0ee0406803cda8801fd5201746ccf89e5e4a
change-id: 20241021-sets-bxs-4-64-patch-v1-44cdf9cc555f



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

end of thread, other threads:[~2024-11-25 18:04 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-18 13:01 [PATCH v2 00/21] Imagination BXS-4-64 MC1 GPU support Matt Coster
2024-11-18 13:01 ` [PATCH v2 01/21] dt-bindings: gpu: img: More explicit compatible strings Matt Coster
2024-11-20  8:22   ` Krzysztof Kozlowski
2024-11-18 13:01 ` [PATCH v2 02/21] dt-bindings: gpu: img: Further constrain clocks Matt Coster
2024-11-20  8:25   ` Krzysztof Kozlowski
2024-11-25 18:02   ` Parthiban
2024-11-18 13:01 ` [PATCH v2 03/21] dt-bindings: gpu: img: Power domain details Matt Coster
2024-11-20  8:27   ` Krzysztof Kozlowski
2024-11-18 13:01 ` [PATCH v2 04/21] dt-bindings: gpu: img: Allow dma-coherent Matt Coster
2024-11-20  8:27   ` Krzysztof Kozlowski
2024-11-18 13:01 ` [PATCH v2 05/21] drm/imagination: Use more specific compatible strings Matt Coster
2024-11-20  8:30   ` Krzysztof Kozlowski
2024-11-18 13:01 ` [PATCH v2 06/21] drm/imagination: Add power domain control Matt Coster
2024-11-18 13:01 ` [PATCH v2 07/21] arm64: dts: ti: k3-am62: New GPU binding details Matt Coster
2024-11-20  8:32   ` Krzysztof Kozlowski
2024-11-18 13:02 ` [PATCH v2 08/21] dt-bindings: gpu: img: Add BXS-4-64 devicetree bindings Matt Coster
2024-11-20  8:28   ` Krzysztof Kozlowski
2024-11-18 13:02 ` [PATCH v2 09/21] drm/imagination: Revert to non-threaded IRQs Matt Coster
2024-11-18 13:02 ` [PATCH v2 10/21] drm/imagination: Remove firmware enable_reg Matt Coster
2024-11-18 13:02 ` [PATCH v2 11/21] drm/imagination: Rename event_mask -> status_mask Matt Coster
2024-11-18 13:02 ` [PATCH v2 12/21] drm/imagination: Make has_fixed_data_addr a value Matt Coster
2024-11-18 13:02 ` [PATCH v2 13/21] drm/imagination: Use a lookup table for fw defs Matt Coster
2024-11-18 13:02 ` [PATCH v2 14/21] drm/imagination: Use callbacks for fw irq handling Matt Coster
2024-11-18 13:02 ` [PATCH v2 15/21] drm/imagination: Add register required for RISC-V firmware Matt Coster
2024-11-18 13:02 ` [PATCH v2 16/21] drm/imagination: Move ELF fw utils to common file Matt Coster
2024-11-18 13:02 ` [PATCH v2 17/21] drm/imagination: Add RISC-V firmware processor support Matt Coster
2024-11-18 13:02 ` [PATCH v2 18/21] drm/imagination: Add platform overrides infrastructure Matt Coster
2024-11-18 13:02 ` [PATCH v2 19/21] drm/imagination: Add device_memory_force_cpu_cached override Matt Coster
2024-11-19 18:43   ` Andrew Davis
2024-11-18 13:02 ` [PATCH v2 20/21] drm/imagination: Add support for TI AM68 GPU Matt Coster
2024-11-18 13:02 ` [PATCH v2 21/21] arm64: dts: ti: k3-j721s2: Add GPU node Matt Coster
2024-11-20  8:33   ` Krzysztof Kozlowski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).