DM8168有7种类型的系统级复位,表7-3列出了所有的复位类型:复位的发起者和每个复位的效果。
表7-3系统级复位类型
类型 |
发起者 |
复位除了仿真模块以外的所有模块 |
复位仿真模块 |
锁定BOOT脚 |
产生/RSTOUT信号 |
上电复位(POR) |
/POR脚 |
Yes |
Yes |
Yes |
Yes |
外部热复位 |
/RESET脚 |
Yes |
No |
Yes |
Yes |
仿真热复位 |
片内仿真逻辑 |
Yes |
No |
No |
Yes |
看门狗复位 |
看门狗定时器 |
Yes |
No |
No |
Yes |
软件全局冷复位 |
软件 |
Yes |
Yes |
No |
Yes |
软件全局热复位 |
软件 |
Yes |
No |
No |
Yes |
测试复位 |
/TRST脚 |
No |
Yes |
No |
No |
上电复位(POR)由/POR脚发起,用来复位整个芯片,包括测试和仿真逻辑。POR常被称为冷启动,因为在芯片上电周期中,必须保持/POR为低,但是,发起一个上电复位,并不需要芯片处于上电周期。
在上电复位期间,必须按照下面的顺序:
l 等待电源达到正常的操作条件,同时保持/POR为低
l 等待输入时钟源SERDES_CLKN/P稳定(如果被系统使用),同时保持/POR为低
l 一旦电源和输入时钟稳定,/POR必须继续保持低电平至少32个DEV_MXI周期,在/POR为低期间,下面的事情会发生:
n 所有的脚进入Hi-Z模式
n PRCM为芯片内的所有模块断言复位
n PRCM开始用旁落模式的PLLs传播这些时钟带芯片
l /POR现在可以变高,一旦/POR变高,随之会:
n BOOT脚被锁定
n 对ARM Cortex-A8的复位会被解除,MPU时钟运行
n 所有其它域的复位被解除,域时钟开始运行
n 每个外设的时钟、复位、掉电状态由PRCM缺省配置来决定
n ARM Cortex-A8开始从缺省的地址(Boot ROM)执行程序
外部热复位由/RESET脚来发起,这将复位芯片中除了ARM Cortex-A8中断控制器、测试和仿真模块以外的所有部分。在热复位期间,仿真任务继续有效。
在热复位期间,必须按照下面的顺序:
l 电源供电并且输入时钟稳定
l /RESET脚必须保持低电平至少32个DEV_MXI周期。在/RESET脚为低电平期间,会发生下面事件:
n 所有脚,除了测试和仿真脚外,进入HI-Z模式
n PRCM为芯片内的所有模块断言复位,除了ARM Cortex-A8中断控制器、测试和仿真
n 断言/RSTOUT
l /RESET脚现在可以变高,一旦/RESET脚变高,随之会:
n BOOT脚被锁定
n 对ARM Cortex-A8和那些不具有局部处理器的模块的复位会被解除,除了ARM Cortex-A8中断控制器、测试和仿真。
n 解除/RSTOUT
n 每个外设的时钟、复位、掉电状态由PRCM缺省配置来决定
n ARM Cortex-A8开始从缺省的地址(Boot ROM)执行程序
n 由于ARM Cortex-A8中断控制器不受热复位的影响,应用软件必须清除ARM Cortex -A8所有的悬挂中断
仿真热复位由片上仿真模块发起,除了不锁定BOOT脚以外,它与外部热复位(/RESET)具有相同的效果和条件。需要通过仿真器及CCS IDE菜单操作来发起仿真热复位。
看门狗复位在看门狗定时器达到0时产生,除了不锁定BOOT脚以外,它与外部热复位(/RESET)具有相同的效果和条件。另外,一个看门狗复位总会产生/RSTOUT有效。
软件全局冷复位是在软件的控制下产生的,除了不重新锁定BOOT脚以外,它与上电复位(/POR)具有相同的效果和条件。
软件通过写PRM_RST_CTRL寄存器的RST_GLOBAL_COLD_SW来产生软件全局冷复位。
软件全局热复位是在软件的控制下产生的,除了不锁定BOOT脚以外,它与外部热复位(/RESET)具有相同的效果和条件。
软件通过写PRM_RST_CTRL寄存器的RST_GLOBAL_WARM_SW来产生软件全局热复位。
仿真器断言/TRST脚,就会产生测试复位,它的唯一效果是复位仿真逻辑。
芯片内不同模块的局部复位通过编程PRCM和/或模块的内部的寄存器来产生。局部复位仅影响与之相关的模块,对芯片的其余部分没有影响。
当上面说的复位源同时发生的时候,芯片仅处理优先级最高的复位请求,复位请求的优先级由高到低的顺序如下:/POR、/TRST、/RESET、仿真热复位、看门狗复位、软件全局冷/热复位。
复位状态寄存器(PRM_RSTST)包含最近系统发生的复位的信息。
芯片支持PCIe模块的复位隔离,这意味着,PCIe子系统的复位,不会导致芯片其它部分的复位。
当芯片作为一个PCIe RC使用的时候,可以通过软件操作PRCM来对PCIe子系统进行复位。软件在断言这个复位之前,首先通过编程PRCM里的寄存器CM_DEFAULT_PCI_CLKCTRL,使PCIe子系统进入IDLE状态,以确保不会再有PCIe交易发生。PCIe子系统退出复位后,应该重新执行总线枚举,把所有端点(EP)看作它们好像刚刚被连接一样。
当芯片作为PCIe端点(EP)的时候,当收到一个带内复位时,PCIe子系统产生一个中端,软件应该处理这个中断,使PCIe子系统进入IDLE状态,然后通过PRCM,断言PCIe局部复位。
除了测试复位,前面提到的所有芯片级复位,都会对PCIe子系统复位,因此芯片应该向所有下游芯片发布热复位,并随着复位的退出,重新枚举总线。
/RSTOUT反映芯片复位状态。芯片退出复位状态的时候,这个信号脚为高。另外,当/POR和/或/RESET断言时,这个输出脚总是3态和在这个脚上的内部上拉电阻被禁止,因此,一个外部上/下拉能被用来设置这个脚在/POR或/和/RESET断言时的状态(高电平/低电平)。关于外部上/拉下详细信息见4.2.1节。当下面的复位发生时,这个输出总是断言为低:
l /POR
l 外部热复位
l 仿真热复位
l 软件全局冷/热复位
l 看门狗复位
/RSOUT脚保持断言,直到PRCM将ARM Cortex-A8处理器从复位状态释放出来。
芯片仿真和跟踪仅由下面源来复位:
l /POR
l 软件全局冷复位
l /TRST
除了这三个复位,其它任何复位都不会影响仿真和跟踪调试功能
每个电源域有一个专用的热复位河冷复位,一个电源域的热复位在下面两个条件之下会断言:
l 上电复位,外部热复位,仿真热复位或软件全局冷/热复位发生时。
l 当电源域从ON状态切换到OFF状态的时候
一个电源域的冷复位会发生在下面两个条件之一:
l 上电复位、或软件全局冷复位
l 当电源域从ON状态切换到OFF状态的时候
当出现上面描述的复位(除了测试复位以外)时,所有的芯片管脚处于Hi-Z状态,除了:
l 仿真脚。这些脚仅在/POR或全局软件冷复位的时候,才会处于Hi-Z状态。
l /RSOUT
另外,PINCTL寄存器(这个寄存器控制脚的复用),摆幅(slew)控制、使能上/下拉、以及使能接收器复位到它们的缺省状态。关于这一点见SPRUGX8文档。
内部上下拉(IPU/IPD)电阻在复位期间或在复位后被使能。