Zynq-7000 SoC,Boot Sys - 重置原因机制不使用slcr.REBOOT_STATUS寄存器

描述

当器件因复位原因而不支持slcr.REBOOT_STATUS时,软件必须使用去功能的slcr.RESET_REASON寄存器来确定上次器件复位的原因(POR,SRST,调试和其他软件系统复位)。

用于确定所有芯片中的最后一次复位的原因的软件算法是类似的,但软件使用的寄存器是不同的。

生产器件使用slcr.REBOOT_STATUS。

生产和GES器件的描述如下所述。

影响: 不重要的。
解决方法: 软件可以使用slcr.RESET_REASON寄存器。请参阅解决方法详细信息。
受影响的配置: 希望了解系统重启原因的系统。
受影响的器件版本: 请参阅(Xilinx答复47916) - Zynq-7000 SoC芯片版本差异

运营细节

处理器复位源确定:

用户可以确定最近重置的来源。在工程样品(Z-7020 GES和Z-7045 GES器件)和所有生产器件之间进行的寄存器读取和清除工作已经发生变化:
GES器件:用户软件必须帮助维护slcr.RST_REASON寄存器的状态。
生产:用户软件必须帮助维护slcr.REBOOT_STATUS [22:16]寄存器位的状态。

系统从7个可能的源检测并记录器件复位的原因(并记录在RST_REASON或REBOOT_STATUS寄存器中):

系统看门狗复位[SWDT_RST内部信号]
处理器0复位[AWDT0_RST内部信号]
处理器1复位[AWDT1_RST内部信号]
系统软件复位(slcr.PSS_RST_CTRL [SOFT_RST]位)
调试系统重置[DBG_RST]
系统复位[PS_SRST_B引脚]
上电复位[PS_POR_B引脚]

RST_REASON和RST_REASON_CLR寄存器:

仅适用于工程样品(非生产器件)。对于生产器件,请使用REBOOT_STATUS寄存器。 Zynq-7000 SoC技术参考手册(TRM)中不再出现RST_REASON和RST_REASON_CLR寄存器。这些寄存器在此Xilinx答案中记录了工程样品(Z-7020 GES和Z-7045 GES器件)。

所有硅版本:

RST_REASON是软件只读(用户和BootROM)。寄存器包含7个对应于7个可能复位源的位。当硬件检测到复位时,硬件会设置一个位。寄存器累加每个复位原因,因此可以设置多个位。通过向RST_REASON_CLR [0]寄存器位写1来清除该寄存器。
注意:这些位在所有非POR复位中持续存在。发生POR复位时,只有POR位置1 = 1。

硅1.0和2.0:
为了使用户代码确定最近复位的原因,在读取复位原因后,用户代码应该清零RST_REASON寄存器,以便下次复位时,只设置一位。

硅3.0:
这些寄存器对用户不起作用,并且修改BootROM代码以管理这些寄存器。用户代码不需要(也不应该访问)RST_REASON和RST_REASON_CLR寄存器。

REBOOT_STATUS注册:

所有硅版本:
该寄存器包含32个读/写位,可在所有非POR复位期间持续存在。寄存器位可由硬件,BootROM或用户代码写入,具体取决于系统状态和芯片版本。
位[15:0]:当引导过程失败时,BootROM将错误代码写入[15:0]位。

注意 :硅3.x的错误代码与硅1.0 / 2.0中使用的错误代码不同。 (Xilinx答复55082)中描述了1.0 / 2.0的错误代码。生产硅的错误代码在TRM中描述。

硅1.0和2.0:
位[31:16]:未由BootROM或硬件分配或写入。

硅3.0:
位[31:24]:未由BootROM或硬件分配或写入。
比特[23]:保留。
位[22:16]:为了使用户代码确定最近复位的原因,用户代码在读取之后应该清除这些位,以便下次复位时,只设置一位。

寄存器 GES Z-7020和GES Z-7045器件生产器件

slcr.REBOOT_STATUS

0xF800_0258

31:24

通用32位R / W字段
除了POR复位外,所有复位都会持续存在。

未由BootROM或硬件分配或写入。

通用8位R / W字段,除了POR复位之外的所有复位除外。
未由BootROM或硬件分配或写入。

23 保留的
22 上电复位(POR),PS_POR_B信号
21 系统复位(SRST_B),SRST_B信号
20 调试重置(DBG_RST)
19 SLC软复位(SLC_RST)
18 CPU 1看门狗复位(AWDT1_RST)
17 CPU 0看门狗复位(AWDT0_RST)
16 系统看门狗复位(SWDT_RST)
15:0 BootROM错误代码

slcr.RST_REASON

0xF800_0250

31:7 保留的

功能不足的注册

6 上电复位(POR),PS_POR_B信号
调试重置(DBG_RST)
4 系统复位(SRST_B),SRST_B信号
3 CPU 1看门狗复位(AWDT1_RST)
2 CPU 0看门狗复位(AWDT0_RST)
1 系统看门狗复位(SWDT_RST)
0 BootROM错误代码
编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-31 13:11:34 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它