Open Source Mali Utgard GPU Kernel Drivers

Open Source Mali Utgard GPU Kernel Drivers

Source code for Mali GPUs Kernel Device Drivers, UMP Device Drivers and DRM Device Drivers under GPLv2 licence

The Linux and Android version of the Mali GPUs DDKs include three components which run within the kernel. The most important of these, known as the Device Driver, provides the low-level access to the Mali-400 and Mali-450 GPU. An important, secondary component is the Unified Memory Provider (UMP) which can be used in a variety of ways to facilitate zero-copy operations within the driver stack. An additional component, the Mali Direct Rendering Manager (DRM), is provided to integrate the Mali GPU DDKs into the X11 environment and for enabling the Direct Rendering Interface (DRI2).

Some of these components are being made available under the GPLv2 licence. This page provides access to the source packages from which loadable kernel modules can be built.

Note that these components are not a complete driver stack. To build a functional OpenGL ES or OpenVG driver you need access to the full source code of the Mali GPU DDK, which is provided under the standard Arm commercial licence to all Mali GPU customers. For a complete integration of the Mali GPU DDK with the X11 environment refer to the Integration Guide supplied with the Mali GPU DDK.

The open source drivers provided on this page are designed to run with a version-compatible release of the Mali GPU DDK. In functional and performance terms they are identical to the implementations provided under the commercial licence. By also releasing them under the GPLv2 licence we hope to make it easier to include Mali GPU drivers in any Linux or Android platform.

Happy Hacking!


The Mali GPU kernel device driver handles:

  • Access to the Mali GPU hardware
  • Interrupt handling
  • Low level memory management

The UMP kernel device driver handles:

  • Access to allocated UMP memory through a secure ID. This enables memory to be shared across different applications, drivers and hardware components to facilitate zero-copy operations
  • The physical address information required to set up an MMU or MPU table
  • A method to map UMP memory into CPU address space, to enable reading and writing

Download GPU Kernel Device Drivers

By downloading the packages below you acknowledge that you accept the End User License Agreement for the Mali GPUs Kernel Device Drivers Source Code.

DX940-SW-99002-r13p0-01eac0.tar GPU Linux Kernel Device Drivers r13p0-01eac0 (Released on 29th September 2022) 1.60 MB
DX940-SW-99002-r12p0-01eac0.tar GPU Linux Kernel Device Drivers r12p0-01eac0 (Released on 29th November 2021) 288 KB
DX940-SW-99002-r11p0-01eac0.tar GPU Linux Kernel Device Drivers r11p0-01eac0 (Released on 28th September 2020) 2.20 MB
DX910-SW-99002-r10p0-00rel0.tgz GPU Linux Kernel Device Drivers r10p0-00rel0 (Released on 26th September 2019) 326 KB
DX910-SW-99002-r9p0-01rel0.tgz Linux kernel r9p0 released on 17th September 2018 332 KB
DX910-SW-99002-r8p1-00rel0.tgz Linux kernel r8p1 released on 11th January 2018 331 KB
DX910-SW-99002-r8p0-01rel0.tgz Linux (released on 15 Sep 2017) 342 KB
DX910-SW-99002-r7p0-00rel1.tgz Linux (released on 20 Jan 2017) 302 KB
DX910-SW-99002-r7p0-00rel0.tgz Linux (Released 13 Sep 2016) 303 KB
DX910-SW-99002-r6p2-01rel0.tgz Linux (Released 14 Jul 2016) 306 KB
DX910-SW-99002-r6p1-01rel0.tgz Linux (Released 2 Mar 2016) 301 KB
DX910-SW-99002-r6p0-01rel1.tgz Linux (Released 13 Jan 2016) 290 KB
DX910-SW-99002-r6p0-01rel0.tgz Linux (Released 10 Nov 2015) 290 KB
DX910-SW-99002-r5p2-00rel0.tgz Linux (Released 19 May 2015) 264 KB
DX910-SW-99002-r5p1-01rel0.tgz Linux (Released 17 Mar 2015) 257 KB
DX910-SW-99002-r5p0-01rel0.tgz Linux (Released 11 Nov 2014) 255 KB
DX910-SW-99002-r4p1-01rel0.tgz Linux (Released 07 Jul 2014) 245 KB
DX910-SW-99002-r4p0-00rel1.tgz Linux (Released 6 May 2014) 246 KB