ZYNQ啟動(dòng)是由ARM引導(dǎo)FPGA,以及用戶程序的加載。
預(yù)配置階段
Pre-configurationstage
1. 通過(guò)上電復(fù)位(POR),將PMU(平臺(tái)管理單元/Platform Management Unit)從復(fù)位狀態(tài)喚醒,提供如下操作:
復(fù)位低壓域LPD寄存器
復(fù)位全電源域FPD寄存器
復(fù)位PMU的RAM
復(fù)位PMU處理器的TLB內(nèi)存
檢查L(zhǎng)PD、AUX、專用IO等區(qū)域電壓
復(fù)位CSU、LPD、FPD的內(nèi)存區(qū)
2.執(zhí)行PMU ROM中的預(yù)啟動(dòng)代碼,以執(zhí)行復(fù)位操作(包括配置安全單元CSU)復(fù)位),該階段結(jié)束的標(biāo)志是CSU復(fù)位的釋放。 預(yù)啟動(dòng)代碼進(jìn)行的初始化操作:
初始化PS Sysmon單元和啟動(dòng)所需要的PLL
清除PMU RAM 和 CSU RAM區(qū)域
驗(yàn)證PLL鎖
利用PS Sysmon驗(yàn)證LPD、AUX、I/O的范圍
清除低壓域(LPD)和全電源域(FPD)
配置階段
Configuration stage
CSU復(fù)位后,初始化OC-RAM,將FBSL加載到OC-RAM(on-chip RAM),CSU加載PMU用戶固件(PMU FW:firmware)到PMU RAM,若沒有則不加載。
在ZYNQ上運(yùn)行程序的時(shí)候,Boot Rom直接固化在硬件中,開發(fā)者無(wú)法修改。FSBL(first stage boot loader)是第一階段的加載程序,經(jīng)過(guò)這個(gè)階段,后面系統(tǒng)才能夠運(yùn)行裸奔程序或者是引導(dǎo)操作系統(tǒng)的u-boot。用戶可以選擇用cortex-a53制作啟動(dòng)的FSBL文件,也可以選擇用cortex-r5來(lái)制作啟動(dòng)的FSBL文件。
處理器開始執(zhí)行FSBL代碼。FSBL(first-stage boot loader)的作用如下:
1.初始化PS端配置,如:MIO、PLL、DDR、QSPI、SD等。
2.加載PL端程序,即:加載bitstream
3.搬運(yùn)用戶程序到DDR,并跳轉(zhuǎn)執(zhí)行。
PCAP(處理器配置訪問(wèn)端口processor configuration access port)用于從PS配置PL。PCAP是在正常操作條件下用于配置PL的唯一接口。在調(diào)試過(guò)程中,可以使用JTAG接口來(lái)配置PL。PS通過(guò)secure-stream switch連接到PCAP。可以使用CSU DMA或AES路徑將比特流數(shù)據(jù)發(fā)送到PL。
FSBL使用PCAP接口為PL配置比特流,步驟如下:
1.初始化PCAP接口。
2.通過(guò)PCAP寫入比特流(Bitstream)。
3.等待PL完成狀態(tài)。
后配置階段
Post-configuration stage
FBSL執(zhí)行后,CSU ROM代碼進(jìn)入Post-configuration階段,負(fù)責(zé)起系統(tǒng)干預(yù)響應(yīng),提供硬件支持。PMU仍然需要運(yùn)行,用于后續(xù)改變系統(tǒng)的電源狀態(tài)(上電、睡眠、喚醒等等)。這個(gè)階段會(huì)啟動(dòng)SSBL,就是Linux的bootloader,開始引導(dǎo)啟動(dòng)Linux系統(tǒng)。 ? ?
審核編輯:劉清
-
FPGA
+關(guān)注
關(guān)注
1650文章
22207瀏覽量
626902 -
ARM
+關(guān)注
關(guān)注
135文章
9452瀏覽量
385764 -
上電復(fù)位
+關(guān)注
關(guān)注
1文章
43瀏覽量
16120 -
PMU
+關(guān)注
關(guān)注
1文章
124瀏覽量
22824 -
Zynq
+關(guān)注
關(guān)注
10文章
623瀏覽量
48932
原文標(biāo)題:ZYNQ MPSoc的啟動(dòng)過(guò)程
文章出處:【微信號(hào):雷達(dá)通信電子戰(zhàn),微信公眾號(hào):雷達(dá)通信電子戰(zhàn)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
淺談zynq啟動(dòng),BootROM和FSBL等的執(zhí)行過(guò)程

詳解Zynq的兩種啟動(dòng)模式

玩轉(zhuǎn)Zynq連載1——Zynq的linux啟動(dòng)過(guò)程
Zynq在非JTAG模式下的啟動(dòng)配置流程
STM32F429啟動(dòng)過(guò)程詳解
STM32H7啟動(dòng)過(guò)程詳解
Linux啟動(dòng)過(guò)程詳解
ZYNQ的啟動(dòng)原理和配置

詳解zynq的啟動(dòng)步驟

Zynq的啟動(dòng)與配置過(guò)程詳解

評(píng)論