由preloader从QSPI配置CYCLONE V FPGA

cyclone v fpga可以由preloader从QSPI读取,并通过FPGAMANAGER进行配置。FPGA文件需要使用rbf fppX16格式,可以使用压缩格式。这种配置方式可以使preloader提前将FPGA配置好,在启动vxworks系统前,使自己开发FPGA部分提前进入配置,方便软件调试自己开发的FPGA模块。我的QSPI大小为32M,主要用于存放preloader,param,vxboot,vxworks。布局如下所示:


我们打开bsp-editor应该有如下配置:


我指定vxboot,或者说使用的uboot在QSPI偏移的0x100000位置处。

打开uboot-socfpga/include/configs/socfpga_common.h文件,找到CONFIG_SPL_FPGA_LOAD,去掉注释,打开该选项,preloader将会执行从QSPI中读取rbf文件进行FPGA配置。FPGA配置的RBF文件位置,由CONFIG_SPL_FPGA_QSPI_ADDR定义。如最上面那张的图的布局,我们的FPGA RBF文件在QSPI偏移的2M处,所以

#define CONFIG_SPL_FPGA_QSPI_ADDR   (0x200000)

到这PRELOADER配置结束,可以编译PRELAODER生成镜像,烧写到QSPI的0偏移处。

下面我对quartus的生成的fpga sof文件进行转换:


打开转换器:


按上面的设置进行转换。

生成的rbf文件是原生块文件,烧写在QSPI中,preloader是无法知道编译文件大小的。uboot preloader采用mkimgage工具将rbf文件加一个可以指示文件大小的img头部。这样才能让preloader知道配置文件长度。

mkimage.exe" -A arm -T firmware -C none -O vxworks -a 0x08000040 -e 0 -n "FPGA" -d fpga.rbf fpga.bin

上面命令只关心红色字体部分就可以了。其它部分prelaoder在这个过程中并不关心。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值