樹莓派啓動流程 --- 005 kernel: [0.000000] Booting Linux on physical CPU 0x0 -- 01 gpu轉cpu問題

  CPU 啓動這個問題,說也簡單,細究起來也不是很複雜:博客《樹莓派啓動流程 --- 004 systemd-modules-load [111]: Module'i2c_dev' inserted -- 01 樹莓派啓動流程 》 和《RPi Software --- 001 Overview》可以說明這個問題:

 

 

 

如果您只需要一個操作系統,則只需要一個格式正確的SD卡即可。有關如何創建或獲取一個的詳細信息,請參閱“ 硬件基本設置”頁面。

爲了瞭解RPi中的軟件組件,您首先應該瞭解它是如何啓動的。上電時,CPU處於脫機狀態,GPU上的小型RISC內核負責引導SoC,因此,大多數引導組件實際上都在GPU代碼上運行,而不是CPU。

引導順序和組件如下:

  • 第一階段引導程序 -用於將FAT32引導分區安裝在SD卡上,以便可以訪問第二階段引導程序。它在RPi的製造過程中被編程到SoC本身中,並且用戶無法對其進行重新編程。
  • 第二階段引導加載程序(bootcode.bin)-用於從SD卡中檢索GPU固件,對固件進行編程,然後啓動GPU。
  • GPU固件(start.elf)-加載後,這將允許GPU啓動CPU。另一個文件fixup.dat用於在GPU和CPU之間配置SDRAM分區。此時,CPU從復位中釋放,執行轉移過來。
  • 用戶代碼 -這可以是任意數量的二進制文件之一。默認情況下,它是Linux內核(通常稱爲kernel.img),但也可以是另一個引導程序(例如U-Boot)或準系統應用程序。

在2012年10月19日之前,以前也有一個第三階段的引導加載程序(loader.bin),但這不再是必需的。[1]

基金會網站([1])上的Raspbian Linux映像(其他?)也包含上述文件的簡化版本(fixup_cd.dat,start_cd.elf)。當GPU內存設置爲16 MB時會使用這些選項,從而禁用某些GPU功能。更多信息在這裏。此外,還提供了上述文件的測試版本(fixup_x.dat,start_x.elf),這些版本啓用了可能不穩定/未經過完全測試/ hacky的功能-當前,使用這些文件代替通常的fixup.dat / start .elf將導致額外的視頻編解碼器可用。

由於此引導過程,必須使用SD卡引導RPi。但是,這確實意味着您無法“模塊化”設備。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章