首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >已启用的旋风五号SDRAM桥被阻塞

已启用的旋风五号SDRAM桥被阻塞
EN

Stack Overflow用户
提问于 2017-09-30 14:23:55
回答 1查看 1.2K关注 0票数 1

我有一个DE10-Nano 旋风V开发板,从Terasic获得了1GB的外部DDR3内存,我想实现一个驱动程序,它可以管理运行在ARM Cortex-A9处理器上的DDR3与Cyclone的DDR3结构之间的通信。

使用dma_alloc_coherent,我分配了一定数量的内存,并将硬件地址写入我编写的模块。

然后,我继续通过SDRAM AXI接口将任意数字写入给定地址,但很显然,SDRAM从机从未断言过或WREADY信号。

我已经将SDRAM AXI接口配置为在325 MHz、be 256位 wide (datalength)、32位寻址长度和AXI3从上运行。SDRAM接口配置为TrustZone-aware设备(ARM TrustZone设置)

我还将一些其他配置行硬连接到AXI从属程序,现在我将列出这些配置线:

代码语言:javascript
复制
assign axm_m0_arburst = 'd0;
assign axm_m0_arcache = 'd0;
assign axm_m0_arid = 'd0;
assign axm_m0_arlen = 'd0;
assign axm_m0_arlock = 'd0;
assign axm_m0_arprot = 'd0;
assign axm_m0_arsize = 'b101;

assign axm_m0_awburst = 'd0;
assign axm_m0_awcache = 'd0;
assign axm_m0_awid = 'd0;
assign axm_m0_awlen = 'd0;
assign axm_m0_awlock = 'd0;
assign axm_m0_awprot = 'd0;
assign axm_m0_awsize = 'b101;
assign axm_m0_wid = 'd0;
assign axm_m0_wstrb = 'hFFFFFFFF;

当查看Linux中的FPGA桥驱动程序(/sys/class/fpga- bridge / be 4)时,状态显示为“已启用”。

这座桥为什么还会阻碍通讯?

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-01 12:08:26

解决问题:

很明显,尽管Linux说这些桥接器是启用的,但它们没有。一个人必须将特定的配置位写入HPS的配置结构中,否则模块就无法工作。

  1. 生成一个具有Quartus组装步骤的切换文件夹。这将生成所有桥接器的配置描述,以及其他内容。
  2. 使用bsp-编辑器生成和编译第一阶段引导加载程序,它将具有一些全局变量,存储配置值并使它们可用于引导脚本。
  3. 生成具有以下内容的引导脚本:
代码语言:javascript
复制
echo -- Programming FPGA --
fatload mmc 0:1 $fpgadata soc_system.rbf;
fpga load 0 $fpgadata $filesize;

run bridge_enable_handoff;
mw $fpgaintf $fpgaintf_handoff;
mw $fpga2sdram $fpga2sdram_handoff;
go $fpga2sdram_apply;
mw $axibridge $axibridge_handoff;
mw $l3remap $l3remap_handoff;
#md $fpgaintf;
#md $fpga2sdram;
#md $axibridge;

setenv fdtimage soc_system.dtb;
setenv mmcroot /dev/mmcblk0p2;
setenv mmcload 'mmc rescan;${mmcloadcmd} mmc 0:${mmcloadpart} ${loadaddr} ${bootimage};${mmcloadcmd} mmc 0:${mmcloadpart} ${fdtaddr} ${fdtimage};';
setenv mmcboot 'setenv bootargs console=ttyS0,115200 root=${mmcroot} rw rootwait; bootz ${loadaddr} - ${fdtaddr}';

run mmcload;
run mmcboot;

注释过的行会导致崩溃,因为显然数据是不对齐的,处理器不允许这种访问。我将对这个问题做进一步的调查。

关于这些主题的进一步阅读,我推荐以下几页:

旋风V HPS记忆图(Altera)

FPGA软件编程教程(火箭板)

如何启用HPS桥(Altera)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46503606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档