簡介
AMD ZYNQ 7000 的 S_AXI 端口提供了外設訪問 PS 內部外設控制器的接口,這其中包括 4 個 S_AXI_HP 端口以及兩個 S_AXI_GP 端口。一般來說,可以訪問的內部資源包括 DDR 控制器,QSPI 控制器,OCM,IIC,SPI 等。
本教程提供一個最小的參考設計,使上位機可以通過 PCIE 端口,通過 S_AXI_GP0 端口訪問 ZYNQ 內部的 QSPI 控制器,用來更新 Flash 的啟動分區。
軟件方面,移植了 Embedded SW的相關驅動代碼至 xdma 平臺,并提供了一個簡單的上位機測試程序,用來燒寫啟動鏡像至 Flash 分區。
教程中所有涉及的設計及代碼均在 Windows 和 Linux(Ubuntu20.04)平臺下作了驗證。
系統設計
1. 系統設計框圖參考如下。在設計實例化了一個 XDMA IP,通過其 M_AXI 端口連接至 ZYNQ 的 S_AXI_GP0,以訪問 PS QSPI 控制器。
2. BD 中需要分配 XDMA 的 M_AXI 地址如下,可以用 AMD Vivado 的自動地址分配工具完成。
3. 如果有訪問其它外設的需求,詳細的地址可以參考 UG585 的 Table 4‐1: System-Level Address Map。
UG585:https://docs.xilinx.com/r/en-US/ug585-zynq-7000-SoC-TRM
環境需求
硬件環境:
ZC706 開發板
Windows10/11 或者 Ubuntu20.04 主機
軟件環境:
Vivado Design Suite 2022.2
Petalinux 2022.2
CMake > 2.15
Windows + Visual Studio 或者 Linux + GCC
代碼結構
硬件:
HW 文件夾里面里面包含 Vivado 工程,直接用 Vivado 2022.2 打開。
固件:
此參考設計用 petalinux 制作系統啟動鏡像,完整的 petalinux 工程位于 fw 目錄下。
執行 petalinux-build 可以編譯。
執行 petalinux-package –boot –u-boot –force –fpga XXX.bit 生成 BOOT.BIN 文件。
軟件:
qspi的驅動軟件移植自 Embedded SW,主要的改動包括修改 xil_io.c 文件,用 xdma 的驅動替換默認的 Xil_In32 和 Xil_Out32 的實現。
軟件支持 Windows 和 Linux 的主機,采用 cmake 環境。如果在 Windows 下,可以選擇 Visual Studio 作為編譯工具。編譯過程如下:
1.cdsw
2.mkdir build
3.cmake .. && make
測試結果
在 petalinux 下生成的 BOOT.BIN 文件放在生成的上位機軟件目錄下,執行后可以看到更新 FLASH 的進度條在變化,說明 FLASH 被正常少燒寫。
完成后切換到 QSPI FLASH 啟動模式,上電觀察啟動過程。
-
amd
+關注
關注
25文章
5468瀏覽量
134161 -
控制器
+關注
關注
112文章
16361瀏覽量
178046 -
FlaSh
+關注
關注
10文章
1635瀏覽量
148023 -
上位機
+關注
關注
27文章
942瀏覽量
54813 -
Zynq
+關注
關注
10文章
609瀏覽量
47181
原文標題:開發者分享|使用 PCIE 更新 AMD ZYNQ? 的 QSPI Flash 參考設計
文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發者社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論