Alyssa Rosenzweig于2018年创立开源小组,通过对用户空间的3D驱动、kernel空间的ARM驱动进行逆向操作,重新构建panfrost驱动。

在XDC2020会议上ARM宣布,开始接纳panfrost开源驱动并向其提供应有的技术支持。
author Rob Herring <robh@kernel.org> 2018-09-10 14:27:58 -0500
committer Rob Herring <robh@kernel.org> 2019-04-12 12:56:46 -0500
commit f3ba91228e8e917e5bd6c4b72bfe846933d17370 (patch)
tree a3018f0b197cd1b6cb0f90e44c28da30219ac18e /drivers/gpu/drm/panfrost
parent c117aa4d8701a713e6dee82657291ae26f0c3c7c (diff)
download linux-f3ba91228e8e917e5bd6c4b72bfe846933d17370.tar.gz
drm/panfrost: Add initial panfrost driver
panfrost支持ARM Midgard和Bifrost两大架构系列的GPU。对于老一些的ARM Utgard GPU,panfrost并不支持,该架构系列的GPU开源驱动代码为Lima。
Panfrost Backend
Panfrost driver NIR
Gallium Compiler
Mesa
User-space libdrm
----------------------------------------------------------------
Kernel Kernel drm
ARM GPU支持的GPU库包括:
- Vulcan
- OpenGL ES
- OpenCL
- SPIR-V
Panfrost目前可以运行简单的3D应用程序,如kmscube,基于Wayland的Weston桌面,甚至更复杂的3D基准测试,如glmark2。
代码库地址:
https://gitlab.freedesktop.org/panfrost
panfrost kernel driver
像arm SoC上的许多其他外设一样,GPU也是一种内存映射设备。panfrost kernel驱动向上为OS提供功能接口,向下提供硬件访问的接口。主要包括:
- GPU功耗管理
- 硬件初始化
- GEM 组件管理
- GPU线程管理
- MMU配置及管理
- GPU中断管理
panfrost kernel驱动从用户空间接收任务,完成内存buffer的分配,设置MMU的页表映射,最后将任务挂载到GPU硬件同时控制GPU的硬件行为。
转载请注明:XAMPP中文组官网 » ARM Mali系列GPU的开源驱动代码