2013年2月24日 星期日

Raspberry Pi Boot Process

Raspberry Pi 的 SoC 是 BCM2835,看起來只能從 FAT32 的 SD 卡開機。以下是開機程序:
  1. [GPU] 執行 on-chip ROM,從 SD 卡載入 bootcode.bin 到 L2 cache。(一開始 ARM core 跟 SDRAM 是停用的)
  2. [GPU] 執行 bootcode.bin,啟用 SDRAM,並從 SD 卡載入 start.elf 到 SDRAM。(以前還有一個 loader.bin 步驟,現在整合在一起)
  3. [GPU] 執行 start.elf,讀取 config.txt、cmdline.txt 及 kernel.img,啟用 ARM (另外不確定是否還有 bcm2835.dtb)
  4. [ARM] 開始 Linux kernel booting,kernel.img 就是 kernel,而 cmdline.txt 放 kernel 開機參數。kernel 的 rootfs 可以是另一個分割
上述韌體可在 https://github.com/raspberrypi/firmware 取得,GPU 部份的原始碼並未開放。


參考:
  1. http://www.raspberrypi.org/phpBB3/viewtopic.php?f=63&t=6685
  2. https://github.com/dwelch67/raspberrypi (一些 non-OS 的低階程式)

沒有留言:

張貼留言

SIP header Via

所有 SIP 訊息 都要有 Via,縮寫 v。一開始的 UAC 和後續途經的每個 proxy 都會疊加一個 Via 放傳送的位址,依序作為回應的路徑。 格式 sent-protocol sent-by [ ;branch= branch ][ ; 參數 ...] s...