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@xxxxxxxxxx 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@xxxxxxxxxx --- 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