Collabora has announced the readiness of the panthor open driver, developed for the tenth generation Mali GPUs (G310, G510, G710), which employs CSF (Command Stream Frontend) technology. This technology shifts some driver functions to the firmware side to reduce CPU load and offers a new model for organizing task execution on the GPU. The panthor DRM driver (Direct Rendering Manager) has been accepted into the drm-misc branch and is expected to be included in the Linux kernel 6.10. Changes to support the new driver have also been accepted in Mesa and included in the Gallium panfrost driver for Mali GPUs.
In the new generation of Mali GPUs, the Job Manager scheduler has been replaced with the CSF (Command Stream Frontend) interface. Instead of a task chain submission model, it utilizes a command stream model with command queue scheduling on the firmware side. A separate Cortex-M7 microcontroller is built into the GPU to manage scheduler operations, and a special Command Execution Unit is provided for executing CSF instructions. These features necessitate a fundamentally different organization for task transmission into the GPU from user space.
Initially, there was an attempt to implement support for Mali GPUs based on CSF in the Panfrost DRM driver. However, developers concluded that this would significantly complicate the existing driver, and it is more optimal for CSF to create a new driver built using a different architecture. The panthor driver features a completely new uAPI, a new task scheduling logic, and a new MMU/GPU-VA management logic. The existing code of the Panfrost DRM driver has served as the basis for the new driver, from which typical initialization templates, frequency management, and power management processes have been adapted.
Initially, the development of the new driver was conducted using reverse engineering, but then ARM joined the project, provided access to documentation, and participated in code reviews. Two ARM employees were awarded the status of co-maintainers for the Linux kernel driver. Moving forward, after the OpenGL driver is ready, efforts will shift towards implementing a Vulkan driver for new Mali GPUs and upgrading the existing Vulkan driver for older Mali GPUs.
It is noted that the prepared panthor driver provides GPU support for boards with the Rockchip RK3588 SoC. Collabora has also worked on enabling the boot of Rockchip RK3588-based boards using a fully open software stack. For the Rockchip RK3588, a system image based on Debian and an open bootloader have been prepared to replace proprietary components BL31 (Boot Loader stage 3.1).
Source: opennet.ru
