admin 管理员组

文章数量: 1184232

千呼万唤始出来!官方在2020-05-15发布了一个4B的beta版EEPROM固件更新,这次更新终于增加了期待已久的USB引导功能,今天这个教程就来讲一下如何使用USB而脱离SD卡启动树莓派4B。

数据无价,本教程的操作有一定的风险,开始前请备份重要数据!!!

前言

正式开始之前先说一下为什么4B的USB启动这么姗姗来迟。

要了解这个问题,我们先要了解一下4B之前的版本的启动流程,主要分为四个阶段:

  1. GPU读取芯片上一个ROM的内容并执行
  2. ROM中的程序挂载SD卡并加载第一个FAT分区上的bootcode.bin
  3. bootcode.bin从FAT分区加载start.elf
  4. start.elf从FAT分区加载kernel.img,然后唤醒CPU,CPU开始执行kernel.img

从这个流程中可以看到,第一阶段的BootLoader是从芯片上的ROM中读取的,ROM里的代码是出厂定制好的后期不能再改变。然而随着4B的硬件升级,USB被移到了PCIe总线,网卡也用了新的型号,再加上4B启动过程和SDRAM的设置远比之前的型号要复杂的多,继续使用集成在SoC ROM中的代码是有很大风险的,所以4B增加了一块EEPROM来解决这个问题,启动程序写入到EEPROM中来取代bootcode.bin的工作,启动程序的bug修复和新功能添加都方便了很多。

启动机制改动还是挺大的,所以USB启动姗姗来迟还是可以理解的。

关于EEPROM和4B启动流程的内容可以参考下面两篇文章:

本文标签: 系统 启动程序 编程