譯自:http://www.raspberrypi.org/phpBB3/viewtopic.php?f=7&t=2008php
參考:https://github.com/dwelch67/raspberrypigit
有文檔說明的啓動流程其實是:
1)上電
2)GPU開始從ROM執行一些代碼,沒人能修改這些代碼(注:估計是基金會的地盤)
3)GPU從SD卡讀取第一個FAT32分區
4)GPU從SD卡第一個FAT32分區的根路徑中加載bootcode.bin和start.elf。
5)GPU還會從這個位置查找config.txt文件,這個文件能夠用於修改arm主頻,修改加載kernel.img的位置等配置信息
6)GPU讀取kernel.img,並拷貝到內存中
7)最後GPU觸發arm芯片復位,跳轉到內核鏡像執行github
GPU和ARM是共享內存的,能夠在config.txt中配置。從ARM的角度來看,kernel.img文件默認加載到0x8000地址。固然這個地址也是能夠配置的。spa
注:code
GPU在rpi裏角色很多,實際上承擔了一些bootloader的做用。內存