0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文詳解ZYNQ器件的啟動配置方法

Hx ? 作者:工程師陳翠 ? 2018-07-12 08:27 ? 次閱讀

電子系統(tǒng)設(shè)計(jì)中,無任是用CPU作為系統(tǒng)的主要器件,還是用FPGA作為系統(tǒng)的主要器件,系統(tǒng)設(shè)計(jì)中首先要考慮到的問題就是處理器的啟動加載問題。 XILINX推出的ZYNQ可擴(kuò)展處理平臺,片內(nèi)包括兩個高性能的ARM Cortex A9硬核(稱為處理系統(tǒng)processing system (PS))和FPGA(稱為可編程邏輯programmable logic (PL)),在基于該平臺的系統(tǒng)設(shè)計(jì)時具有極大的靈活性,本文就ZYNQ系統(tǒng)設(shè)計(jì)時都會遇到啟動加載問題作一個拋磚引玉的描述,如有不當(dāng)之處還請高手斧正。

一、器件配置單元

ZYNQ器件都帶有一個器件配置單元(device configuration unit (DEVCFG) ),該模塊由PS控制,提供軟件控制下的PS和PL的初始化和配置功能。以前單個FPGA器件提供的下載方法已經(jīng)不在適用,PL的配置下載必須在PS的參與下進(jìn)行。

Zynq-7000的器件配置單元包括下面的PS單元:

① CPU

② OCM(引導(dǎo)ROM和共享RAM)

③ 部分頂層總線和外設(shè)

④ PS器件配置模塊

在PL側(cè),下面的單元也將參與:

① PLS器件配置邏輯和接口

② 解密/鑒權(quán)硬件

③存儲在eFUSE單元或者電池備份RAM(BBRAM)內(nèi)的解密密鑰

下圖為PS器件配置子系統(tǒng)框圖:

一文詳解ZYNQ器件的啟動配置方法

提供的關(guān)鍵特性如下:

A.提供3種不同的PS配置方法,包括2種主模式和1種從模式。

① 加密主模式

② 非加密主模式

③ 非加密從模式

B.3種不同的主模式啟動源

① NOR FLASH

② NAND FLASH

③ QSPI FLASH

C:JTAG非加密從模式

D:用AES-256和HMAC (SHA-256)進(jìn)行PS/PL的加密下載

E:高速配置用的主DMA接口

F:100 MHz 32-bit PCAP流接口

H:SoC加密調(diào)試功能

在系統(tǒng)上電復(fù)位時,PS采樣專用bootstrapping signals引腳電平來決定從什么方式引導(dǎo)器件。這個引導(dǎo)過程是由一個Cortex A9核執(zhí)行片內(nèi)的ROM code實(shí)現(xiàn)的,ROM code的功能是初始化L1 cache和基本的總線系統(tǒng),加載相應(yīng)的NAND, NOR, Quad-SPI, and PCAP驅(qū)動,從指定接口加載第一級BOOTLOADER(the first stage boot loader (FSBL))到片內(nèi)執(zhí)行。由于OCM RAM大小有限制,第一級BOOTLOADER大小最大為256KB。用戶只需要按要求提供啟動映像和設(shè)置正確的bootstrapping signals引腳電平,系統(tǒng)上電復(fù)位時由ROM code自動加載到片內(nèi)并且程序調(diào)轉(zhuǎn)到啟動映像,此時系統(tǒng)的全部控制功能交由用戶的啟動映像控制,用戶如要實(shí)現(xiàn)的第二級BOOTLOADER功能由啟動映像的程序?qū)崿F(xiàn)。

對于加密配置方法,需要用到AES-256解密代碼和SHA-256簽定(簽名)算法, PS需要用PL內(nèi)硬連線的AES-256 和SHA-256模塊,這時就要求在加密配置情況下PL就必須上著電,既使系統(tǒng)并不配置PL部分也需上電。器件的加密密鑰可以由用戶選擇是存儲在片內(nèi)的eFUSE單元(具有掉電非易失性)或者內(nèi)部電池供電的BBRAM內(nèi)(具有掉電易失性,適用于安全級別要求更高的場合), 下表總結(jié)了配置模式和相關(guān)信息

一文詳解ZYNQ器件的啟動配置方法

二、PS非加密主模式配置過程

這種模式下PS啟動映像是直接從外部非易失存儲器(NAND, NOR, Quad-SPI)內(nèi)加載到片內(nèi)OCM內(nèi),隨后PL映像可以直接配置到PL內(nèi),整個過程如下圖示:

一文詳解ZYNQ器件的啟動配置方法

PL映像的配置可由配置接口模塊用DMA來高速實(shí)現(xiàn),在非加密情況下速度可以達(dá)到400MB/s, 加密情況下速度可以達(dá)到100MB/s, 這在FPGA需要部分重配置時十分有用。

三、PS加密主模式配置過程

PS加密主模式用到了位與片內(nèi)PL部分的硬件AES-256解密模塊和SHA-256模塊來對PS啟動映像進(jìn)行解密和完整性鑒定,器件密鑰存儲在片內(nèi)的eFUSE單元或者內(nèi)部BBRAM內(nèi),當(dāng)PS加載成功后,用戶可以選擇用下面缺省的PL引導(dǎo)過程來配置PL部分,如下圖示:

一文詳解ZYNQ器件的啟動配置方法

其中配置PL時的比特流既可以是已經(jīng)經(jīng)過AES-256加密的比特流,也可以是先經(jīng)過PS先進(jìn)行解密后成為明文比特流送到PL內(nèi),這個過程的保密性由用戶選擇使用。

在保密ROM引導(dǎo)階段如果PS完整性鑒定失敗,CPU就立即斷言PROG_B信號而清除PL內(nèi)容,同時發(fā)出一個加密復(fù)位信號,這使PS內(nèi)部的RAM和寄存器進(jìn)行復(fù)位,然后CPU進(jìn)入睡眠模式,系統(tǒng)只有重復(fù)上電才能復(fù)位。PL配置發(fā)生在BOOT的第二階段,這個過程完成可以由用戶選擇自己的方法在任何時間內(nèi)來配置一次或多次,并不需要一定按缺省的PL引導(dǎo)過程來配置PL部分。

四、啟動模式引腳

ZYNQ器件有5個啟動模式信號mode[4:0],用來指出從哪里啟動,是否是JTAG模式,PLL是否旁路等。另外有兩個電壓模式信號vmode[1:0]用來指明MIO BANK的電壓模式,vmode[1:0] 信號和mode[4:0] 信號通過上拉和下拉來確定電平值,上拉和下拉電阻建議為20k歐姆,上拉是連接到VCCO_MIO0電壓,下拉是連接到地。系統(tǒng)在釋放PS_POR_B復(fù)位腳后這些啟動模式引腳信號會被采樣3個PS_CLK時鐘用來確定啟動方式。vmode[1:0] 信號和mode[4:0] 信號對應(yīng)的I/O管腳為MIO[8:2],各信號具體含義如下:

① Mode[0] 用來指明是否是JTAG 模正。

② Mode[3:1]用來選擇啟動源,是從NOR Flash還是從NAND Flash還是從QSPI啟動。

③ Mode[4]用來使能PLL。

④ Vmode[1:0] 用來配置I/O BANK電壓。

這些信號和MIO管腳的對應(yīng)關(guān)系如下表表示:

一文詳解ZYNQ器件的啟動配置方法

注:上表中X表示不關(guān)心。

實(shí)際設(shè)計(jì)中,由于MIO管腳數(shù)量有限(只有54個),且只分為兩個BANK(MIO Bank 0對應(yīng)管腳為PS_MIO[15:0],PS_CLK,PS_POR_B;MIO Bank 1對應(yīng)管腳為PS_MIO[53:16],PS_VREF_MIO和PS_SRST_B),并不建議系統(tǒng)設(shè)計(jì)為從并行的NOR Flash啟動,因?yàn)檫@種方式NOR Flash占用的MIO管腳數(shù)量大多(大于40個管腳),系統(tǒng)設(shè)計(jì)為從NAND Flash或QSPI啟動都可以,這兩種方式占用的MIO管腳數(shù)量要少些,NAND Flash的優(yōu)點(diǎn)是容量比較大,缺點(diǎn)是讀寫速度要慢些(典型速度 10MB/s), QSPI也是一種NOR Flash,不過接口是四線串行接口,可以獲得比較高的讀寫速度(典型速度 50MB/s),如果系統(tǒng)希望從其它方式如USBEthernet, SD/SDIO等方式啟動,這都需要用戶在第一級啟動映像內(nèi)自行設(shè)計(jì)啟動引導(dǎo)代碼。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • PS
    PS
    +關(guān)注

    關(guān)注

    0

    文章

    73

    瀏覽量

    36454
  • Zynq
    +關(guān)注

    關(guān)注

    10

    文章

    610

    瀏覽量

    47223
收藏 人收藏

    評論

    相關(guān)推薦

    詳解Zynq的兩種啟動模式

    Zynq-7000AP SOC器件有效利用了片上CPU來幫忙配置,在沒有外部JTAG的情況下,處理系統(tǒng)(PS)與可編程邏輯(PL)都必須依靠PS來完成芯片的初始化配置。
    發(fā)表于 08-02 09:33 ?1583次閱讀
    <b class='flag-5'>詳解</b><b class='flag-5'>Zynq</b>的兩種<b class='flag-5'>啟動</b>模式

    通過JTAG啟動Linux的方法和腳本

    在 AMD SoC 器件(AMD Zynq 7000 SoC,AMD Zynq UltraScale+ MPSoC,AMD Versal Adaptive SoC),常見的啟動方式是
    的頭像 發(fā)表于 12-22 10:27 ?1581次閱讀
    通過JTAG<b class='flag-5'>啟動</b>Linux的<b class='flag-5'>方法</b>和腳本

    Zynq在非JTAG模式下的啟動配置流程

    ARM 核來實(shí)現(xiàn)的?! ⌒枰⒁獾氖?,與傳統(tǒng)的 Xilinx 7 系列 FPGA 芯片不同,Zynq 是不支持從 PL 端進(jìn)行直接啟動配置的,定要通過 PS 部分來完成?! ?/div>
    發(fā)表于 01-08 16:33

    Zynq在非JTAG模式下的啟動配置流程

    本文主要與大家分享了Zynq在非JTAG模式下的啟動配置流程,旨在讓大家對Zynq的三階段啟動模式有
    發(fā)表于 03-17 07:36

    ZYNQ器件啟動配置方法

    無任是用CPU作為系統(tǒng)的主要器件,還是用FPGA作為系統(tǒng)的主要器件,系統(tǒng)設(shè)計(jì)中首先要考慮到的問題就是處理器的啟動加載問題。
    發(fā)表于 02-11 19:01 ?1218次閱讀

    ZYNQ 7系列FSBL的啟動過程與配置方法

    、SD卡閃存均可以用作器件啟動 。處理器系統(tǒng)啟動主要包括兩個階段: (1) Stage-0的啟動代碼存儲在內(nèi)部的BOOTROM,這部分啟動
    發(fā)表于 11-17 10:25 ?2.5w次閱讀
    <b class='flag-5'>ZYNQ</b> 7系列FSBL的<b class='flag-5'>啟動</b>過程與<b class='flag-5'>配置</b><b class='flag-5'>方法</b>

    Xilinx FSBL如何操作啟動Zynq器件

    了解Xilinx FSBL如何操作以啟動Zynq器件。 包括程序執(zhí)行概述,調(diào)試技巧以及有關(guān)特定引導(dǎo)設(shè)備的信息。 還包括FSBL角度的啟動安全性簡要概述。
    的頭像 發(fā)表于 11-23 06:32 ?4611次閱讀

    ZYNQ啟動原理和配置

    在ps的控制下,可以實(shí)現(xiàn)安全或非安全的配置所有ps和pl。通過zynq提供的JTAG接口,用戶可以在外部主機(jī)的控制下對zynq進(jìn)行配置,zynq
    的頭像 發(fā)表于 05-15 11:41 ?7786次閱讀
    <b class='flag-5'>ZYNQ</b>的<b class='flag-5'>啟動</b>原理和<b class='flag-5'>配置</b>

    詳解zynq啟動步驟

    本文主要介紹zynq啟動過程,主要包括BootROM和FSBL等的執(zhí)行過程。
    發(fā)表于 10-27 10:47 ?7519次閱讀
    <b class='flag-5'>詳解</b><b class='flag-5'>zynq</b>的<b class='flag-5'>啟動</b>步驟

    Zynq啟動配置過程詳解

    初學(xué) Zynq 的時候,都是按照慣例打開 Vivado 軟件,然后實(shí)現(xiàn) Zynq 可編程邏輯硬件部分PL的設(shè)置后,把硬件部署導(dǎo)出,再打開 SDK 進(jìn)行 ARM 核的軟件部分 PS 編程設(shè)計(jì),最后再將
    發(fā)表于 01-26 07:30 ?20次下載
    <b class='flag-5'>Zynq</b>的<b class='flag-5'>啟動</b>與<b class='flag-5'>配置</b>過程<b class='flag-5'>詳解</b>

    如何在 Vitis 中調(diào)試 Zynq UltraScale 器件啟動鏡像

    在本篇博文中,我們將探討如何在 Vitis 中調(diào)試 Zynq UltraScale 器件啟動鏡像。這些啟動鏡像包括 ARM 可信固件 (ATF) 和 U-boot。 本篇博
    的頭像 發(fā)表于 06-01 15:35 ?3459次閱讀
    如何在 Vitis 中調(diào)試 <b class='flag-5'>Zynq</b> UltraScale <b class='flag-5'>器件</b><b class='flag-5'>啟動</b>鏡像

    ZYNQ啟動流程

    ZYNQ7000 SOC 芯片可以從 FLASH 啟動,也可以從 SD 卡里啟動, 本節(jié)介紹程序 FLASH 啟動方法。
    的頭像 發(fā)表于 05-07 09:41 ?6634次閱讀

    ZYNQ啟動流程介紹

    普通的 FPGA 般是可以從 flash 啟動,或者被動加載,但是ZYNQ不行,ZYNQ必須PS端參與
    的頭像 發(fā)表于 07-22 10:10 ?7574次閱讀

    FPGAs,ZynqZynq MPSoC器件的特點(diǎn)

    Zynq MPSoC是Zynq-7000 SoC(之后簡稱Zynq)的進(jìn)化版本。Zynq是賽靈思發(fā)布的集成PL(FPGA)和PS設(shè)計(jì)的最早的
    的頭像 發(fā)表于 08-15 09:16 ?2662次閱讀

    Zynq在非JTAG模式下的啟動配置流程

    在無 JTAG 的模式下,Zynq 是通過片上CPU完成對芯片的配置,也就是PS和PL的配置是通過 PS 處理器 ARM 核來實(shí)現(xiàn)的。需要注意的是,與傳統(tǒng)的 Xilinx 7 系列 FPGA 芯片不同,
    的頭像 發(fā)表于 10-19 09:11 ?1372次閱讀