ARM Mali Midgard GPU driver packages in Debian (work in progress)
The ARM Mali Midgard GPU series include all the devices from Mali-T604 to Mali-T880.
More general information about the ARM Mali technology can be found on Wikipedia.
The first phase is to get something that works on one platform, the original Firefly board (rk3288 SoC, ARMv7 Cortex-A17). Current status:
Step |
Status |
Resources |
1. Merge the device tree patches into mainline kernel |
Done |
rockchip for v4.13 now merged in v4.13-rc1 |
2. Add backports for patches in step 1. to the Debian 4.9 and 4.11 kernel packages |
Done |
|
3. Create a mali-midgard-dkms package for Debian kernel v4.9 |
Done |
|
4. Create a user-space non-free package for RK3288 SoC (Mali-T760 armhf) |
In progress |
Mainline kernel branch with Mali Midgard driver, tested on Firefly: linux-4.13-rc6-mali-firefly
Related bug fix, to get the GPU regulator driver to load automatically on Firefly: regulator driver fix for mainline
Then adding an arm64 platform such as Juno would make sense as a second phase:
- Merge the device tree GPU node for the Juno chip in mainline
- Update the mali-midgard-dkms package if needed so that it builds for arm64
- Add backport from step 1. to the Debian 4.9 kernel package
- Create a user-space non-free package for the Juno SoC (Mali-T624 arm64)
Following that, new platforms and new versions of the kernel and user-space drivers can be added.
placeholder documentation
Linux kernel patches
The only kernel patches required are in the device tree. A patch is needed on each platform type to describe the GPU hardware properties.
Kernel module (dkms)
This will be provided by the mali-midgard-dkms package. This single out-of-tree Linux kernel driver supports all the Midgard GPU device types.
User-space drivers (non-free)
These will depend on the available binary user-space libraries. Each binary targets a specific GPU type, CPU architecture, display sub-system, windowing system (X11, Wayland, ...) and graphics or compute APIs (GLES, Vulkan, OpenCL...).