TH1520的含金量还在增加:软件生态持续扩展,U-Boot 上游接收多笔补丁
近日,U-Boot next 分支合并了一笔新的 maintainer 变更补丁,接收来自苦芽科技的工程师 ziyao 酱成为 U-Boot TH1520 maintainer[0]。这标志着 TH1520 的开源软件生态建设又向前迈了一小步。
根据 U-Boot 的项目官方介绍[1],U-Boot 全称 Universal Bootloader,是一个能运行在大多数嵌入式系统上的引导加载器。支持包括 ARM,x86,RISC-V 在内的多种架构和超过 1200 种板卡。它提供了一个功能丰富的命令行界面,支持运行脚本,读写文件系统和访问网络,并能够启动 Linux,Androird,ChromeOS 等操作系统。在 RISC-V 开发板生态中有着广泛的应用。
TH1520 是首款基于无剑 600 SoC 平台设计的量产多模态 AI 视觉 RISC-V 处理器芯片。该芯片基于玄铁 C910 内核 ,最高主频可达 2.5GHz[2]。常见的开发板包含矽速科技的荔枝派 4A(LicheePi 4A)和群芯闪耀(Milk-V)的 Meles 开发板。
到目前为止,TH1520 / LicheePi4A / Meles 在 U-Boot upstream 上已经被接受的贡献有:
- Lichee Pi 4A 板卡的初步支持,通过下游 U-Boot 链式加载主线 U-Boot,初步实现了 U-Boot 的启动。
- eMMC 与 SD 卡控制器的支持,移植了 TH1520 所使用的控制器驱动,支持读写 eMMC 与 SD 卡。
- U-Boot SPL (Secondary Program Loader,第二程序加载器)在 TH1520 上的移植,主线 U-Boot 至此能够不依赖下游 U-Boot,直接通过 USB 端口或板载 eMMC 加载镜像并运行。
- DDR 控制器的初始化支持,主线 U-Boot 支持初始化 TH1520 的 DDR 控制器并能够进行内存训练,不依赖下游 U-Boot 独自完成初始化工作。
- AP 子系统时钟控制器的支持,能够开启和关闭时钟门,设置时钟多选器选择的父时钟,支持动态计算时钟频率而无需在源码中硬编码频率。
TH1520 的启动流程修改,在下游 U-Boot 与此前的主线 U-Boot 中,U-Boot 被 SPL 加载后均运行在 M 模式,而包括 UEFI 应用在内的大部分 RISC-V 系统软件需要在 S 模式下运行。经过该修改,主线 TH1520 会在 SPL 完成初始化后调用 OpenSBI 并切换到 S 模式,满足更多程序的环境要求。
其中,ziyao 酱在过去的两个月中,贡献了 SPL 实现,DDR 控制器初始化支持,AP 时钟控制器支持并修改了 TH1520 的启动流程。由于其稳定持续的投入,获得了社区的认可,成为了 TH1520 maintainer。
ziyao 酱表示 RISC-V 是一个充满活力,没有高墙的社区,对新开发者非常友好。希望更多开发者加入,来感受 RISC-V 社区的开放魅力。
参考文件:
[0]:MAINTAINERS: riscv: cpu: th1520: Assign myself as maintainer
[1]:https://www.u-boot.org/
[2]:https://www.xrvm.cn/document?temp=light&slug=cloudlab