【Zynq UltraScale+ MPSoC解密学习7】Zynq UltraScale+的PMU

摘要:
POR复位可以完全清除PMU状态,保证所有的电源域上电和所有的隔离被禁用。外部master通过APB接口访问PMURAM时PMU处理器必须处于休眠模式。这是由MBIST和scan清除功能实现的。2个AXImaster口中,其中一个是32bit,来自三模冗余处理器;另外一个master口来自低功耗电源域的主互连,该接口允许系统中的任何主机访问PMU从机。2个APBslave口是PMURAM和PMU全局寄存器文件。

一、简单介绍
1.1 概念
PMU,platform measurement unit,平台管理单元。
很多人会将它当做power measurement unit(电源管理单元)的缩写,认为就是管理电源和功耗的。其实PMU除了电源管理功能,还具有其他功能。官方描述如下:
 系统启动前的初始化
 电源管理
 软件测试库执行(可选)
 系统错误处理

1.2 总览
在电源管理章节里,我们简单介绍了Zynq U+里的4个功耗域。其中PMU模块本身处在低功耗域,如下图为PMU的模块框图:
【Zynq UltraScale+ MPSoC解密学习7】Zynq UltraScale+的PMU第1张

PMU包括以下子组件:
 专用的、容错率高的三模冗余处理器
 ROM中会存放PMU ROM代码,功能包括PMU的启动顺序、处理电源开关请求的例程和中断
 用于存放代码和数据的带ECC功能的128kb内存
 只能被PMU访问的PMU本地寄存器
 可以被PMU处理器和系统里其他总线的master口访问的PMU全局寄存器。包括所有电源、隔离和复位请求寄存器。还包括错误捕获寄存器和系统电源状态寄存器。
 PMU外部的master接口可以通过32位的AXI slave接口访问PMU的RAM和全局寄存器。
 PMU中断控制器管理了PMU的23个中断,其中四个来自处理器间的互连(IPI)
 PMU/MIO/PL相连的GPI和GPO寄存器接口,以及其他PS和PMU的互联信号:
1) 6个输出,6个输入
2) PMU端有32个GPO输出到PL,PL端有32个GPI输入到PMU
3) 47个系统错误到PMU
4) CSU的错误码
5) 32个MBIST状态信号和32个MBIST完成信号
6) 3个直接复位控制信号
7) 4个AIB状态信号和4个AIB控制信号
8) 11个逻辑清除状态信号
9) DDR保持控制信号
10) 3个从PL端到CSU的可编程配置信号
 可以通过PSJTAG接口访问使用PS TAP控制器的PMU MDM控制器

二、PMU功能
2.1 PMU处理器
PMU处理器是一个不带cache的三模冗余处理器。处理系统通过在PMU上应用冗余和在RAM侧应用ECC来提供容错能力。
下图为PMU处理器的实现功能(实际主要是一个MicroBlaze核)。

【Zynq UltraScale+ MPSoC解密学习7】Zynq UltraScale+的PMU第2张

2.2 PMU处理器接口

PMU提供输入和输出信号,这些信号按功能可以分组如下:
 32位的AXI master接口和低功耗域(LPD)互连,允许PMU访问其他PS资源,包括SLCR寄存器和IPI块
 通过LPD inbound switch的32位AXI slave接口,允许外部处理器访问PMU全局寄存器和PMU RAM
 PMU时钟和复位信号。
 和PS内所有islands相连的电源控制接口:
1) L2、OCM和TCM RAMs
2) APU_Cores[3:0]
3) 双核Cortex®-R5实时处理器
4) USB0、USB1
5) GPU像素处理器PP0和PP1
6)全功率域和PL功率域的crossing bridges

2.3 PMU时钟
PMU工作在SysOsc时钟(180 MHz±15%),该时钟由位于系统监视器(PS SYSMON)模块内的内部环形振荡器(IRO)提供。时钟一直被门控着直到POR模块检测到VCC_PSAUX升高。一旦电压达到阈值,SysOsc便开始振荡工作。同时,PMU的处理器也跟着复位。复位需要一个时钟沿的触发,等到电压升高,POR_B输入也会跟着起来。这保证了PMU处理器GPOs在器件上电后能够初始化。

2.4 PMU复位
PMU有两个复位,POR复位和系统复位SRST,这两个复位都来自于芯片的复位模块。
POR复位可以完全清除PMU状态,保证所有的电源域上电和所有的隔离被禁用。POR复位后,PMU在低功耗和全功耗域执行scan和BIST清除功能。
另一方面,SRST只能复位PMU处理器子系统、PMU互连以及局部和全局寄存器的一个子集,而将大多数局部和全局寄存器保留在复位之前的状态。当通过SRST触发PMU重启时,将不会清除电源状态,PS的电源状态会被保留。
如果是直接上下电复位,将清除所有RAMs和FIFO电源状态。

2.5 PMU RAM
PMU的很多功能是由PMU处理器执行的软件提供的。ROM内存包含提供默认功能的指令。用户如果要扩展或替换这些功能,或者提供新功能,可以将软件下载到PMU处理器的128kb RAM中。PMU包括一个128kb的RAM和32位的ECC,用于保存数据和代码。PMU RAM可由PMU处理器和外部master接口通过PMU slave接口去访问。
写PMU RAM时,只支持以word为单位,也就是4byte,不支持byte为单位。如果写入的数据少于4个byte,那么必须先读取、修改这4byte,然后将整个4byte数据写回。
外部master通过APB接口访问PMU RAM时PMU处理器必须处于休眠模式。如果PMU处理器没有处于休眠状态时访问,PMU RAM将挂起系统。

2.6 PMU ROM
PMU内有一块ROM空间,包含PMU的引导代码、中断向量和PMU可以执行的服务例程(根据请求执行)。PMU ROM负责PMU中的各种功能,以下是ROM代码可以执行的任务列表:
1) Pre-boot任务
 清除PMU RAM空间
 使能系统监控器,检查低功耗域是否供电
 根据初始化设置配置PLL时钟
 触发和排序必要的scan和PS的BIST清除
 释放CSU复位
2) Post-boot任务
 PS内的功耗域上下电
 使能和控制BISR(内置的自修复功能)
 当要求或作为主电源的一部分时,充当复位模块
3) 根据要求执行固件代码

2.7 MBIST功能
MBIST,memory built-in self test,存储器内部自测试。
ROM代码可以在除去PMU外的LP域或整个FP域上启动MBIST clear操作。当使用MBIST测试或清除内存时,系统的其余部分可以正常工作。
在用户可以通过配置MBIST_RST、MBIST_PG_EN和MBIST_SETUP寄存器来启动该特定块上的MBIST进程。MBIST_DONE位被用来指示进程是否已经完成,MBIST_GOOD用来指示进程状态,0表示失败1表示成功。
关于MBIST模块的具体功能,这里不做过多描述和解析,可以参考ug1087相关文档,以后有机会也可以单独开章节学习。

2.8 Scan清除功能
归零化过程中,所有的存储元素都要移位归零,然后再验证该操作是否正确。这是由MBIST和scan清除功能实现的。scan清除引擎只能由PMU和CSU处理器通过直接接口进行控制,其他处理器如果要请求启动任何特定的can清除引擎都必须通过SCAN_CLR_REQ寄存器。当scan清除引擎启动时,来自引擎的完成状态信号从1变成0,这个信号直接路由到PMU的LOGCLR_ACK寄存器,将引擎的完成状态传递给PMU。当一个scan清除引擎完成它的操作时,它的完成状态位从0变成1,生成一个到PMU的中断信号。清除操作是否成功可以通过PMU LOGCLR_STATUS全局寄存器中的位来检查。

2.9 PMU Interconnect
PMU包含一个2*3的互连,支持2个AXI master,2个APB slave和1个AXI slave。
2个AXI master口中,其中一个是32bit,来自三模冗余处理器;另外一个master口来自低功耗电源域的主互连,该接口允许系统中的任何主机访问PMU从机。
2个APB slave口是PMU RAM和PMU全局寄存器文件。
1个AXI slave口在路由到LPD交换机的端口上,只允许被PMU处理器发起访问。

2.10 PMU I/O寄存器
PMU IO寄存器包括所有和中断、GPI/GPO以及可编程间隔计时器PITs相关的寄存器。PMU_IOMODULE寄存器控制中断控制器、GPI{0:3}、GPO{0-3}和PIT0-PIT3。PMU_GLOBAL寄存器使能系统处理器来控制中断并触发PMU服务请求。PMU处理器的Memory空间如下表:

【Zynq UltraScale+ MPSoC解密学习7】Zynq UltraScale+的PMU第3张

2.11 PMU全局寄存器

全局寄存器集包括用作PMU和其他块之间的通信手段的寄存器,以同步有关电源/系统管理和复位的活动。

2.12 GPIs和GPOs
PMU处理器包括4个本地的GPI banks和4个GPO banks。其中,GPI0和GPO0保留给专用的PMU处理器子系统特性,GPI3和GPO3保留给和PL的通信。GPI1、GPI2、GPO1和GPO2用于PS硬件特性与PMU之间的通信。具体的寄存器描述这边不做深入研究,大家可以看看ug1085。

2.13 PITs
PMU处理器包括4个32bit的可编程间隔计时器PITs。PITs的时钟源是PMU的固定系统振荡器SysOsc。这些是通用计时器,用于作为延迟计数器或事件调度,可以通过GPO0配置。

2.14 PMU中断
当PMU处理器接收到一个中断时,它会分流到PMU的ROM,ROM代码必须在PMU I/O模块的中断控制器中检查正在挂起的中断寄存器并分流到ROM或RAM对应的中断服务例程里。挂起中断之间的优先级可以由PMU固件强制执行,如果不存在,则由ROM来管理优先级。

2.15 PMU的错误处理和自救逻辑
PMU对每个错误负责获取、上报并采取合适的处理。每个系统错误都定义在PMU_GLOBAL错误状态寄存器中。PMU还包括处理此功能所需的寄存器、逻辑和接口。
具体如何处理和自救,这里先不详细描述,可以参考ug1085。

————————————————
版权声明:本文为CSDN博主「xinxulsq」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xinxulsq/article/details/103239535

【Zynq UltraScale+ MPSoC解密学习7】Zynq UltraScale+的MPU

免责声明:文章转载自《【Zynq UltraScale+ MPSoC解密学习7】Zynq UltraScale+的PMU》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Electron 使用 Tray设置图标的路径问题element Tree 树形控件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Modbus,看这个就行了

Modbus基础知识概念 Modbus通信协议由Modicon公司(现在的施耐德电气Schneider Electric)于1979年为可编程逻辑控制(即PLC)通信而发表。目前,Modbus已经成为工业领域通信协议的业界标准,并且现在是工业电子设备之间常用的连接方式。Modbus作为目前工业领域应用最广泛的协议,与其他通信协议相比,有以下特点: Mo...

(stm32f103学习总结)—stm32定时器中断

一、定时器介绍STM32F1的定时器非常多,由2个基本定时器(TIM6、TIM7)、4个通 用定时器(TIM2-TIM5)和2个高级定时器(TIM1、TIM8)组成。基本定 时器的功能最为简单,类似于51单片机内定时器。通用定时器是在基本 定时器的基础上扩展而来,增加了输入捕获与输出比较等功能。高级定 时器又是在通用定时器基础上扩展而来,增加了可编程死区互...

Linux 信号signal处理机制

信号是Linux编程中非常重要的部分,本文将详细介绍信号机制的基本概念、Linux对信号机制的大致实现方法、如何使用信号,以及有关信号的几个系统调用。 信号机制是进程之间相互传递消息的一种方法,信号全称为软中断信号,也有人称作软中断。从它的命名可以看出,它的实质和使用很象中断。所以,信号可以说是进程控制的一部分。 一、信号的基本概念 本节先介绍信号的一...

单片机中的ROM,RAM和FLASH的作用

ROM,RAM和FLASH的区别,下面主要是具体到他们在单片机中的作用。 一、ROM,RAM和FLASH在单片中的作用ROM——存储固化程序的(存放指令代码和一些固定数值,程序运行后不可改动)c文件及h文件中所有代码、全局变量、局部变量、’const’限定符定义的常量数据、startup.asm文件中的代码(类似ARM中的bootloader或者X86中的...

Thinkpad 笔记本待机亮度变低解决办法

        当你发现笔记本从待机恢复后,屏幕亮度变低,即使你调节亮度,它也很低而且亮度并不正常的。解决办法就是拔掉电源,然后重新插上,亮度就能恢复。当然我之前都是重启电脑解决。         但是,有的时候却不会变低。这是为什么呢?大家可以做这样一个实验:在待机的时候,笔记本有插电源和不插电源之分,插电源代表A,不插电源代表B。从待机恢复也有插电源和...

Linux内核学习笔记五——中断推后处理机制

一 中断硬件通过中断与操作系统进行通信,通过对硬件驱动程序处注册中断处理程序,快速响应硬件的中断。 硬件中断优先级很高,打断当前正在执行的程序。有两种情况: 硬件中断在中断处理程序中处理 硬件中断延后再进行处理 这个具体硬件相关,在中断处理程序中处理,打断了当前正在执行的程序;所有中断都将被屏蔽;如果占用时间太长不合适, 造成系统交互性,反应能力都会受到影...