一、uboot简介
Linux 启动需要一个 bootloader 程序,也就说芯片上电以后先运行一段bootloader 程序。这段bootloader程序会先初始化DDR等外设,然后将Linux内核从flash(NAND, NOR FLASH, SD, MMC 等)拷贝到 DDR 中,最后启动 Linux 内核。 bootloader 的实际工作要复杂的多,但是它最主要的工作就是启动 Linux 内核, bootloader 和 Linux 内核的关系就跟 PC 上的 BIOS 和 Windows 的关系一样, bootloader 就相当于 BIOS。
二、uboot下载
官方地址:
The U-Boot Documentation — Das U-Boot unknown version documentation
下载地址:
三、uboot常用命令
help或?
bdinfo # 查看板子信息
printenv # 输出环境变量
version # 输出版本号
setenv # 设置环境变量
saveenv # 保存环境变量。一般环境变量存放在外部 flash 中,启动时再读取到 DRAM 中,所以 setenv 修改的是 DRAM中的环境变量值,注意保存。
md #用于显示内存值
四、uboot移植总结
1)不管是购买的开发板还是自己做的开发板,基本都参考半导体厂商的demo板,而半导体厂商会在他们自己的开发板上移植好uboot、linux kernel和rootfs等,最终制作好BSP包提供给用户。我们可以在官方提供的BSP包的基础上添加我们的板子,也就是俗称的移植。
2)我们购买的开发板或者自做的板子一般都不会原封不动的照抄半导体厂商的demo板,斗湖根据实际的情况来修改,既然有修改就必然涉及大uboot下驱动的移植。
3)一般uboot中需要解决串口、NAD\EMMC或SD卡、网络或LCD驱动,因为uboot主要目的就是启动linux内核,所以不需要考虑太多外设驱动。
4)在uboot中添加自己的板子信息,根据板子的实际情况修改uboot中的驱动。