Introduce Tyr
Rust driver for ARM Mali CSF-based GPUs The skeleton is basically taken from Nova and also rust_platform_driver.rs. So far, this is just a very early-stage experiment, but it looks promissing: - We use the same uAPI as Panthor, although this needs a bit of work, since bindgen cannot translate #defines into Rust. - The DRM registration and IOCTL boilerplate is implemented. We can test devquery using igt. - Basic iomem and register set implementation, so it's possible to program the device. We can even attest that it works already. - IRQ handling, so we can receive notifications from the device. - We can boot the firmware. Notably missing (apart from literally everything else): - Job subission logic through drm_scheduler and completion through dma_fences - VM_BIND support through drm_gpuvm - Devfreq, pm_idle, etc. The name "Tyr" is inspired by Norse mythology, reflecting ARM's tradition of naming their GPUs after Nordic mythological figures and places. Co-developed-by:Alice Ryhl <alice.ryhl@google.com> Signed-off-by:
Alice Ryhl <alice.ryhl@google.com> Signed-off-by:
Daniel Almeida <daniel.almeida@collabora.com>
Showing
- drivers/gpu/drm/Kconfig 2 additions, 0 deletionsdrivers/gpu/drm/Kconfig
- drivers/gpu/drm/Makefile 1 addition, 0 deletionsdrivers/gpu/drm/Makefile
- drivers/gpu/drm/tyr/Kconfig 31 additions, 0 deletionsdrivers/gpu/drm/tyr/Kconfig
- drivers/gpu/drm/tyr/Makefile 3 additions, 0 deletionsdrivers/gpu/drm/tyr/Makefile
- drivers/gpu/drm/tyr/driver.rs 244 additions, 0 deletionsdrivers/gpu/drm/tyr/driver.rs
- drivers/gpu/drm/tyr/file.rs 58 additions, 0 deletionsdrivers/gpu/drm/tyr/file.rs
- drivers/gpu/drm/tyr/fw.rs 653 additions, 0 deletionsdrivers/gpu/drm/tyr/fw.rs
- drivers/gpu/drm/tyr/gem.rs 96 additions, 0 deletionsdrivers/gpu/drm/tyr/gem.rs
- drivers/gpu/drm/tyr/gpu.rs 262 additions, 0 deletionsdrivers/gpu/drm/tyr/gpu.rs
- drivers/gpu/drm/tyr/mmu.rs 839 additions, 0 deletionsdrivers/gpu/drm/tyr/mmu.rs
- drivers/gpu/drm/tyr/regs.rs 229 additions, 0 deletionsdrivers/gpu/drm/tyr/regs.rs
- drivers/gpu/drm/tyr/tyr.rs 42 additions, 0 deletionsdrivers/gpu/drm/tyr/tyr.rs
- include/uapi/drm/panthor_drm.h 5 additions, 0 deletionsinclude/uapi/drm/panthor_drm.h
- rust/bindings/bindings_helper.h 2 additions, 0 deletionsrust/bindings/bindings_helper.h
- rust/kernel/device.rs 1 addition, 1 deletionrust/kernel/device.rs
- rust/kernel/platform.rs 2 additions, 1 deletionrust/kernel/platform.rs
- rust/uapi/uapi_helper.h 1 addition, 0 deletionsrust/uapi/uapi_helper.h
Loading
Please register or sign in to comment