public inbox for rust-for-linux@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 00/20] drm/tyr: firmware loading and MCU boot support
@ 2026-04-24 23:38 Deborah Brouwer
  2026-04-24 23:38 ` [PATCH v4 01/20] drm/tyr: remove unused device from platform data Deborah Brouwer
                   ` (20 more replies)
  0 siblings, 21 replies; 29+ messages in thread
From: Deborah Brouwer @ 2026-04-24 23:38 UTC (permalink / raw)
  To: Daniel Almeida, Alice Ryhl, Danilo Krummrich, David Airlie,
	Simona Vetter, Benno Lossin, Gary Guo, Miguel Ojeda, Boqun Feng,
	Björn Roy Baron, Andreas Hindborg, Trevor Gross,
	FUJITA Tomonori, Frederic Weisbecker, Thomas Gleixner,
	Anna-Maria Behnsen, John Stultz, Stephen Boyd
  Cc: dri-devel, linux-kernel, rust-for-linux, boris.brezillon,
	beata.michalska, lyude, acourbot, work, alvin.sun,
	Deborah Brouwer

This series adds firmware loading and MCU boot support to the Tyr DRM
driver. It includes:
 - A parser for the Mali CSF firmware binary format
 - A kernel-managed BO type (KernelBo) for internal driver allocations
 - GPU virtual memory (VM) integration using drm_gpuvm
 - An MMU module and a generic slot manager
 - Shmem-backed GEM support for Tyr
 - Loading firmware, VM activation, and MCU boot at probe()
 - Initialization of Command Stream Frontend (CSF) firmware interfaces

Dependencies:
 - [PATCH v12 0/5] Rust bindings for gem shmem
    https://lore.kernel.org/rust-for-linux/20260421235346.672794-1-lyude@redhat.com

 - [PATCH v6 0/5] Rust GPUVM immediate mode
    https://lore.kernel.org/rust-for-linux/20260409-gpuvm-rust-v6-0-b16e6ada7261@google.com/

 - [PATCH v6 0/5] Introduce DeviceContext
    https://lore.kernel.org/rust-for-linux/20260320233645.950190-1-lyude@redhat.com/

 - [PATCH v5 0/6] drm/tyr: Use register! macro
    https://lore.kernel.org/rust-for-linux/20260409-b4-tyr-use-register-macro-v5-v5-0-8abfff8a0204@collabora.com/

Other Prerequisites:
 This series also depends on additional prerequisite fixes not included in
 this posting. The full stack (base + prerequisites + this series) is
 available here:
  https://gitlab.freedesktop.org/dbrouwer/linux/-/tree/dbrouwer/fw-boot
    
  Development history / discussion:
   https://gitlab.freedesktop.org/panfrost/linux/-/merge_requests/56
    

---
Changes in v4:
 New commits:
  - drm/tyr: program CSF global interface
  - rust: time: add arch_timer_get_rate wrapper
  - drm/tyr: add CSF firmware interface support
  - drm/tyr: validate presence of CSF shared section
  - drm/tyr: wait for global interface readiness
  - drm/tyr: add Job IRQ handling
  - drm/tyr: add Wait type for GPU events

 The existing commits from v3 remain unchanged.
 - Link to v3: https://lore.kernel.org/r/20260413-b4-fw-boot-v3-v3-0-b422f3c03885@collabora.com
    
Changes in v3:
 New commits:
  - drm/tyr: remove unused device from platform data
  - drm/tyr: use shmem GEM object type in TyrDrmDriver
    
 drm/tyr: select required dependencies in Kconfig
  - Rename commit since the dependencies are not limited to DRM.
  - Select new RUST_DRM_GEM_SHMEM_HELPER instead of DRM_GEM_SHMEM_HELPER.
    
 drm/tyr: set DMA mask using GPU physical address
  - Use register macro to read pa_bits instead of separate helper function.
    
 drm/tyr: add MMU module
  - Switch MMU code to typed register APIs (TRANSCFG, MEMATTR, STATUS, LOCKADDR, etc.).
  - Use MmuCommand enum for MMU commands instead of raw constants.
  - Minor cleanups and renaming (MAX_AS, AS_PRESENT handling).
    
 drm/tyr: add GPU virtual memory module
  - Extract VA/PA bits via typed MMU_FEATURES register.
  - Update the VM code to match the new GPUVM v6 and shmem GEM v10 APIs.
    
 drm/tyr: add a kernel buffer object
  - Reject zero-sized KernelBo allocations up front.
    
 drm/tyr: add firmware loading and MCU boot support
  - Use typed GPU control registers.
  - Pass iomem by Arc into Firmware::new() since we store it eventually.
    
  - Link to v2: https://lore.kernel.org/rust-for-linux/20260302232500.244489-1-deborah.brouwer@collabora.com/
    
Changes in v2:
 - The whole series is rebased on drm-rust-next including v7.0-rc1.
 - Each patch has its own changelog.
    
 Link to v1: https://lore.kernel.org/rust-for-linux/20260212013713.304343-1-deborah.brouwer@collabora.com/

Signed-off-by: Deborah Brouwer <deborah.brouwer@collabora.com>

---
Alvin Sun (1):
      drm/tyr: use shmem GEM object type in TyrDrmDriver

Beata Michalska (1):
      drm/tyr: set DMA mask using GPU physical address

Boris Brezillon (5):
      drm/tyr: select required dependencies in Kconfig
      drm/tyr: rename TyrObject to BoData
      drm/tyr: Add generic slot manager
      drm/tyr: add MMU module
      drm/tyr: add GPU virtual memory module

Daniel Almeida (1):
      drm/tyr: add parser for firmware binary

Deborah Brouwer (12):
      drm/tyr: remove unused device from platform data
      drm/tyr: move clock cleanup into Clocks Drop impl
      drm/tyr: add shmem backing for GEM objects
      drm/tyr: add a kernel buffer object
      drm/tyr: add firmware loading and MCU boot support
      drm/tyr: add Wait type for GPU events
      drm/tyr: add Job IRQ handling
      drm/tyr: wait for global interface readiness
      drm/tyr: validate presence of CSF shared section
      drm/tyr: add CSF firmware interface support
      rust: time: add arch_timer_get_rate wrapper
      drm/tyr: program CSF global interface

 drivers/gpu/drm/tyr/Kconfig              |   15 +-
 drivers/gpu/drm/tyr/driver.rs            |  153 +-
 drivers/gpu/drm/tyr/fw.rs                |  352 +++++
 drivers/gpu/drm/tyr/fw/interfaces.rs     | 2243 ++++++++++++++++++++++++++++++
 drivers/gpu/drm/tyr/fw/irq.rs            |  120 ++
 drivers/gpu/drm/tyr/fw/parser.rs         |  532 +++++++
 drivers/gpu/drm/tyr/gem.rs               |  164 ++-
 drivers/gpu/drm/tyr/mmu.rs               |  127 ++
 drivers/gpu/drm/tyr/mmu/address_space.rs |  571 ++++++++
 drivers/gpu/drm/tyr/regs.rs              |  110 ++
 drivers/gpu/drm/tyr/slot.rs              |  436 ++++++
 drivers/gpu/drm/tyr/tyr.rs               |    5 +
 drivers/gpu/drm/tyr/vm.rs                |  805 +++++++++++
 drivers/gpu/drm/tyr/wait.rs              |  125 ++
 rust/kernel/time.rs                      |   29 +
 15 files changed, 5752 insertions(+), 35 deletions(-)
---
base-commit: 52c3c3b7eb11d596526e523bf57f8b3cbdcb24d8
change-id: 20260424-b4-fw-boot-v4-4b5f09bf13e8

Best regards,
-- 
Deborah Brouwer <deborah.brouwer@collabora.com>


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

end of thread, other threads:[~2026-04-27  9:08 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-24 23:38 [PATCH v4 00/20] drm/tyr: firmware loading and MCU boot support Deborah Brouwer
2026-04-24 23:38 ` [PATCH v4 01/20] drm/tyr: remove unused device from platform data Deborah Brouwer
2026-04-24 23:38 ` [PATCH v4 02/20] drm/tyr: select required dependencies in Kconfig Deborah Brouwer
2026-04-27  7:23   ` Boris Brezillon
2026-04-24 23:38 ` [PATCH v4 03/20] drm/tyr: move clock cleanup into Clocks Drop impl Deborah Brouwer
2026-04-24 23:38 ` [PATCH v4 04/20] drm/tyr: rename TyrObject to BoData Deborah Brouwer
2026-04-24 23:38 ` [PATCH v4 05/20] drm/tyr: use shmem GEM object type in TyrDrmDriver Deborah Brouwer
2026-04-24 23:39 ` [PATCH v4 06/20] drm/tyr: set DMA mask using GPU physical address Deborah Brouwer
2026-04-24 23:39 ` [PATCH v4 07/20] drm/tyr: add shmem backing for GEM objects Deborah Brouwer
2026-04-24 23:39 ` [PATCH v4 08/20] drm/tyr: Add generic slot manager Deborah Brouwer
2026-04-24 23:39 ` [PATCH v4 09/20] drm/tyr: add MMU module Deborah Brouwer
2026-04-24 23:39 ` [PATCH v4 10/20] drm/tyr: add GPU virtual memory module Deborah Brouwer
2026-04-24 23:39 ` [PATCH v4 11/20] drm/tyr: add a kernel buffer object Deborah Brouwer
2026-04-24 23:39 ` [PATCH v4 12/20] drm/tyr: add parser for firmware binary Deborah Brouwer
2026-04-27  8:09   ` Onur Özkan
2026-04-27  8:20     ` Boris Brezillon
2026-04-24 23:39 ` [PATCH v4 13/20] drm/tyr: add firmware loading and MCU boot support Deborah Brouwer
2026-04-24 23:39 ` [PATCH v4 14/20] drm/tyr: add Wait type for GPU events Deborah Brouwer
2026-04-24 23:39 ` [PATCH v4 15/20] drm/tyr: add Job IRQ handling Deborah Brouwer
2026-04-24 23:39 ` [PATCH v4 16/20] drm/tyr: wait for global interface readiness Deborah Brouwer
2026-04-24 23:39 ` [PATCH v4 17/20] drm/tyr: validate presence of CSF shared section Deborah Brouwer
2026-04-24 23:39 ` [PATCH v4 18/20] drm/tyr: add CSF firmware interface support Deborah Brouwer
2026-04-27  9:08   ` Onur Özkan
2026-04-24 23:39 ` [PATCH v4 19/20] rust: time: add arch_timer_get_rate wrapper Deborah Brouwer
2026-04-27  7:42   ` Andreas Hindborg
2026-04-27  7:53   ` Alice Ryhl
2026-04-27  8:59   ` Onur Özkan
2026-04-24 23:39 ` [PATCH v4 20/20] drm/tyr: program CSF global interface Deborah Brouwer
2026-04-27  8:07 ` [PATCH v4 00/20] drm/tyr: firmware loading and MCU boot support Boris Brezillon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox