Rockchip RK3588 - Mali-G610 GPU驱动(mesa+Panthor)

在两年前,我们介绍了如何移植ARM Mali GPU的开源驱动到NanoPC-T4开发板,具体可以参考《Rockchip RK3399 - Mali-T860 GPU驱动(mesa+Panfrost)》。

今天呢,我们就来谈一谈如何将ARM Mali GPU开源驱动到ArmSoM-Sige7开发板。

一、GPU驱动回顾

我们在《Rockchip RK3399 - Mali-T860 GPU驱动(mesa+Panfrost)》中介绍了ARM Mali GPU开源驱动的由来,其重要包含两部分:

  • 内核层GPU驱动:
    • Lima驱动支持Utgard Mali GPUMali-400 / Mali-450 GPU(Linux 5.2+);
    • Panfrost驱动支持MidgardBifrostValhall Mali GPUMali-Gxx GPUMali-T6xx / Mali-T7xx / Mali-T8xx GPU(Linux 5.2+);
    • Panthor驱动为新一代的开源驱动,专门为未来基于ARM最新GPU架构(如Valhall和后续架构)的Mali GPU 而设计(Linux 6.10+);
  • 用户层动态库:Usersacpe部分的开源库叫做mesa,对Mali GPU的支持从mesa 19.2开始。
1.1 Panfrost

Panfrost是一个开源的自由及开放源代码软件(FOSS)图形驱动项目,旨在为ARM Mali系列GPU提供在Linux系统上的支持。它包含在Mesa 3D图形库中,是 Linux开源图形栈的核心组成部分。

Panfrost最初是通过对ARM Mali GPU的硬件行为和官方闭源驱动进行逆向工程而开发的。这是一个由社区推动的巨大成就。它支持多代Mali GPU架构:、

  • Midgard(例如Mali-T760, T860);
  • Bifrost(例如Mali-G31, G52);
  • Valhall(例如Mali-G57,G310):注意:对Valhall的早期支持是在Panfrost内开始的,但现在发展的重点已经转移到了Panthor上。

作为Mesa的一部分,Panfrost已经进入了几乎所有主要的Linux发行版。

Panfrost驱动程序栈包括基于MidgardBifrostValhalla 微架构的ARM Mali GPUOpenGL ES实现,目前支持以下硬件:

GPUArchitectureFound in SoCMesa versionNotes
T600Midgard (v4)Exynos 525024.1+
T620Midgard (v4)Exynos 5420/5422/5430/580022.3+
T720Midgard (v4)Exynos 7580, MT6735, and MT675320.0+
T760Midgard (v5)RK328819.3+
T820Midgard (v5)S91219.3+
T830Midgard (v5)Kirin 65x22.0+
T860Midgard (v5)RK339919.3+
T880Midgard (v5)Kirin 95x and MediaTek Helio X20/X2722.0+
G31Bifrost (v7)Amlogic S905, RK3326 and Allwinner H616 SoC20.3kernel 5.10+
G51Bifrost (v7)Kirin 71022.0
G52Bifrost (v7)Amlogic S922, RK3530, Kirin 810 and Helio P65/G70/G80/G8520.3kernel 5.10+
G52r1Bifrost (v7)RK3566 and RK356821.2
G57Valhall (v9)MediaTek MT819222.2+kernel 5.20+
G72Bifrost (v6)Exynos 7 9610, Exynos 9 9810, Helio P60/P70 and Kirin 97020.3kernel 5.10+
G76Bifrost (v7)elio G90T/G9522.0
G310Valhall (v10)RK368824.1+kernel 6.10+
G610Valhall (v10)RK358824.1+kernel 6.10+
G7205th Gen (v12)25.1+kernel TBD - Requires patch series to be merged: https://lwn.net/Articles/1023522/
G7255th Gen (v13)25.1+kernel TBD - Requires patch series to be merged: https://lwn.net/Articles/1023522/
1.2 Panthor

PanthorARM公司推出的Mali GPU开源驱动项目,主要用于替代传统闭源驱动,支持Linux系统下的OpenGLVulkan图形渲染。

  • 目标硬件:主要针对Valhall以及其后续架构,例如瑞芯微、全志等国产芯片方案中集成的Mali GPU(例如Mali-G31Mali-G52Mali-G710等);
  • 驱动类型:它是一个完全开源、符合现代Linux内核标准的GPU驱动。

Panthor目前处于积极开发阶段,它在Linux 6.10版本中引入。在最新的Linux内核和Mesa版本中,它已经提供了基本的功能(2D/3D 加速),并且性能和改进正在快速推进。

1.3 区别

我们来详细解释一下PanthorPanfrost这两个与ARM Mali GPU相关的开源驱动程序。

简单来说:

  • Panfrost是现有的、已经成熟的开源驱动,支持从较旧到较新的多代Mali GPUPanfrost已经非常成熟和稳定,对于MidgardBifrost架构的GPU,它提供了优秀的日常使用体验和良好的性能。对于早期的Valhall GPU,它也能提供基本功能,但更高级的功能和优化正在Panthor中实现;
  • Panthor是新一代的开源驱动,专门为未来基于ARM最新GPU架构(如Valhall和后续架构)的Mali GPU 而设计;
    • Panthor是继Panfrost之后的新一代开源GPU驱动,同样集成在Mesa中;
    • Panthor并非完全取代Panfrost,对于MidgardBifrost GPUPanfrost仍然是主要且推荐的驱动,Panthor是为新硬件准备的“接班人”。

为什么需要Panthor

  • 随着GPU架构从Bifrost演进到Valhall,硬件的工作方式和特性发生了显著变化。继续在旧的Panfrost驱动代码上修修补补来支持新硬件会变得非常低效和混乱。因此,驱动开发者决定“另起炉灶”:
  • 更清晰的代码结构:Panthor从头开始设计,代码库更干净、更模块化,便于维护和为新硬件添加支持;
  • 利用现代GPU特性:Valhall架构引入了新的着色器核心、新的指令集和新的内存管理单元(MMU)。Panthor能够更好地利用这些特性,以实现更高的性能和更低的功耗。
  • 支持新功能:例如Vulkan 1.3 API的支持是Panthor的一个关键目标。虽然Panfrost主要专注于OpenGL ES,但Panthor旨在同时提供高质量的Vulkan OpenGL ES支持。
  • 统一内存管理:Panthor引入了更现代和高效的GPU内存管理方法,这对于性能和多任务处理至关重要。

二、GPU驱动移植

RK3588搭载了Mail-G610。我们下载 Linux 6.16.12源码:https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.16.12.tar.xz

Panthor驱动源代码仓库,位于drivers/gpu/drm/panthor目录下。

参考文章:

[1] Rockchip RK3399 - Mali-T860 GPU驱动(mesa+Panfrost)

[2] RK3588关于panthor驱动的移植

[3] ARM Mali GPU Upstream software, aka Lima/Panfrost

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Graceful_scenery

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值