答疑解惑 | 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)。

相关推荐
FPGA小迷弟15 小时前
FPGA工程师常见面试问题,有参考答案,必学!!!
fpga开发·面试·职场和发展·verilog·fpga·modelsim
followless1 天前
linux server中搭建questasim 10.6c & ise14.7
linux·fpga开发
乌恩大侠1 天前
【AI-RAN】WNC O-RU 配置、英伟达 AI-RAN、
fpga开发·o-ru
小麦嵌入式3 天前
FPGA入门(一):手把手教你用 Vivado 创建工程并仿真
stm32·单片机·嵌入式硬件·mcu·fpga开发·硬件架构·硬件工程
m0_46644103詹湛3 天前
(一)FPGA :基础概念详解(Xilinx平台)
笔记·学习·fpga开发·verilog
xyx-3v4 天前
ZYNQ 简介
fpga开发
xyx-3v4 天前
Zynq-7000
fpga开发
xyx-3v4 天前
zynq7010和zynq7020的区别
fpga开发
xyx-3v4 天前
LUT(Look-Up Table,查找表)的定义与核心概念
fpga开发
明德扬5 天前
K7+AD9144 多模式实测|8 种 JESD204B 配置全覆盖验证
fpga开发