From: Boris Brezillon <boris.brezillon@collabora.com>
To: Deborah Brouwer <deborah.brouwer@collabora.com>
Cc: "Daniel Almeida" <daniel.almeida@collabora.com>,
"Alice Ryhl" <aliceryhl@google.com>,
"Danilo Krummrich" <dakr@kernel.org>,
"David Airlie" <airlied@gmail.com>,
"Simona Vetter" <simona@ffwll.ch>,
"Benno Lossin" <lossin@kernel.org>, "Gary Guo" <gary@garyguo.net>,
"Miguel Ojeda" <ojeda@kernel.org>,
"Boqun Feng" <boqun@kernel.org>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Andreas Hindborg" <a.hindborg@kernel.org>,
"Trevor Gross" <tmgross@umich.edu>,
"FUJITA Tomonori" <fujita.tomonori@gmail.com>,
"Frederic Weisbecker" <frederic@kernel.org>,
"Thomas Gleixner" <tglx@kernel.org>,
"Anna-Maria Behnsen" <anna-maria@linutronix.de>,
"John Stultz" <jstultz@google.com>,
"Stephen Boyd" <sboyd@kernel.org>,
dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org,
rust-for-linux@vger.kernel.org, beata.michalska@arm.com,
lyude@redhat.com, acourbot@nvidia.com, work@onurozkan.dev,
alvin.sun@linux.dev
Subject: Re: [PATCH v4 00/20] drm/tyr: firmware loading and MCU boot support
Date: Mon, 27 Apr 2026 10:07:04 +0200 [thread overview]
Message-ID: <20260427100704.02190859@fedora> (raw)
In-Reply-To: <20260424-b4-fw-boot-v4-v4-0-a5d91050789d@collabora.com>
On Fri, 24 Apr 2026 16:38:54 -0700
Deborah Brouwer <deborah.brouwer@collabora.com> wrote:
> 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
This series starts to be quite big, and it seems new features have been
added to v4 (interactions with the FW). I'd recommend that we extract
the uncontroversial bits (I'd say patch 1-2, 4-7) or have them applied
to drm-rust-next right away. I know it's tempting to add features
between revisions, but the more you do that the longer it will take to
get the foundation merged.
prev parent reply other threads:[~2026-04-27 8:07 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
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 ` Boris Brezillon [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260427100704.02190859@fedora \
--to=boris.brezillon@collabora.com \
--cc=a.hindborg@kernel.org \
--cc=acourbot@nvidia.com \
--cc=airlied@gmail.com \
--cc=aliceryhl@google.com \
--cc=alvin.sun@linux.dev \
--cc=anna-maria@linutronix.de \
--cc=beata.michalska@arm.com \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun@kernel.org \
--cc=dakr@kernel.org \
--cc=daniel.almeida@collabora.com \
--cc=deborah.brouwer@collabora.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=frederic@kernel.org \
--cc=fujita.tomonori@gmail.com \
--cc=gary@garyguo.net \
--cc=jstultz@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lossin@kernel.org \
--cc=lyude@redhat.com \
--cc=ojeda@kernel.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=sboyd@kernel.org \
--cc=simona@ffwll.ch \
--cc=tglx@kernel.org \
--cc=tmgross@umich.edu \
--cc=work@onurozkan.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox