Rockchip rk3588 U-Boot详解 (一)

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/

  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Rockchip RK3588是一款高性能的芯片,主要用于移动设备和嵌入式系统。它支持USB接口,可以用于连接外部设备,并进行数据传输和通信。 关于Rockchip RK3588 USB开发指南,以下是一些建议和指导: 1. 创建USB连接:首先,需要在嵌入式系统中创建一个USB连接。这可以通过配置硬件和软件来完成。硬件方面,需要确保RK3588芯片和USB接口的正确连接。软件方面,可以使用相应的驱动程序和库来管理和控制USB连接。 2. USB驱动程序开发:为了实现与外部设备的数据交换,需要编写USB驱动程序。这些驱动程序可以通过使用底层的USB协议和API来完成。可以选择使用已有的USB驱动程序框架,如libusb等,也可以根据具体需求自行编写驱动程序。 3. 数据传输和通信:一旦USB连接建立并配置完毕,就可以通过USB接口进行数据传输和通信。可以使用USB的各种传输模式,如批量传输、中断传输或等时传输,根据实际需求选择合适的模式。 4. USB设备接口开发:如果需要将RK3588芯片作为USB设备使用,还需要进行USB设备接口开发。可以根据设备规范和需求,设计并实现相应的USB接口。 5. 软件开发工具:为了更便捷地进行Rockchip RK3588 USB开发,可以使用相应的软件开发工具。Rockchip提供了开发工具包(SDK)和调试工具,可以加快开发过程,并提供调试和优化的功能。 总之,Rockchip RK3588 USB开发指南涵盖了创建USB连接、USB驱动程序开发、数据传输和通信、USB设备接口开发等内容。通过合理的设计和开发,可以充分利用RK3588的强大性能和USB接口的灵活性,实现丰富的移动设备和嵌入式系统功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ArmSoM开源硬件

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

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

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

打赏作者

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

抵扣说明:

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

余额充值