PM1 Event Registers
PM1 Control Registers
PM2 Control Register
PM Timer Register
Processor Control Registers
General-Purpose Event Registers
PM1事件寄存器
PM1事件寄存器组包含两个寄存器块:
PM1a_EVT_BLK是一个必须的寄存器块
当类特定平台设计指南需要以下ACPI接口类别时:
· 电源管理计时器控制/状态
· 处理器功率状态控制/状态
· 全局锁相关的接口
· 电源或睡眠按钮(固定注册接口)
· 系统功率状态控制(睡眠/唤醒控制)
PM1b_EVT_BLK是一个可选的寄存器块。
每个寄存器块在固定的ACPI表(FADT)中有一个唯一的32位指针
以允许在两个芯片之间分割PM1事件位。
如果不支持PM1b_EVT_BLK,则它的指针在FADT中包含一个0值
PM1事件分组中的每个寄存器块都包含两个相同大小的寄存器:
PM1x_STS和PM1x_EN(其中x可以是“a”或“b”)。
寄存器的长度是可变的,并由FADT中的PM1_EVT_LEN字段描述
它表示寄存器块的总长度以字节为单位。
因此,如果给出“4”的长度,则表示每个寄存器包含两个I/O空间的字节。
PM1事件寄存器块的最小大小为4字节。
PM2控制寄存器
PM2控制寄存器包含在PM2_CNT_BLK寄存器块中。
FADT包含这个寄存器块(PM2_CNT_LEN)的长度变量
它等于PM2_CNT寄存器的字节大小(在这个寄存器组中唯一的寄存器)。
这个寄存器块是可选的,如果不支持它的块指针,长度包含0的值
PM计时器寄存器
PM计时寄存器包含在PM_TMR_BLK寄存器块中。
当电源管理定时器控件/状态ACPI接口类别被一个类特定的平台设计指南要求时
它是一个可选的寄存器块。
处理器控制块(P_BLK)
系统中每个处理器都有一个可选的处理器控制寄存器块。
由于这是一个同构特性,所有处理器必须具有相同级别的支持。
ACPI操作系统将恢复到处理器控制块支持的最小公分母。
处理器控制块包含处理器控制寄存器(p_cnt -一个32位的性能控制配置寄存器)
以及P_LVL2和P_LVL3 CPU休眠状态控制寄存器
32位P_CNT寄存器控制处理器时钟逻辑的行为
P_LVL2寄存器用于将CPU放置到C2状态
而P_LVL3寄存器用于将处理器放置到C3状态。
一般目的事件寄存器
通用事件寄存器包含所有通用特性的根级别事件。
为了方便地对根事件进行分区。
ACPI为两个不同的通用事件块提供了支持:
GPE0_BLK GPE1_BLK。
这些是单独的寄存器块,并不是一个寄存器组,因为没有必要保持一个正交位排列。
此外,每个寄存器块在FADT中包含它自己的长度变量
其中GPE0_LEN和GPE1_LEN表示每个寄存器块的字节长度。
每个寄存器块包含两个相同长度的寄存器:GPEx_STS和GPEx_EN(其中x为0或1),GPE0_STS和GPE0_EN寄存器的长度等于GPE0_LEN的一半。
GPE1_STS和GPE1_EN寄存器的长度等于GPE1_LEN的一半。
如果不支持通用寄存器块,则FADT表中的相应块指针和块长度值包含0。
GPE0_LEN和GPE1_LEN不需要是相同的大小。