没有合适的资源?快使用搜索试试~ 我知道了~
FPGA硬核boot在线升级方案 本设计采用verilog语言编写fpga在线升级bootloader程序,工程用的双压缩镜像模式,APP和Boot程序映像分别储存在image1(CFM2和CFM1)和image0(CFM0)。 程序升级过程使用onchip flash ip核操作片内flash进行选定扇区擦除和读写,跳转映像使用dual configuration ip核进行映像选择和重配置触发。
资源推荐
资源详情
资源评论
FPGA 硬核 boot 在线升级方案
本设计采用 verilog 语言编写 fpga 在线升级 bootloader 程序,工程用的双压缩镜
像模式,APP 和 Boot 程序映像分别储存在 image1(CFM2 和 CFM1)和 image0(CFM0)。
程序升级过程使用 onchip flash ip 核操作片内 flash 进行选定扇区擦除和读写,跳
转映像使用 dual configuration ip 核进行映像选择和重配置触发。
1. Altera MAX10 FPGA 片内 Flash 介绍
MAX 10 FPGA 采用 TSMC 的 55 nm 嵌入式 NOR 闪存技术制造,并提供双配置
CFM(Configration Flash Memery)和 UFM(User Flash Memery)。配置灵活支持双
配置,也支持 CFM 与 UFM 相互共享。不同型号芯片对应最大的 UFM 容量从
Quartus 软件里面即可找到 MAX10 依然是 SRAM 结构,只是片内集成了 Flash,
因此加速了配置启动速度,减少了外设,从而简化了设计。写入慢,读取快。
比 eeprom 多一步擦除过程。
max10 fpga 上电后自动加载片内 flash 上的镜像,片内 flash 空间如图所示。
除了 10M02,所有 CFM 都包含三个扇区,CFM0、CFM1 和 CFM2。因选择的内部
配置模式,对这些扇区的编程方式会有所不同(官方文档引用),所以我这边使
用的双压缩镜像模式, APP 和 Boot 镜像分别储存在 image1(CFM2 和 CFM1)和
image0(CFM0)。
2. 升级原理
MAX10 系列的启动流程如图所示,上电后会采样 CONFIG_SEL pin 的值,高电平
则从 image1 加载,低电平则从 image0 加载。我们把 image1 定为 APP 版本,image0
定为 bootloader 版本。
本设计默认外部改变引脚 CONFIG_SEL 电平为低,开机从 boot 程序启动。版本
升级则是通过操作 dual configuration(dualboot)ip 核驱修改内部寄存器值从而
实现映像切换和重配置功能。
两个版本的 flash 存储地址范围如下图所示,image1 即 factory 版本,image2 即 APP
版本,我们每次升级都是对 APP 版本对应的 flash 地址进行更新。Image1 的
sectorID 是 5,image2 的 sectorID 是 3-4
整个 boot 升级过程包含几个步骤:
1.解除对应 image 的 sector 保护,通过 On-ChipFlash 这个 IP 的 avalon-csr 接口控
制。
2.擦除对应 image 的 sector,通过 On-ChipFlash 这个 IP 的 avalon-csr 接口控制。
3.更新 flash 里的数据,通过 On-ChipFlash 这个 IP 的 avalon 接口写入 flash。
4.不下电的情况下重配置,通过 dualboot 这个 IP 控制
设计升级流程图:
剩余10页未读,继续阅读
资源评论
weixin_45343573
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功