答疑解惑 | DE25-Nano开发板Uboot阶段与FPGA外设交互失败

近日测试友晶官网提供的de25_nano_revA_sdcard_console_v1.1.zip镜像(下载地址:https://www.terasic.com.cn/cgi-bin/page/archive.pl?Language=China&CategoryNo=69&No=1392&PartNo=4#contents),想在该镜像的 U-Boot 阶段通过内存映射的方式来读写 FPGA 外设(如 LED、开关、按键)对应的寄存器,从而实现在操作系统启动前快速验证FPGA逻辑是否正确。

下面选择测试FPGA端外设LED。首先,查阅资料https://www.intel.com/content/www/us/en/programmable/hps/agilex5/hps.html 可知Agilex 5的 lwHPS-to-FPGA基地址是0x2000000:

另外,友晶科技提供的 GHRD工程 (即de25_nano_revA_sdcard_console_v1.1.zip镜像对应的底层硬件设计工程)的 LED 组件偏移地址是0x00010080:

所以使用uboot命令mw写外设LED对应的寄存器时,其命令格式是:

复制代码
mw.l 0x20010080 0x00

0x00是写入寄存器的值,查看DE25-Nano的schematic file(或者直接查看manual说明)可以知道其LED是低电平点亮,高电平熄灭:

在DE25-Nano开发板上启动de25_nano_revA_sdcard_console_v1.1.zip镜像,在Uboot阶段按键盘任意键进入Uboot命令行输入环境,当使用mw.l 0x20010080 0x00命令写寄存时遇到这些提示:

友晶官方发布的de25_nano_revA_sdcard_console_v1.1.zip 制作步骤https://github.com/johnnyfan1979/public_doc/blob/main/documentation/DE25_Nano/DE25%20Nano%20Build%20Linux%20image%20from%20scratch.md中,Uboot脚本有如下这些内容:

但是在uboot命令行阶段这个脚本还没有被执行,所以要想在uboot阶段能够访问FPGA 端的外设,就需要手动执行bridge enable, 具体操作如下截图:

从上面截图可以看到, 手动执行了bridge enable以后mw命令就可以成功执行了,这时候可以看到DE25-Nano上的LED灯先灭(0xff),然后再亮(0x00)。

相关推荐
dadaobusi17 小时前
学习:chiesel,scala
学习·fpga开发·scala
爱吃汽的小橘18 小时前
异步FIFO核心揭秘:格雷码与指针同步
fpga开发
璞致电子18 小时前
基于 P201Pro | 接收端基础知识——Costas环锁定后为何仍会错?DQPSK与前导码相位校正(6)
经验分享·fpga开发·ad9361·软件无线电·sdr·qpsk·pzsdr
璞致电子2 天前
基于 AD9361 (PZSDR‑P201Pro) 软件无线电实战综述:从板卡选型、硬件平台升级到 GNU Radio QPSK 完整收发链路
经验分享·嵌入式硬件·fpga开发·软件无线电·sdr·璞致电子
炎龙铠甲会合体2 天前
从 SPEC 到上板:在 Zynq-7020 上用 RTL 手写一个 YOLO 卷积加速器(完整教程)
yolo·fpga开发·axi·芯片验证
FPGA小徐2 天前
Vivado 按键消抖与复位模块代码修复详解:KEY_TOP、key、rst_gen 完整实战
fpga开发
炎龙铠甲会合体2 天前
AXI2ICACHE— AXI4-Full 四路组相联指令 Cache 设计与 UVM 验证
fpga开发·面试·芯片验证
bingcheby2 天前
FMQL15/20/45 (复旦微青龙系列 PSOC)新手使用说明
fpga开发
漫漫长远2 天前
低功耗UPF介绍(一)
笔记·嵌入式硬件·学习·fpga开发
自小吃多2 天前
【Verilog/FPGA】存储器(数组)
嵌入式硬件·fpga开发