SoC FPGA Bootloader 開發者中心
SoC FPGA啟動載入程式開發人員中心提供了可用的SoC啟動載入程式,包括主要特徵、入門方法和其他資源。
Intel® SoC FPGAs使用啟動載入程式在硬核處理器系統 (HPS) 上載入和執行最終使用者應用程式。最終使用者應用程式可以是簡單的裸機應用程式,也可以是複雜的作業系統,如Linux* 作業系統。
本頁介紹什麼是引導載入程式,列出可用的引導載入程式及其主要特徵,描述如何開始使用引導載入程式,並列出其他資源。
1. 什麼是引導載入程式
引導載入程式定義
當SoC設備啟動時,會首先運行一個名為BootROM的軟體。由於幾個原因,BootROM 具有以下有限的功能:
- 它需要適合片上 ROM,因此它必須很小
- 更改非常昂貴,因此它必須非常強大,這意味著功能較少
- 它不知道系統是如何配置的,因此無法啟動所有內容
另一方面,最終使用者應用程式通常很大,需要根據需要對系統進行配置,然後才能運行。
引導載入器的工作是彌合BootROM和最終使用者應用程式之間的差距。
單階段引導載入程式
典型的引導載入程式任務
- 配置引腳多路復用和引腳設置,如壓擺率、電壓和上拉/下拉
- 在時鐘樹中配置時鐘
- 啟動和校準 SDRAM
- 初始化快閃記憶體
- 配置FPGA結構
- 從快閃記憶體載入終端應用程式
- 將控制權傳遞給最終應用程式
除了上面列出的功能外,引導載入程式還提供以下高級功能,可以實現更複雜的部署和更方便的開發:
- 從雲端引入最終使用者應用程式的網路訪問。
- 調試工具,可以更方便地診斷問題。
- 互動式命令的命令行介面。
- 運行一個框架的應用程式,該框架可以使簡單的最終使用者應用程式載入並運行到由引導載入程式完成。應用程式完成後,控件將傳遞回引導載入程式。
多階段引導載入程式
有時,引導載入程式進程可以分為多個階段,通常是兩個階段。
對於Cyclone® V SoC,BootROM 只能載入大小不超過 64 KB 的引導載入程式,因為 SDRAM 在該階段尚未啟動。同樣,對於Intel® Arria® 10 個 SoC,BootROM 只能載入大小不超過 256 KB 的引導載入程式。由於這些大小限制,無法實現網路或複雜文件系統訪問等高級功能。如果需要這些功能,引導載入程式的第一階段會啟動SDRAM,然後載入具有更多功能的第二階段。兩階段啟動載入程式是 Cyclone V SoC、Arria® V SoC 和 Arria® 10 個 SoC 的預設選項。
SDM 型裝置的引導載入程式
Intel® Stratix® 10 個 SoC、Intel Agilex 7 SoC 和 Intel® Agilex® 5 SoC 通常使用兩階段式啟動載入程式。第一個小型引導載入程式階段是FPGA配置比特流的一部分,由安全設備管理器 (SDM) 載入到 HPS 晶載 RAM 中,而第二個較大的啟動載入程式階段需要存儲在 HPS 可訪問的位置。
2. 硬體切換
交接概述
所有Intel SoC FPGA專案都從硬體項目開始,其中使用者輸入了影響 HPS 的各種系統設置。其中包括:
- 針腳多路複用
- 引腳設置
- SDRAM 設定
- 頻率設定
應用這些設置是引導載入程式的工作,而接收這些設置的引導載入程式的過程稱為硬體到軟體的切換。
根據確切的啟動載入程式和 SoC 裝置系列,切換可以採取各種形式。通常:
- 對於Cyclone V 和 Arria V SoC,切換是 XML 檔、二進位檔和原始程式碼檔的組合,這些檔被轉換為原始程式碼,然後編譯到引導載入程式中
- 對於Intel Arria 10 SoC,切換包含在單個 XML 檔中,該檔將轉換為設備樹檔並由引導載入程式使用
- 對於Intel Stratix 10 SoC、Intel Agilex 7 SoC 和 Intel Agilex 5 SoC,切換資訊屬於FPGA配置比特流的一部分
輸入或更改切換資訊的主要方法是在 Quartus Platform Designer 中編輯它們。
除了切換資訊外,引導載入程式還具有各種設置,用戶可以通過以下方法選擇:
- 編輯引導載入程式原始程式碼
- 使用設備樹時編輯引導載入程式設備樹
Cyclone V SoC 與 Arria V SoC 切換
Intel Arria 10 SoC 切換
Intel Stratix 10 個 SoC、Intel Agilex 7 個 SoC 和 Intel Agilex 5 個 SoC 切換
3. 可用的引導載入程式
可用引導載入程式概述
下表列出了可用的引導載入程式、許可證類型、支援的 SoC 以及兩階段支援的可用性:
U-Boot
U-Boot 是一種被業界廣泛使用的引導載入程式,並提供許多功能:
- 可選第一級稱為「SPL」,適用於晶載 RAM 有限的系統(例如 Cyclone V SoC 和 Arria V SoC)
- 網路能力
- 快閃記憶體支援
- 命令行介面
- 腳本
- U-Boot 自定義應用程式
U-Boot是在通用公共許可證(GPL)下開發的,因此對交付給公眾的產品所做的任何貢獻也必須公開。
U-Boot 原始程式碼可在 GitHub 網站的 U-Boot SoC FPGA 頁面上 找到。
主要的通用U-Boot主頁位於 Das U-Boot -- 通用啟動載入程式網頁。
Atf
ARM 可信韌體 (ATF) 是 ARMv8-a 安全世界軟體的參考實現,實現了各種 ARM 介面標準,例如可信板啟動要求 (TBBR) 和安全監視器呼叫 (SMC)。
ATF 是在 BSD 許可證下協作開發的,可以方便地開發和部署。
ATF埠的原始程式碼 Intel SoC FPGA可以在 https://github.com/altera-opensource/arm-trusted-firmware 上訪問。
這個頁面的內容綜合了英文原始內容的人工翻譯譯文與機器翻譯譯文。本內容是基於一般資訊目的,方便您參考而提供,不應視同完整或準確的內容。如果這個頁面的英文版與譯文之間發生任何牴觸,將受英文版規範及管轄。 查看這個頁面的英文版。