树莓派启动过程
<p><a href="http://blog.pifan.org">http://blog.pifan.org</a></p>
<ol>
<li>reset后secure core执行rom内的程序
reset后secure core检查OTP并初始化相应的启动设备,让GPU执行bootcode.bin。网上有些文章介绍通过更改OTP使树莓派从USB启动,也就是这个道理。 </li>
<li>GPU启动执行bootcode.bin
bootcode.bin相当于GPU的bootloader,会对内存等进行初始化并加载start.elf </li>
<li>GPU加载执行start.elf来负责图像输出工作,让CPU执行kernel.img或u-boot.bin
start.elf读取config.txt来设置图像输出格式,初始化CPU的clock和串口等设备,准备kernel.img并触发CPU的reset </li>
<li>CPU启动执行kernel.img或u-boot.bin,进入应用程序</li>
</ol>
<p>由于内置的rom code和bootcode.bin以及start.elf都不公开,CPU执行的user code由GPU来加载,所以不清楚执行user code之前的事情也不影响对树莓派的使用。</p>