1. PM1a Event Block 這是必需的暫存器,只要support ACPI 的Hardware,如Intel, 一定要實作這些暫存器,他有以下功能:
- Power Management timer control/status
- Porocessor power state control/status
- Global Lock related interfaces
- Power or Sleep button (fixed register interfaces)
- System power state control(sleeping/wake control)
這些暫存器 每個block 是32 bit 的指標指向之,而存在FADT 內。如果不支援PM1b Event Block,指標為0.
PM1 Group 就是以上五件事的 Enable / Status, Length 各位32bits 一半,為16bits. 通常會有PM1a, PM1b 不一定有的,可以參考Intel 的Spec.
(2). PM1 Control Registers
PM1 control 暫存器 一樣是包含兩個block,
1. PM1a Control Block 是必需的暫存器,只要support ACPI 的Hardware,如Intel, 一定要實作這些暫存器,他有以下功能:
- SCI/SMI routing control/status for power management and genernal-purpose events
- Processor power state control/status
- Global Lock related interfaces
這些暫存器 每個block 是32 bit 的指標指向之,而存在FADT 內。如果不支援PM1b Control Block,指標為0.
PM1 control register block 必須有一個最小的大小為 2 bytes(16bits)
(3)PM2 Control Register 是 可選擇性的暫存器,可有可無。
(4) PM Timer Register : PM Timer Block 是 選擇性的暫存器,可有可無。當Hardware實作時,會回傳時間. 是唯讀的暫存器,以Intel 為例 運作在3.579545MHz.
(5) Processor Control Block: 這是一個選擇性的暫存器,每一個處理器一個block.
(6) Genernal-Purpose Event Registers: 這個暫存器可以控制Enable/顯示Status,經由 GPIO 接收外部的SCI Event,如_LXX, _EXX, _QXX (_QXX 是透過 EC 或SMBUS 轉接的相關ROOT Event ). (所接入的SCI Event 可能是 LID、Power Button、Sleep Button、Battery、Thermal、PCIE Hotplug、PCIE wake up event等等)這都要看HW 怎麼設計,來決定怎麼處理。