近日,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