Xilinx启动时跳转启动位置

1 软复位操作

PS_SRST_B功能默认是关闭的,若需要使用软复位功能,则需要先打开该功能。
BootROM会在启动镜像文件的存储位置开始搜索"XLNX"字符,若在相应位置没有搜索到该字符,则会按照32KB的间隔继续向后搜索"XLNX"字符,直至找到该标志字符并进行后续的启动加载操作。把自己需要启动的镜像文件所在位置写入CSU.csu_multi_boot register,注意写入的这个值是镜像文件存储位置以32KB为单位的索引值,假如存储位置是在64KB位置,则其写入的索引值是64KB/32KB,即写入值是2。
Multiboot机制
多个boot bin文件放在flash的不同地址。
可以修改multiboot register然后软件里触发软复位,这样zynq-7000会重新从multiboot register指定的flash偏移地址去boot,multiboot register的值每加一,偏移地址增加32KB。
multiboot register只能被POR reset清除。

1.原理
Golden Image Search
当没有有效头部时,BOOTROM会每32KB搜索一次有效头部。这个机制虽然慢,但是可靠。

BootROM Multiboot
当BOOTROM发现一个有效头部,之后跳转到FSBL,FSBL可以加载Multiboot register的值,之后触发一个软件复位。软件复位之后,BOOTROM将会使用Multiboot register中的地址去读取BOOTROM header。这个机制可以用来:用户想去运行自检程序,之后跳转到真正的应用程序。

FSBL Fallback
从一个error恢复之后,FSBL会做出Fallback,并使BOOTROM去加载另外一个映像(golden image)。FSBL更新Multiboot register的值,并产生软件复位,使BOOTROM加载运行另外一个可用的映像。其中,FSBL fallback发生,可以有软件复位,也可以没有软件复位。(可以参考UG821)

  1. 涉及到的两个寄存器
    Reboot status register: 0x60782000
    Multiboot Register: 0x0000C000

1.UG585 1620页 Register (slcr) REBOOT_STATUS
此寄存器不会发生改变,直到重新上电复位,复位值:0x00400000,也正好代表上电复位。

  1. UG585 1159页 Register (devcfg) XDCFG_MULTIBOOT_ADDR_OFFSET
    此寄存器用来记录上一次的启动地址,开机会复位。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值