Skip to content
Snippets Groups Projects
Commit 96d7356d authored by Daniel Almeida's avatar Daniel Almeida
Browse files

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 a few IOCTLs are implemented. There is an igt
  branch with tests.

- Basic iomem and register set implementation, so it's possible to program
the device.

- IRQ handling, so we can receive notifications from the device.

- We can boot the firmware.

- We can communicate with CSF using the global interface. We can submit
  requests and the MCU will appropriately respond in the ack field.

- There is GEM_CREATE and VM_BIND support.
- We can send a PING request to CSF, and it will acknowledge it
  successfully.

Notably missing (apart from literally everything else):
- Job subission logic through drm_scheduler and completion through dma_fences
- 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: default avatarAlice Ryhl <alice.ryhl@google.com>
Signed-off-by: default avatarAlice Ryhl <alice.ryhl@google.com>
Signed-off-by: default avatarDaniel Almeida <daniel.almeida@collabora.com>
parent 4fc4b8d4
No related branches found
No related tags found
Loading
Showing
with 3186 additions and 0 deletions
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment