????????ZYNQ SoC 的啟動由片上的 BootROM 開始。片上 BootROM 是 ZYNQ 芯片上的一塊非易失性存儲器,它包含了 ZYNQ 所支持的配置器件的驅動, 而且里面的代碼是不可修改的。 BootROM 中的代碼首先會在片外的非易失性存儲器中尋找一個頭文件, 頭文件里定義了一些啟動信息, 用于配置 BootROM 的運行。 這些啟動信息包括是程序是否就地執行( excute in place) , FSBL 的偏移地址以及是否為安全模式等。頭文件的存在確保 BootROM 能夠按照配置器件被格式化后的方式操作。
????????BootROM 執行之后,下一個配置階段被稱為 First-Stage Boot Loader ( FSBL), 它是由設計者所創建的。FSBL 可以配置 DDR 存儲器和硬件設計過程中所定義的一些外設。這些器件需要在加載軟件應用及配置 PL之前就初始化完畢。
總結一下 FSBL 的工作內容:
1、 初始化 PS;
2、 如果提供了 BIT 文件,則配置 PL;
3、 加載裸機應用程序到 DDR 中,或者加載 Second-Stage Boot Loader( SSBL);
4、 開始執行裸機應用程序,或者 SSBL。
????????PL 的配置是通過處理器配置訪問接口( Processor Configuration Access Port, PCAP) 進行的,它允許對PL 進行部分配置或者完全配置。有關 PL 的部分配置我們會在其他章節予以介紹。 一旦 PS 啟動運行之后,PL 可以在任意時刻被配置, FSBL 和應用程序可以清除、 配置以及使能 PL。
????????要重建一個 ZYNQ 的啟動鏡像我們需要執行以下文件:
1、 Boot ROM 頭文件:控制 Boot ROM 設置,比如就地執行、 加密、 FSBL 偏移量、鏡像文件大小等;
2、 First-Stage Boot Loader;
3、 PL 配置文件, 即 BIT 文件;
4、 運行在 PS 上的軟件應用程序。
????????ZYNQ SoC 使用多個模式引腳來決定配置器件的類型, 軟件的存儲位置以及其他的系統設置, 這些引腳共享 PS 端的 MIO 引腳。 總共有 7 個模式引腳, 分別為 MIO[8:2]。其中,前四個引腳定義啟動模式,第五個引腳定義是否使用 PLL, 第六個和第七個引腳定義上電過程中 MIO bank0 和bank1 的 bank 電壓,如下圖所示:
整個系統的啟動過程如下圖所示:
????????在上電復位( Power On Reset, POR) 之后,硬件會采集模式引腳的狀態, 禁用器件內部的模塊,并根據模式引腳的設置選擇是否使能 PS 的時鐘鎖相環。而在其他的復位條件下, 比如軟復位, 硬件不會執行上述的動作。 需要注意的是, PS 的復位按鍵,屬于上電復位( POR),如果按下 PS 的復位按鍵,硬件會重新采集模式引腳的狀態。
ZYNQ 啟動分析_pl power status off-CSDN博客
ZYNQ程序固化——ZYNQ學習筆記7_zynq sd卡啟動-CSDN博客