Rockchip rk3588 U-Boot详解 (一)

文章介绍了U-Boot作为Linux系统的bootloader的角色,以及Rockchip和ArmSoM提供的不同版本U-Boot的特点。Rockchip的UBoot版本专门针对其芯片进行优化,而ArmSoM则在其基础上添加对自有开发板的支持。文章讨论了如何根据开发需求选择合适的U-Boot版本,并提到ArmSoM对NVMe启动的支持和其RK3588开发板的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. U-Boot 简介

    Linux 系统要启动就必须需要一个 bootloader 程序,也就说芯片上电以后先运行一段bootloader 程序。这段bootloader程序会先初始化DDR等外设,然后将Linux内核从flash(NAND,NOR FLASH,SD,MMC 等)拷贝到 DDR 中,最后启动 Linux 内核。当然了,bootloader 的实际工作要复杂的多,但是它最主要的工作就是启动 Linux 内核,bootloader 和 Linux 内核的关系就跟 PC 上的 BIOS 和 Windows 的关系一样,bootloader 就相当于 BIOS。所以我们要先搞定bootloader,很庆幸,有很多现成的 bootloader 软件可以使用,比如 U-Boot、vivi、RedBoot 等等,其中以 U-Boot 使用最为广泛
   U-Boot 的全称是 Universal Boot Loader,uboot 是一个遵循 GPL 协议的开源软件,uboot 是一个裸机代码,可以看作是一个裸机综合例程。现在的 uboot 已经支持液晶屏、网络、USB 等高
级功能。uboot 官网为 http://www.denx.de/wiki/U-Boot/,如图所示:
在这里插入图片描述

2. Rockchip, ArmSoM, U-Boot官方提供的区别

在这里插入图片描述
2.1 uboot 官方的 uboot 代码
    目前U-Boot最新的版本是 2023.07。但是我们一般不会直接用 uboot 官方的 U-Boot 源码的。uboot 官方的 uboot 源码是给半导体厂商准备的,半导体厂商会下载 uboot 官方的 uboot 源码,然后将自家相应的芯片移植进去。也就是说半导体厂商会自己维护一个版本的 uboot,这个版本的 uboot 相当于是他们定制的。既然是定制的,那么肯定对自家的芯片支持会很全,虽然 uboot 官网的源码中一般也会支持他们的芯片,但是绝对是没有半导体厂商自己维护的 uboot 全面。
    为做对比把官方的代码切换到v2017.09

# git checkout v2017.09

2.2 Rockchip 提供的UBoot
    Rockchip 就维护的 U-Boot 官⽅的 v2017.09 正式版本中切出来进⾏开发的版本,⽬前已经⽀持 RK 所有主流在售芯⽚。⽀持的功能主要有:

  • ⽀持 RK Android 固件启动;
  • ⽀持 Android AOSP 固件启动;
  • ⽀持 Linux Distro 固件启动;
  • ⽀持 Rockchip miniloader 和 SPL/TPL 两种 Pre-loader 引导;
  • ⽀持 LVDS、EDP、MIPI、HDMI、CVBS、RGB 等显⽰设备;
  • ⽀持 eMMC、Nand Flash、SPI Nand flash、SPI NOR flash、SD 卡、 U 盘等存储设备启动;
  • ⽀持 FAT、EXT2、EXT4 ⽂件系统;
  • ⽀持 GPT、RK parameter 分区表; ⽀持开机 LOGO、充电动画、低电管理、电源管理;
  • ⽀持 I2C、PMIC、CHARGE、FUEL GUAGE、USB、GPIO、PWM、GMAC、eMMC、NAND、 Interrupt 等;
  • ⽀持 Vendor storage 保存⽤⼾的数据和配置;
  • ⽀持 RockUSB 和 Google Fastboot 两种 USB gadget 烧写 eMMC;
  • ⽀持 Mass storage、ethernet、HID 等 USB 设备;
  • ⽀持通过硬件状态动态选择 kernel DTB;

2.3 ArmSoM提供的UBoot
    如果是我们自己(ArmSoM)做的板子就需要修改 Rockchip 官方的 uboot,使其支持我们自己做的板子,ArmSoM的 ArmSoM-W3(rk3588) 开发板就是自己做的板子,虽然大部分都参考了 Rockchip官方的RK3588-EVB 开发板,但是还是有很多不同的地方,所以需要修改 Rockchip官方的 uboot,使其适配ArmSoM-W3 开发板。所以当我们拿到开发板以后是有三种 uboot ,这三种 uboot的区别如表

种类(跳转github仓库)描述
uboot 官方的 uboot 代码由 uboot 官方维护开发的 uboot 版本,版本更新快,基本包含所有常用的芯片。
半导体厂商的 uboot 代码半导体厂商维护的一个 uboot,专门针对自家的芯片,在对自家芯片支持上要比 uboot 官方的好。
ArmSoM提供的 uboot 代码ArmSoM开发板厂商在半导体厂商提供的 uboot 基础上加入了对自家开发板的支持。

3. 如何选择UBoot

    那么这三种 uboot 该如何选择呢?首先 uboot 官方的基本是不会用的,因为支持太弱了。
最常用的就是半导体厂商或者开发板厂商的 uboot,如果你用的半导体厂商的评估板,那么就使
用半导体厂商的 uboot,如果你是购买的第三方开发板,比如ArmSoM的 ArmSoM-W3 开发板,
那么就使用ArmSoM提供的 uboot 源码(也是在半导体厂商的 uboot 上修改的)。当然了,你也
可以在购买了第三方开发板以后使用半导体厂商提供的 uboot,只不过有些外设驱动可能不支
持,需要自己移植,这个就是我们常说的 uboot 移植。

4. ArmSoM UBoot 的支持

    ArmSoM UBoot 在Rockchip官方提供的UBoot基础上针对我们的开发板增加

  • 支持PCIE30的NVMe启动
  • 持续开发中

5. ArmSoM-W3 RK3588 开发板

ArmSoM-W3开发板基于Rockchip新一代旗舰 RK3588处理器开发,采用核心板+底板的分体式设计,将RK3588核心板的全部功能引脚以最便利的方式引出,并针对不同的功能做了深度优化,方便用户二次开发的同时简化用户设计,为您的项目评估提供良好的评估及设计依据。 支持8K超清显示,四屏异显,配备丰富的高速数据通讯接口,满足用户多样化需求;本产品经由严苛测试,可为您的高端应用提供稳定性能支撑。
在这里插入图片描述
ArmSoM wiki:http://wiki.armsom.org/index.php/Getting_Started_with_ArmSoM-w3
ArmSoM forum:http://forum.armsom.org/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ArmSoM开源硬件

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

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

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

打赏作者

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

抵扣说明:

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

余额充值