1. 程式人生 > >閒話Zynq UltraScale+ MPSoC (連載3)——啟動載入

閒話Zynq UltraScale+ MPSoC (連載3)——啟動載入

作者:Hello,Panda

Part 2 : Zynq UltraScale+ MPSoC啟動

        熊貓君在這裡討論啟動(Boot),主要是想聊它的啟動裝置和啟動方式。看看啟動裝置是否廣泛支援,啟動方式是否簡潔高效。至於加密等安全性處理暫時不談,先跑起來再說。

(1) 啟動方式

        和Zynq-7000類似,ZynqUltraScale+ MPSoC也是三級啟動方式,只是Xilinx又給它們起了一個新名字,啟動分為以下三級:

        a) Pre-configuration:復位後執行PMU ROM程式碼,講外部FSBL程式碼搬到內部的OCM。相當於Zynq 的Boot ROM執行。

        b) Configuration:在內部的OCM程式碼,系統根據BOOTHeader的內容選擇在CPU(Cortex-A53)還是RPU(Cortex-R5)上執行。負責初始化必要的時鐘、記憶體和外設,載入Bit檔案和使用者程式碼等。

         c) Post-configuration:執行使用者程式碼。

(2) 啟動裝置

         表1是ZynqUltraScale+支援啟動裝置的列表.

表1 支援啟動裝置的列表


        從表1可以看出,相對於Zynq-7000,ZynqUltraScale+ 對啟動裝置支援上有了不小的改進:

       a) 啟動模式引腳採用專用的的模式選擇引腳,不再和MIO複用;

       b) QSPI Flash啟動開始支援4位元組地址模式,可以支援更大的定址空間;

       c) 任意的SD卡控制器都可用於啟動,且支援SD3.0和MMC4.5標準,支援eMMC18電平;

       d) SD卡檔案系統支援FAT16/32,不僅支援BOOT.bin檔名,還支援BOOT0001~BOOT8192的任意檔名。

       當然,PMU ROM啟動的映象搜尋空間還是有一定限制的,至於FSBL起來以後從哪兒搬程式碼那就是你的事情了,愛哪兒都行咯,表2是PMU ROM搜尋映象的地址偏移範圍。

表2  PMU ROM搜尋映象的地址偏移範圍

                  啟動模式             搜尋偏移範圍

             QSPI-24bit Single               16MB

             QSPI-24bit Dual                 32MB

             QSPI-32bit                          256MB

                                 QSPI-32bit Dual                512MB