ZYNQ7045 系统升级实现方法(multiboot)

1.实现原理框图
ZYNQ7045 系统升级实现方法(multiboot)_第1张图片
系统分为6个部分组成:
fsbl:原始fsbl
googen_image:由3块组成分别为fsbl、bit、u-boot
update_image:由3块组成分别为fsbl、bit、u-boot
kernel_google:原始kernel
kernel_update:更新kernel
update_flag:更新标识
2.实现原理
flash存储格式及地址分配如上图所示
位于0x0位置的fsbl启动判断update_flag标识是否有效,如果无效则跳转到位置为0x100000的googen_image处,依次执行fsbl、加载bit、启动boot后跳转到位置为0xf00000的原始kernel中;
如果有效则跳转到位置为0x700000的update_image处,依次执行fsbl、加载bit、启动boot后跳转到位置为0x2200000的更新kernel中
通过该方法可实现不断电更新bit和kernel功能
3.操作方法
a.板子初始状态
通过jtag依次将fsbl、googen_image、kernel_google分别下载到地址0x0、0x100000、0xf00000处;
b.启动系统
通过网络接收更新文件update_image、kernel_update或者只接收其中一个,原始kernel接收更新文件后,依次下入地址:0x700000、0x2200000,如果只更新一个,只把文件写入相应的地址,写完之后向0x3c00000写入更新标识
c.更新文件
输入reboot命令,即可实现跳转,即运行update_image里面的bit,运行更新的kernel,或者只运行其中一个
4.结论
该方法可实现不断电更新zynq的bit和系统,目前已在项目中使用
注意
googen_image、update_image:可使用bootgen命令生成
可参考xapp1175

你可能感兴趣的:(ZYNQ7045 系统升级实现方法(multiboot))