[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250310-sets-bxs-4-64-patch-v1-v3-0-143b3dbef02f@imgtec.com>
Date: Mon, 10 Mar 2025 13:10:24 +0000
From: Matt Coster <matt.coster@...tec.com>
To: Frank Binns <frank.binns@...tec.com>,
Matt Coster
<matt.coster@...tec.com>,
David Airlie <airlied@...il.com>, Simona Vetter
<simona@...ll.ch>,
Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
Maxime Ripard <mripard@...nel.org>,
Thomas Zimmermann <tzimmermann@...e.de>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>, Nishanth Menon <nm@...com>,
"Vignesh
Raghavendra" <vigneshr@...com>,
Tero Kristo <kristo@...nel.org>
CC: <dri-devel@...ts.freedesktop.org>, <devicetree@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <linux-arm-kernel@...ts.infradead.org>,
Randolph Sapp <rs@...com>, Darren Etheridge <detheridge@...com>,
"Alessio
Belle" <alessio.belle@...tec.com>,
Alexandru Dadu
<alexandru.dadu@...tec.com>,
Sarah Walker <sarah.walker@...tec.com>
Subject: [PATCH v3 00/18] Imagination BXS-4-64 MC1 GPU support
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
Powered by blists - more mailing lists