作者:Jackie Gao,AMD工程师;来源:AMD Xilinx开发者社区
简介
ZYNQ-7000的S_AXI端口提供了外设访问PS内部外设控制器的接口,这其中包括4个S_AXI_HP端口以及两个S_AXI_GP端口。一般来说,可以访问的内部资源包括DDR控制器,QSPI控制器,OCM,IIC,SPI等。
本教程提供一个最小的参考设计,使上柆机可以通过PCIE端口,通过S_AXI_GP0端口访问ZYNQ内部的QSPI控制器,用来更新Flash的启动分区。
软件方面,移植了embeddedsw的相关驱动代码至xdma平台,并提供了一个简单的上位机测试程序,用来烧写启动镜像至Flash分区。
教程中所有涉及的设计及代码均在Windows和Linux(Ubuntu20.04)平台下作了验证。
系统设计
1. 系统设计框图参考如下。在设计实例化了一个XDMA IP,通过其M_AXI端口连接至ZYNQ的S_AXI_GP0,以访问PS QSPI控制器。
![](https://cdn.eetrend.com/files/2023-11/wen_zhang_/100576066-325035-tu1xitongshejikuangtu.jpg)
2. BD中需要分配XDMA的M_AXI地址如下,可以用Vivado的自动地址分配工具完成。
![](https://cdn.eetrend.com/files/2023-11/wen_zhang_/100576066-325036-tu2fenpeigongju.jpg)
3. 如果有访问其它外设的需求,详细的地址可以参考UG585的Table 4‐1: System-Level Address Map
环境需求
硬件环境
软件环境
代码结构
硬件
固件
软件
1.cd sw
2.mkdir build
3.cmake .. && make
测试结果