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()
Dependencies: - [PATCH v7 0/7] Rust bindings for gem shmem + iosys_map https://lore.kernel.org/rust-for-linux/[email protected]/ - [PATCH v4 0/6] Rust GPUVM immediate mode https://lore.kernel.org/rust-for-linux/[email protected]/ - [PATCH v5 0/4] Introduce DeviceContext https://lore.kernel.org/rust-for-linux/[email protected]/ 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 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/[email protected]/ --- Beata Michalska (1): drm/tyr: set DMA mask using GPU physical address Boris Brezillon (5): drm/tyr: select DRM abstractions 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 (2): drm/tyr: add MMU address space registers drm/tyr: add parser for firmware binary Deborah Brouwer (4): 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 drivers/gpu/drm/tyr/Kconfig | 15 +- drivers/gpu/drm/tyr/driver.rs | 53 +- drivers/gpu/drm/tyr/fw.rs | 270 ++++++++ drivers/gpu/drm/tyr/fw/parser.rs | 519 +++++++++++++++ drivers/gpu/drm/tyr/gem.rs | 154 ++++- drivers/gpu/drm/tyr/gpu.rs | 2 - drivers/gpu/drm/tyr/mmu.rs | 122 ++++ drivers/gpu/drm/tyr/mmu/address_space.rs | 493 ++++++++++++++ drivers/gpu/drm/tyr/regs.rs | 101 ++- drivers/gpu/drm/tyr/slot.rs | 436 +++++++++++++ drivers/gpu/drm/tyr/tyr.rs | 4 + drivers/gpu/drm/tyr/vm.rs | 794 +++++++++++++++++++++++ 12 files changed, 2933 insertions(+), 30 deletions(-) create mode 100644 drivers/gpu/drm/tyr/fw.rs create mode 100644 drivers/gpu/drm/tyr/fw/parser.rs create mode 100644 drivers/gpu/drm/tyr/mmu.rs create mode 100644 drivers/gpu/drm/tyr/mmu/address_space.rs create mode 100644 drivers/gpu/drm/tyr/slot.rs create mode 100644 drivers/gpu/drm/tyr/vm.rs -- 2.52.0
