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

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

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

使用PCIE更新AMD ZYNQ的QSPI Flash參考設(shè)計(jì)

XILINX開(kāi)發(fā)者社區(qū) ? 來(lái)源:XILINX開(kāi)發(fā)者社區(qū) ? 2023-11-17 10:02 ? 次閱讀

本文作者:AMD 工程師Gao Jackie

簡(jiǎn)介

AMD ZYNQ 7000 的 S_AXI 端口提供了外設(shè)訪問(wèn) PS 內(nèi)部外設(shè)控制器接口,這其中包括 4 個(gè) S_AXI_HP 端口以及兩個(gè) S_AXI_GP 端口。一般來(lái)說(shuō),可以訪問(wèn)的內(nèi)部資源包括 DDR 控制器,QSPI 控制器,OCM,IIC,SPI 等。

教程提供一個(gè)最小的參考設(shè)計(jì),使上位機(jī)可以通過(guò) PCIE 端口,通過(guò) S_AXI_GP0 端口訪問(wèn) ZYNQ 內(nèi)部的 QSPI 控制器,用來(lái)更新 Flash 的啟動(dòng)分區(qū)。

軟件方面,移植了 Embedded SW的相關(guān)驅(qū)動(dòng)代碼至 xdma 平臺(tái),并提供了一個(gè)簡(jiǎn)單的上位機(jī)測(cè)試程序,用來(lái)燒寫(xiě)啟動(dòng)鏡像至 Flash 分區(qū)。

教程中所有涉及的設(shè)計(jì)及代碼均在 Windows 和 Linux(Ubuntu20.04)平臺(tái)下作了驗(yàn)證。

系統(tǒng)設(shè)計(jì)

1. 系統(tǒng)設(shè)計(jì)框圖參考如下。在設(shè)計(jì)實(shí)例化了一個(gè) XDMA IP,通過(guò)其 M_AXI 端口連接至 ZYNQ 的 S_AXI_GP0,以訪問(wèn) PS QSPI 控制器。

036c1be4-847b-11ee-939d-92fbcf53809c.png

2. BD 中需要分配 XDMA 的 M_AXI 地址如下,可以用 AMD Vivado 的自動(dòng)地址分配工具完成。

037f9f0c-847b-11ee-939d-92fbcf53809c.png

3. 如果有訪問(wèn)其它外設(shè)的需求,詳細(xì)的地址可以參考 UG585 的 Table 4‐1: System-Level Address Map。

UG585:https://docs.xilinx.com/r/en-US/ug585-zynq-7000-SoC-TRM

環(huán)境需求

硬件環(huán)境:

ZC706 開(kāi)發(fā)板

Windows10/11 或者 Ubuntu20.04 主機(jī)

軟件環(huán)境:

Vivado Design Suite 2022.2

Petalinux 2022.2

CMake > 2.15

Windows + Visual Studio 或者 Linux + GCC

代碼結(jié)構(gòu)

硬件:

HW 文件夾里面里面包含 Vivado 工程,直接用 Vivado 2022.2 打開(kāi)。

固件:

此參考設(shè)計(jì)用 petalinux 制作系統(tǒng)啟動(dòng)鏡像,完整的 petalinux 工程位于 fw 目錄下。

執(zhí)行 petalinux-build 可以編譯。

執(zhí)行 petalinux-package –boot –u-boot –force –fpga XXX.bit 生成 BOOT.BIN 文件。

軟件:

qspi的驅(qū)動(dòng)軟件移植自 Embedded SW,主要的改動(dòng)包括修改 xil_io.c 文件,用 xdma 的驅(qū)動(dòng)替換默認(rèn)的 Xil_In32 和 Xil_Out32 的實(shí)現(xiàn)。

軟件支持 Windows 和 Linux 的主機(jī),采用 cmake 環(huán)境。如果在 Windows 下,可以選擇 Visual Studio 作為編譯工具。編譯過(guò)程如下:

1.cdsw
2.mkdir build
3.cmake .. && make

測(cè)試結(jié)果

在 petalinux 下生成的 BOOT.BIN 文件放在生成的上位機(jī)軟件目錄下,執(zhí)行后可以看到更新 FLASH 的進(jìn)度條在變化,說(shuō)明 FLASH 被正常少燒寫(xiě)。

完成后切換到 QSPI FLASH 啟動(dòng)模式,上電觀察啟動(dòng)過(guò)程。

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

    關(guān)注

    25

    文章

    5519

    瀏覽量

    135039
  • 控制器
    +關(guān)注

    關(guān)注

    113

    文章

    16580

    瀏覽量

    180464
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1650

    瀏覽量

    149563
  • 上位機(jī)
    +關(guān)注

    關(guān)注

    27

    文章

    950

    瀏覽量

    55193
  • Zynq
    +關(guān)注

    關(guān)注

    10

    文章

    612

    瀏覽量

    47499

原文標(biāo)題:開(kāi)發(fā)者分享|使用 PCIE 更新 AMD ZYNQ? 的 QSPI Flash 參考設(shè)計(jì)

文章出處:【微信號(hào):gh_2d1c7e2d540e,微信公眾號(hào):XILINX開(kāi)發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    編譯可在QSPI Flash上運(yùn)行的程序

    在前文中已經(jīng)實(shí)現(xiàn)了一個(gè)能夠在 MDK 平臺(tái)進(jìn)行下載代碼到 QSPI Flash 中的下載算法,以及一個(gè)能跳轉(zhuǎn)執(zhí)行應(yīng)用程序的 2nd Bootloader,但若想將代碼下載到 QSPI Flas
    的頭像 發(fā)表于 03-31 09:50 ?3523次閱讀
    編譯可在<b class='flag-5'>QSPI</b> <b class='flag-5'>Flash</b>上運(yùn)行的程序

    使用Zynq設(shè)備和Tandem配置的PCIe BOOTUP時(shí)間有什么要求?

    嗨,PCIe-Spec定義在穩(wěn)定供電后100ms,PCIe設(shè)備必須為鏈路訓(xùn)練做好準(zhǔn)備。使用7系列Zynq設(shè)備無(wú)法達(dá)到此時(shí)間。我使用了兩種方法來(lái)減少啟動(dòng)時(shí)間: - 優(yōu)化FSBL以達(dá)到SPI控制器的最大
    發(fā)表于 06-09 16:42

    Zynq無(wú)法設(shè)置為從QSPI閃存啟動(dòng)怎么解決?

    為了確保正確回退到金啟動(dòng),AR#67221規(guī)定QSPI閃存的D2和D3數(shù)據(jù)條應(yīng)連接到4K7上拉。但是看看Zynq xc7z030fbg676,這些引腳也可用作配置模式引腳。QSPI D2 =模式引腳
    發(fā)表于 06-09 17:24

    【正點(diǎn)原子FPGA連載】第三十六章基于TCP協(xié)議的遠(yuǎn)程更新QSPI Flash實(shí)驗(yàn)-領(lǐng)航者 ZYNQ 之嵌入式開(kāi)發(fā)

    原子公眾號(hào),獲取最新資料第三十六章基于TCP協(xié)議的遠(yuǎn)程更新QSPI Flash實(shí)驗(yàn)在《程序固化實(shí)驗(yàn)》中,我們了解了如何通過(guò)SDK軟件將BOOT.bin文件固化到QSPI中,這種現(xiàn)場(chǎng)通過(guò)
    發(fā)表于 09-08 11:08

    【正點(diǎn)原子FPGA連載】第三十七章基于UDP協(xié)議的遠(yuǎn)程更新QSPI Flash實(shí)驗(yàn)-領(lǐng)航者 ZYNQ 之嵌入式開(kāi)發(fā)

    原子公眾號(hào),獲取最新資料第三十七章基于UDP協(xié)議的遠(yuǎn)程更新QSPI Flash實(shí)驗(yàn)上一實(shí)驗(yàn)我們利用TCP協(xié)議實(shí)現(xiàn)了遠(yuǎn)程更新QSPI。為了滿足
    發(fā)表于 09-08 11:10

    什么是QSPI?如何使用QSPIQSPI Flash進(jìn)行通信呢?

    吧,直接 16 根數(shù)據(jù)信號(hào)線,速度自然變得更快了,但使用 SPI FLash,不就是圖一個(gè)線少嘛?! 榱朔奖忝枋?,我們將使用 QSPI 接口連接的 SPI Flash 稱之為 QSPI
    發(fā)表于 03-17 15:17

    Zynq PCIe電路設(shè)計(jì)

    ZYNQ7045的PCIE電路設(shè)計(jì),板卡使用插針式連接器,引出了PCIE信號(hào),未使用金手指。為了插入機(jī)箱設(shè)計(jì)了擴(kuò)展版,插座與插針對(duì)應(yīng),帶有PCIE金手指。目前遇到的問(wèn)題是,當(dāng)板卡連接擴(kuò)
    發(fā)表于 05-16 11:07

    LS1046A上的QSPI Flash不可擦除怎么處理?

    在我定制的LS1046A板上,我們只使用了一個(gè)QSPI Flash S25FS512SDSMFI011,通過(guò)QSPI_A_CS0/QSPI_A_SCK/
    發(fā)表于 05-18 07:56

    使用 PCIE 更新 AMD ZYNQ? 的 QSPI Flash 參考設(shè)計(jì)

    的內(nèi)部資源包括 DDR 控制器,QSPI 控制器,OCM,IIC,SPI 等。 本教程提供一個(gè)最小的參考設(shè)計(jì),使上位機(jī)可以通過(guò) PCIE 端口,通過(guò) S_AXI_GP0 端口訪問(wèn) ZYNQ 內(nèi)部
    發(fā)表于 11-30 18:49

    GD32-Colibri-F207實(shí)驗(yàn)板QSPI_FLASH

    GD32-Colibri-F207實(shí)驗(yàn)板QSPI_FLASH,很好的GD32資料,快來(lái)學(xué)習(xí)吧。
    發(fā)表于 04-21 16:35 ?26次下載

    如何使用QSPI Flash控制器開(kāi)發(fā)板上的 QSPI Flash進(jìn)行寫(xiě)讀操作

    學(xué)習(xí)內(nèi)容 本文首先介紹FlashQSPI Flash控制器的相關(guān)內(nèi)容,然后使用 QSPI Flash 控制器,開(kāi)發(fā)板上的
    的頭像 發(fā)表于 06-10 17:08 ?1.4w次閱讀
    如何使用<b class='flag-5'>QSPI</b> <b class='flag-5'>Flash</b>控制器開(kāi)發(fā)板上的 <b class='flag-5'>QSPI</b> <b class='flag-5'>Flash</b>進(jìn)行寫(xiě)讀操作

    在Linux/U-Boot里為QSPI Flash使用UBIFS

    UBIFS是更強(qiáng)壯的FLash文件系統(tǒng)。很多嵌入式系統(tǒng)都使用了UBIFS。Xilinx PetaLinux 2018.2也支持UBIFS。只需要在Linux/U-Boot里添加相關(guān)配置選項(xiàng),就能為QSPI Flash創(chuàng)建UBIF
    發(fā)表于 08-02 15:51 ?1891次閱讀

    通過(guò)KEIL制作QSPI接口的外部Flash下載算法

    電子發(fā)燒友網(wǎng)站提供《通過(guò)KEIL制作QSPI接口的外部Flash下載算法.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 16:26 ?7次下載
    通過(guò)KEIL制作<b class='flag-5'>QSPI</b>接口的外部<b class='flag-5'>Flash</b>下載算法

    Zynq中程序存儲(chǔ)位置和設(shè)置方法

    Zynq中存儲(chǔ)程序的地方有QSPI Flash,SD卡,EMMC。
    的頭像 發(fā)表于 10-17 17:00 ?2353次閱讀

    在mmWave SDK增加QSPI Flash驅(qū)動(dòng)的示例

    電子發(fā)燒友網(wǎng)站提供《在mmWave SDK增加QSPI Flash驅(qū)動(dòng)的示例.pdf》資料免費(fèi)下載
    發(fā)表于 09-11 14:20 ?0次下載
    在mmWave SDK增加<b class='flag-5'>QSPI</b> <b class='flag-5'>Flash</b>驅(qū)動(dòng)的示例