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.092.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/
诺基亚不复当年勇,低调进军物联网
对于智能锁,真插芯真的比假插芯更加安全吗
何谓芯片的“时钟”?芯片时钟是怎么一回事?
恒温恒湿试验箱的作用
中国四个厂商占据印尼智能手机市场份额75%
Rockchip rk3588 U-Boot详解(一)
光伏逆变器的散热,了解一下?不烫手的密码
MOEMS气体传感技术研究进展
基于一个建立在以太坊智能合约上的ENS域名系统介绍
第五届区块链全球峰会正式开幕,IoT+区块链助力万物安全管理
过滤式手柄焊接球阀产品性能特征
二次回流焊无铅焊锡膏解决方案
关于Oculus Go,卡马克主要谈了五点
iPhone8什么时候上市最新消息:iPhone8真机曝光!八曲面屏+全虚拟键+性能逆天,你不买吗?
2015-2020年MEMS器件市场预判分析概述
利用Linux开发板为TLV320ADC5120开发Linux内核驱动的方法
英特尔顾问屋顶线分析
USB 3.0是什么?你能用它来干什么?
电池接线片的电容放电焊机的制作
细谈SDN/NFV目前难以突破的难点