devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 00/18] Imagination BXS-4-64 MC1 GPU support
@ 2025-03-10 13:10 Matt Coster
  2025-03-10 13:10 ` [PATCH v3 01/18] dt-bindings: gpu: img: Future-proofing enhancements Matt Coster
                   ` (18 more replies)
  0 siblings, 19 replies; 27+ messages in thread
From: Matt Coster @ 2025-03-10 13:10 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, Alessio Belle, Alexandru Dadu,
	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.

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

UMD support is close to being complete. We're now able to pass >90% of
Vulkan conformance on our Mesa development branch. The compiler has been
undergoing a significant rework needed to accomodate the BXS-4-64, as
well as to make it more flexible to support additional Rogue GPUs going
forward. The first part of this rework landed in Mesa in [2], and more
MRs will follow in the coming weeks.

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).

The DTS changes at the end of the series are marked [DO NOT MERGE]. Once
the series is reviewed, we will request these be taken through the
relevant tree.

[1]: https://gitlab.freedesktop.org/imagination/linux-firmware/-/tree/powervr
[3]: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32258

---
Changes in v3:
- Reorder some patches to ensure the proper sequencing
- Update status of UMD support (cover)
- Don't use more specific compatible strings when not required (P1)
- Avoid ABI break by limiting new required properties to new compatible
  strings (P2)
- Move power domain changes to the patch in which they're used (P2/P5)
- Update register definitions (P3) [Thanks, Alessio!]
- Don't use more specific compatible strings when not required (P4)
- Enhanced commit messages (P4)
- Remove unnecessary example (P5)
- Add proper fixes for threaded IRQs (P6) [Thanks, Alessio!]
- Include fix for a separate IRQ issue (P7) [Thanks, Alessio!]
- Don't enable firmware debug module (was P13 in v2, also in P14)
- Change from a workaround to a regular codepath (P15)
- Drop platform overrides framework (was P18 in v2, also in P16)
- Mark DTS changes [DO NOT MERGE] (P17/P18)
- Link to v2: https://lore.kernel.org/r/20241118-sets-bxs-4-64-patch-v1-v2-0-3fd45d9fb0cf@imgtec.com

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

---
Alessio Belle (3):
      drm/imagination: Update register defs for newer GPUs
      drm/imagination: Mask GPU IRQs in threaded handler
      drm/imagination: Handle Rogue safety event IRQs

Matt Coster (14):
      dt-bindings: gpu: img: Future-proofing enhancements
      dt-bindings: gpu: img: Add BXS-4-64 devicetree bindings
      drm/imagination: Use new generic compatible string
      drm/imagination: Add power domain control
      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: Move ELF fw utils to common file
      drm/imagination: Use cached memory with dma_coherent
      drm/imagination: Add support for TI AM68 GPU
      [DO NOT MERGE] arm64: dts: ti: k3-am62: New GPU binding details
      [DO NOT MERGE] 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 |  77 +++++++++-
 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_device.c           | 124 ++++++++++++++--
 drivers/gpu/drm/imagination/pvr_device.h           |  31 +++-
 drivers/gpu/drm/imagination/pvr_drv.c              |  16 ++
 drivers/gpu/drm/imagination/pvr_fw.c               |  28 +++-
 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     |  17 +++
 drivers/gpu/drm/imagination/pvr_fw_util.c          |  67 +++++++++
 drivers/gpu/drm/imagination/pvr_gem.c              |  10 +-
 drivers/gpu/drm/imagination/pvr_gem.h              |   6 +-
 drivers/gpu/drm/imagination/pvr_mmu.c              |   8 +-
 drivers/gpu/drm/imagination/pvr_power.c            | 114 ++++++++++++++
 drivers/gpu/drm/imagination/pvr_power.h            |   3 +
 drivers/gpu/drm/imagination/pvr_rogue_cr_defs.h    | 153 ++++++++++++++++---
 drivers/gpu/drm/imagination/pvr_rogue_riscv.h      |  41 ++++++
 21 files changed, 886 insertions(+), 179 deletions(-)
---
base-commit: 10232dac98d3803ec4fcc0cd8a4d1bd2a09b3e18
change-id: 20241021-sets-bxs-4-64-patch-v1-44cdf9cc555f


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

end of thread, other threads:[~2025-03-11 15:19 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-10 13:10 [PATCH v3 00/18] Imagination BXS-4-64 MC1 GPU support Matt Coster
2025-03-10 13:10 ` [PATCH v3 01/18] dt-bindings: gpu: img: Future-proofing enhancements Matt Coster
2025-03-11  7:50   ` Krzysztof Kozlowski
2025-03-11 10:33     ` Matt Coster
2025-03-11 13:25       ` Krzysztof Kozlowski
2025-03-10 13:10 ` [PATCH v3 02/18] dt-bindings: gpu: img: Add BXS-4-64 devicetree bindings Matt Coster
2025-03-10 14:40   ` Rob Herring (Arm)
2025-03-10 14:40   ` Rob Herring (Arm)
2025-03-11  7:51   ` Krzysztof Kozlowski
2025-03-11 10:28     ` Matt Coster
2025-03-10 13:10 ` [PATCH v3 03/18] drm/imagination: Update register defs for newer GPUs Matt Coster
2025-03-10 13:10 ` [PATCH v3 04/18] drm/imagination: Use new generic compatible string Matt Coster
2025-03-10 13:10 ` [PATCH v3 05/18] drm/imagination: Add power domain control Matt Coster
2025-03-10 13:10 ` [PATCH v3 06/18] drm/imagination: Mask GPU IRQs in threaded handler Matt Coster
2025-03-10 13:10 ` [PATCH v3 07/18] drm/imagination: Handle Rogue safety event IRQs Matt Coster
2025-03-10 13:10 ` [PATCH v3 08/18] drm/imagination: Remove firmware enable_reg Matt Coster
2025-03-10 13:10 ` [PATCH v3 09/18] drm/imagination: Rename event_mask -> status_mask Matt Coster
2025-03-10 13:10 ` [PATCH v3 10/18] drm/imagination: Make has_fixed_data_addr a value Matt Coster
2025-03-10 13:10 ` [PATCH v3 11/18] drm/imagination: Use a lookup table for fw defs Matt Coster
2025-03-10 13:10 ` [PATCH v3 12/18] drm/imagination: Use callbacks for fw irq handling Matt Coster
2025-03-10 13:10 ` [PATCH v3 13/18] drm/imagination: Move ELF fw utils to common file Matt Coster
2025-03-10 13:10 ` [PATCH v3 14/18] drm/imagination: Add RISC-V firmware processor support Matt Coster
2025-03-10 13:10 ` [PATCH v3 15/18] drm/imagination: Use cached memory with dma_coherent Matt Coster
2025-03-10 13:10 ` [PATCH v3 16/18] drm/imagination: Add support for TI AM68 GPU Matt Coster
2025-03-10 13:10 ` [PATCH DO NOT MERGE v3 17/18] arm64: dts: ti: k3-am62: New GPU binding details Matt Coster
2025-03-10 13:10 ` [PATCH DO NOT MERGE v3 18/18] arm64: dts: ti: k3-j721s2: Add GPU node Matt Coster
2025-03-11 15:19 ` [PATCH v3 00/18] Imagination BXS-4-64 MC1 GPU support Rob Herring (Arm)

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).