1、介绍
\quad
复位系统包含由硬件、看门狗、JTAG控制器和软件生成的复位。硬件复位包含上电复位PS_POR_B和外部系统复位PS_SRST_B。
\quad
在PS端有三个看门狗复位。
\quad
JTAG复位只有在DBUG时候才能生成。
\quad
软件复位是软件生成的子模块或系统级复位。
2、复位逻辑图
3、启动流程
1)完整复位顺序如上图所示。前两个步骤由外部系统控制,PS逻辑仅在电源接通复位(POR)被释放时才开始响应。当PS运行时,任何类型的复位都可以在POR之后发生。
2)POR_N被释放后,eFUSE控制器退出复位。它自动将一些数据应用到PLL,并向PS中的一些ram提供冗余信息。该活动对用户不可见,也不受用户影响。这个活动需要50到100 us的时间来完成。
3)POR信号可以异步的断言和释放。当POR信号被释放后,系统将使能时钟的生成,如果PLL使能则进入PLL时钟电路。BOOT_MODE引脚用来选择所有的PLLs启用和所有的PLLs禁用。当PLL被禁用时,引导过程需要更长的时间。
4)如果锁相环被启用,那么POR信号在这一点被延迟,直到锁相环时钟被锁定。如果选择了锁相环旁路模式,则POR信号不会延迟。
5)在BootROM开始执行之前,内部ram通过硬件向所有地址写入0来清除。
4、复位资源
4.1、电源复位(PS_POR_B)
\quad
PS支持外部上电复位信号。上电复位是整个芯片的主复位。这个信号使设备中每一个寄存器都能够复位。当PS_POR_B保持低,所有PS I/ O保持在三态,并且在大多数MIO引脚上启用弱上拉。每个MIO引脚的上拉由MIO_PIN_xx [PULLUP]位独立控制。位12的复位值可以在SLCR寄存器汇总表中读取。
\quad PS_POR_B复位引脚保持低,直到所有PS电源都处于所需的电压水平并且PS_CLK激活。它可以异步地断言,并进行内部同步和过滤。当信号被保持为低时,滤波器防止高电平的小脉冲进入PS。当信号被设定为高电平时,它不会过滤低电平的脉冲。检测到的任何低电平脉冲都会立即复位设备。
\quad PS_POR_B信号通常连接到来自电源的良好信号。当PS_POR_B取消断言时,系统将采样引导模式引脚(boot pins)并开始其内部初始化过程。
4.2.外部系统复位
\quad
上电复位擦除所有调试配置。外部系统复位允许用户重置设备内的所有功能逻辑,而不会干扰调试环境。例如,用户先前设置的断点在外部系统重置后仍然有效。当PS_SRST_B被保持为低值时,所有的PS I/ O都被保持为三态。
\quad 出于安全考虑,系统重置会删除PS中的所有内存内容,包括OCM。PL也会在system reset中重置。系统复位不会重新采样启动模式引脚。如果这个引脚没有在系统中使用,它就应该被上拉。
4.3.系统软件复位
\quad
用户可以通过断言软件重置来重置整个系统。通过断言PSS_RST_CTRL[SOFT_RST],整个系统被重置,最终结果与用户按下PS_SRST_B pin相同(除了REBOOT_STATUS寄存器值不同)。
\quad
与其他系统重置一样,所有ram都被清除,PL也被重置。
4.4.看门狗复位
\quad
看门狗定时器复位由看门狗定时器使能并超时后内部产生。在PS中有三个不同的看门狗计时器:一个系统级计时器(SWDT)和一个私有计时器在两个ARM核心(AWDT0和AWDT1)。系统级定时器重置信号总是重置整个系统,而私有看门狗计时器可以重置各自的ARM核心,或整个系统。
4.5.安全违反锁定
\quad
当检测到安全违规时,整个PS将被重置并锁定。安全锁定发生后,PS只有通过断言和反断言PS_POR_B重置pin才能再次激活。
4.6.调试复位
\quad
来自调试访问端口(DAP)控制器的调试复位有两种类型:调试系统复位和调试复位。
\quad
调试系统复位是由JTAG控制的ARM DAP命令。这将导致系统复位,就像外部系统复位一样。
\quad
调试复位复位SoC调试块的某些部分,包括JTAG逻辑。
\quad
PS不支持外部TRST,尽管它支持使用TMS断言重置序列。JTAG逻辑只有在上电复位或ARM调试访问端口(DAP)控制器(JTAG)断言CDBGRSTREQ时才会被重置。JTAG TCK时钟域的所有逻辑都被这个信号重置。
5、复位效果
6、PL复位
\quad
有四个单独的复位信号FCLKRESETN[3:0],路由到PL,可以用作PL逻辑的通用复位信号。这些复位信号不会被删除,直到PS退出其引导序列,并且用户代码对它们进行反断言。它们是由SLCR.FPGA_RST_CTRL寄存器控制的。当有效的总线事务存在时,不能重置连接到PS的PL逻辑,因为未完成的事务可能在PS中处于等待状态。
\quad
复位信号弱相关FCLK。如果用户需要同步重置,用户必须自己在PL中同步它(FCLK需要切换以使重置传播到PS)。