[ACPI 6.2A 规范中文版]第4章:ACPI硬件规范

 

4 ACPI硬件规范—67 4.6.2 硬件忽略位—77 
4.1 Hardware-Reduced ACPI—67 4.6.3 硬件只写位—77 
4.1.1 Hardware-Reduced事件—68 4.6.4 跨设备依赖—77 
4.2 固定的硬件编程模型—68  4.7 ACPI硬件特性—78   
4.3  通用的硬件编程模型—69    4.8 ACPI寄存器模型—80 
4.4  图形解释—71      4.8.1  ACPI寄存器概要—83   
4.5  寄存器位表示法—72  4.8.2  固定的硬件特性—85 
4.6  ACPI硬件模型—72    4.8.3  固定的硬件寄存器—95 
4.6.1  硬件保留位—77  4.8.4  通用的硬件寄存器—104

 

4.ACPI硬件规范

ACPI定义了标准接口机制,允许与ACPI兼容的操作系统进行控制,并与一个兼容ACPI的硬件平台进行通信。这些接口机制是可选的(参见下面的“硬件减少ACPI”)。然而,如果ACPI硬件规范被实现,平台必须符合本节的要求。

本节描述ACPI的硬件方面。

ACPI将“硬件”定义为编程模型及其行为。ACPI努力将现有的许多遗留编程模型保持不变;但是,为了满足某些特性目标,指定的特性符合特定的寻址和编程方案。属于这一类的硬件称为“固定”。

尽管ACPI努力将这些变化最小化,但是硬件工程师应该仔细阅读这一节,以理解将一种仅为Legacy的硬件模型转换为ACPI/遗留硬件模型或只使用ACPI硬件模型所需的更改。

ACPI将硬件分成两类:固定的或通用的。属于固定类别的硬件满足ACPI的编程和行为规范。属于泛型类别的硬件在其实现中具有很大的灵活性。

4.1 Hardware-Reduced ACPI

对于某些类型的系统,ACPI硬件规范可能不够。举例来说,包括基于legacy的、基于uefi的平台和最近的处理器,以及那些实现移动平台架构的平台。对于这样的平台,定义了一个硬件减少的ACPI模式。在这个定义下,ACPI固定的硬件接口没有实现,而它所支持的许多特性的软件替代品也被使用。但是请注意,硬件减少的ACPI并不是为了支持所有可能在今天构建的ACPI系统。相反,它的目的是引入新的系统,从一开始就被设计成hw。如果平台不能在没有它的情况下工作,则应该使用ACPI HW规范。具体来说,以下特性在hw -reduce定义下不受支持:

•全局锁、SMI_CMD、ACPI启用和ACPI禁用。硬件减少的ACPI系统总是在ACPI模式下启动,并且不支持OSPM和其他异步操作环境(如UEFI运行时服务或系统管理模式)之间的硬件资源共享。

•总线主重载和仲裁禁用。依赖于操作系统的系统使用这些位来保持处理器休眠状态的缓存一致性是不受支持的。

•不支持GPE块设备。

需要上述特性的平台必须实现ACPI硬件规范。

为硬件减少的ACPI定义设计的平台必须实现修正5或更大的固定ACPI描述符表,并且必须在Flags字段中设置HW_REDUCED_ACPI标志。

注:FFH是允许的,并且适用于全部和hw减少的ACPI实现。

4.1.1 Hardware-Reduced事件

HW减少的ACPI平台需要在ACPI HW规范中支持的一些特性的替代,而这些特性都不存在。有两个领域需要这样的选择:ACPI平台事件模型、系统和设备唤醒。

4.1.1.1 gpio信号事件或中断信号事件。

通用输入/输出(GPIO)硬件可以用于信号平台事件。GPIO HW是GPE模型的泛化,是用于许多应用程序的共享硬件资源。ACPI对GPIO的支持在第3.11.3节“连接资源”中被描述。ACPI 6.1引入了通过中断来对事件进行信号的能力。详见第5.6.9节。

基于GPIO的事件信号通过GPIO中断连接提供,它描述了与GPIO控制器和pin的连接,并通过ACPI事件信息名称空间对象(_AEI)映射到ACPI事件处理机制。OSPM处理在_AEI中列出的GPIO中断连接,就像它执行SCI中断一样:它执行与特定事件关联的事件方法。要运行的方法的名称由GPIO中断连接资源中包含的pin信息决定。详见第5.6.5节。

gpio信号事件也可以是唤醒事件,就像GPE事件可以在传统的ACPI平台上一样。通过使用GPIO中断连接资源的属性指定事件是唤醒事件。设备可以使用_PRW来管理7.3.13节中描述的唤醒事件。

基于中断的事件信令遵循类似的方法,一个通用事件设备(GED)被声明,它依次描述与事件生成相关的所有中断。中断列在一个_CRS对象中。当一个中断被断言时,OSPM将执行在GED对象中声明的事件方法(_EVT),指定中断标识符作为参数。这样,中断就可以与特定的平台事件关联起来。

4.1.1.2基于中断后的事件

在hw减少的ACPI平台上的唤醒事件总是由到达处理器的中断引起的。因此,从睡眠或低功耗状态或低功耗状态的设备中唤醒系统有两个要求。首先,中断行必须被唤醒。可唤醒的中断被设计成能够从低功率状态传输到处理器。这意味着它还必须导致处理器和任何需要的平台硬件的启动,这样中断服务程序就可以运行。其次,OS驱动程序必须在进入低功耗状态之前启动中断,或者在OSPM将系统放入休眠或低功耗状态之前。

在扩展中断或GPIO中断连接资源描述符中指定可唤醒的中断。

4.2固定硬件编程模型。

由于将遗留硬件迁移到固定类别所需的更改,ACPI限制了固定硬件指定的特性。固定的硬件特征由以下标准定义:

•性能敏感的特性

•司机在醒来时需要的功能。

•支持灾难性OS软件故障恢复的特性。

ACPI将基于寄存器的接口定义为固定的硬件。CPU时钟控制和电源管理定时器被定义为固定硬件,以减少访问该硬件的性能影响,这将导致更快地减少热条件或延长电池寿命。如果允许这种逻辑驻留在PCI配置空间中,例如,将调用若干层驱动程序来访问这个地址空间。这需要很长时间,并且会对系统的功能产生不利影响(当试图进入低功率状态时)或事件的准确性(当试图获得时间戳值时)。

通过OSPM访问固定硬件允许OSPM控制尾流过程,而不必加载整个OS。例如,如果需要PCI配置空间访问,总线枚举器将装载枚举器使用的所有驱动程序。在固定硬件中定义这些接口,以使OSPM能够在没有任何其他驱动程序的帮助下进行通信,允许OSPM在决定是否继续加载整个操作系统或使其恢复休眠之前收集信息。

如果操作系统的元素失败,那么OSPM可能会访问不需要驱动程序支持的地址空间。在这种情况下,OSPM将尝试授予固定电源按钮请求将系统转换为G2状态。在OSPM事件处理程序不再能够响应电源按钮事件的情况下,power button override特性提供了一个备份机制,以无条件地将系统过渡到软关闭状态。

4.3通用硬件编程模型。

虽然固定的硬件编程模型需要在特定的地址位置定义硬件寄存器,但通用硬件编程模型允许硬件寄存器驻留在大多数地址空间中,并在硬件实现特定功能时提供了广泛的灵活性。OSPM直接访问固定的硬件寄存器,但依赖于oem提供的ACPI机器语言(AML)代码来访问通用硬件寄存器。

AML代码允许OEM提供OSPM的方法来控制通用硬件特性的控制和事件逻辑。

标题为“ACPI源语言参考”的章节描述了ACPI源语言(ASL)——OEMs用来创建AML的编程语言。ASL语言提供了许多面向对象编程语言的操作符,但它已经被优化,以支持平台电源管理和配置硬件的描述。ASL编译器将ASL源代码转换为AML,这是ACPI AML代码解释器执行的非常紧凑的机器语言。

AML做两件事:

•从OSPM中提取硬件。

•从不同的OS实现中缓冲OEM代码。

ACPI的一个目标是允许OEM“增值”硬件在ACPI配置中保持基本不变。增值硬件的一个属性是,它的实现方式完全不同。为了使OSPM能够正确地执行不同类型的增值硬件,ACPI定义了更高级别的“控制方法”,它要求执行一个操作。OEM提供与控制方法相关联的AML代码,由OSPM执行。通过提供AML代码,通用硬件几乎可以采用任何形式。

ACPI的另一个重要目标是提供OS独立性。要做到这一点,OEM AML代码必须在任何与acpi兼容的操作系统下执行相同的操作。ACPI允许通过使AML代码解释器部分的OSPM。这使得OSPM能够处理特定于每个特定操作系统的同步和阻塞问题。

泛型特征模型在下面的框图中表示。在此模型中,通过AML代码将通用特性描述为OSPM。此描述采用与它正在添加值的硬件相关联的ACPI名称空间中的对象的形式。

 

作为通用硬件控制特性的一个例子,可以设计一个平台,这样IDE HDD的D3状态就有了增值硬件来从驱动器中移除电源。然后IDE驱动器将引用到AML PowerResource对象(它控制在其命名空间中添加的值),并且与该对象关联的是OSPM调用来控制驱动器D3状态的控制方法:

•_PS0:将IDE驱动器排序到D0状态的控制方法。

•_PS3:一种将IDE驱动器按到D3状态的控制方法。

•_PSC:返回IDE驱动器(on或off)状态的控制方法。

该对象的控制方法提供了OSPM和硬件之间的抽象层。OSPM了解如何通过其定义的PowerResource对象控制power平面(打开或关闭或获取其状态),而硬件具有特定于平台的AML代码(包含在适当的控制方法中)来执行所需的功能。在本例中,平台将通过编写并放置AML代码来将硬件关闭到_PS3控制方法中,从而向ACPI OS描述其硬件。这使得以下序列:

当OSPM决定在D3状态下放置IDE驱动器时,它调用IDE驱动程序并告诉它将驱动器放入D3状态(此时驱动程序保存设备的上下文)。

当IDE驱动程序返回控制时,OSPM将驱动器放入D3状态。

OSPM找到与HDD关联的对象,然后在该对象中发现与D3状态相关的任何AML代码。

OSPM执行适当的_PS3控制方法来控制增值的“通用”硬件,以将HDD放入更低的电源状态。

作为通用事件特性的一个示例,平台可能具有对接功能。在这种情况下,它将希望生成一个事件。注意,所有ACPI事件都会生成一个SCI,它可以映射到任何可共享的系统中断。在停靠的情况下,事件是在检测到或当用户请求卸载系统时生成的。这使得以下序列:

OSPM响应SCI并调用与该通用事件关联的AML代码事件处理程序。ACPI表将硬件事件与AML代码事件处理程序关联起来。

AML代码事件处理程序收集适当的信息,然后执行一个AML Notify命令,向OSPM表明特定总线需要重新枚举。

下面的部分描述了ACPI的固定和通用硬件特性集。这些部分使读者能够理解以下内容:

•当ACPI功能、概念或界面需要一个平台类的设计指南时,需要哪些硬件寄存器或可选。

•如何设计固定的硬件功能。

•如何设计通用的硬件特性。

•ACPI事件模型

4.4图形解释

硬件部分使用简化的逻辑图来表示硬件的某些方面是如何实现的。逻辑图中使用下列符号表示编程位。

带有倒V“V”的半圆形符号表示只写控制位。这个位有一个行为,当它被设置时它会生成它的控制函数。读到只写的位会被软件忽略掉(这个位的位置被隐藏并且被忽略)。

带有“X”的圆形符号表示编程位。作为一个启用或控制位,软件设置或清除这个位会导致被读为设置或清除(除非另有说明)。作为状态位,它直接表示信号的值。

方形符号代表一个粘性状态位。一个粘性状态位是由硬件信号(活跃的高或活跃的低)的级别(而不是边缘)设置的。这个位只被软件写了一个“1”到它的位位置。

矩形符号表示来自嵌入式控制器的查询值。这是嵌入式控制器在响应SCI事件时返回到系统软件上的值。查询值与计划在嵌入式控制器事件上执行的事件控制方法相关联。

4.5寄存器位表示法

在这一节中,有一些逻辑图,在寄存器中引用位元。这些图使用一个符号,很容易引用寄存器名称和位位置。该表示法如下:

Registername.Bit

Registername包含在该规范中出现的寄存器的名称。

位包含位位置的零值十进制值。

例如,SLP_EN位驻留在PM1x_CNT寄存器位13中,并在图表示法中表示为:

SLP_EN

PM1x_CNT.13

4.6 ACPI硬件模型。

ACPI硬件模型被定义为允许OSPM在不同的全局系统状态(G0-G3)之间对平台进行排序(G0-G3),如下图所示,通过操作已定义的接口。当第一次供电时,该平台发现自己处于全球系统状态G3或“机械关闭”状态,这个状态被定义为电力消耗非常接近于零的状态,电源插头已被移除;然而,实时时钟装置仍在消耗电池。G3状态是由任何电源故障输入的,定义为意外或用户引发的断电。

G3状态转换为G0工作状态或遗留状态,取决于平台支持的内容。如果平台是一个只使用ACPI的平台,那么它允许通过始终返回状态位SCI_EN set(1)来直接引导到G0工作状态(有关更多信息,请参见第4.8.2.5节“Legacy/ACPI Select和SCI中断”)。如果该平台支持legacy和ACPI操作(这对于支持非ACPI操作系统是必要的),那么它将始终引导到遗留状态(通过返回SCI_EN clear(0)来说明)。在这两种情况下,G3状态的转换都需要OSPM的总启动。

遗留系统状态是一个非acpi操作系统执行的全局状态。该状态可以从G3“机械关闭”、G2“软关闭”或G0“工作”状态输入,前提是硬件支持遗留和ACPI模式。在遗留状态中,ACPI事件模型是禁用的(没有生成SCIs),硬件使用遗留的电源管理和配置机制。在遗留状态中,遵从ACPI的操作系统可以通过执行ACPI模式请求,请求转换到G0工作状态。OSPM通过将ACPI_ENABLE值写入SMI_CMD来执行这个转换,SMI_CMD生成一个事件到硬件,将平台转换为ACPI模式。当硬件完成转换后,它设置SCI_EN位并将控制权返回给OSPM。在G0“工作状态”中,OSPM可以通过将ACPI_DISABLE值写入SMI_CMD寄存器来请求转换到遗留模式,这将导致硬件进入遗留模式,并重新设置SCI_EN位低(更多信息,参见4.8.2.5节“Legacy/ACPI Select和SCI中断”)。

G0“工作”状态是ACPI系统的正常运行环境。在这种状态下,不同的设备在各自的功率状态之间动态转换(D0、D1、D2、D3hot、D3),处理器在各自的功率状态之间动态转换(C0、C1、C2或C3)。在这个状态下,OSPM可以决定将平台放置到系统G1“休眠”状态。该平台一次只能输入一个睡眠状态(称为全局G1状态);但是,硬件可以提供四个系统休眠状态,它们具有不同的电源和退出延迟,由S1、S2、S3或S4状态表示。当OSPM决定进入睡眠状态时,它会选择硬件支持的最适当的睡眠状态(操作系统策略检查哪些设备支持唤醒事件,以及睡眠状态支持什么)。OSPM通过启用适当的唤醒事件来启动睡眠转换,然后用理想的睡眠状态来编程SLP_TYPx字段,然后设置SLP_ENx位。系统将进入睡眠状态;当其中一个启用的唤醒事件发生时,它将把系统转换回工作状态(有关更多信息,请参见第16节“唤醒和休眠”)。

在G0“工作”状态下的另一个全局状态转换选项是进入G2“软关闭”或G3“机械关闭”状态。这些转换代表了一个受控的转换,允许OSPM以一种有序的方式(卸载应用程序、关闭文件等等)使系统下降。这些类型转换的策略可以与ACPI电源按钮相关联,当按下生成一个事件给power按钮驱动程序时。当OSPM完成准备功率损耗的操作环境,它将生成一个弹出消息告诉用户删除权力,为了进入G3“机械”状态,否则它将启动G2过渡的“soft-off”写作的价值S5“软”系统状态SLP_TYPx SLP_EN位注册和设置。

G1睡眠状态由四个可能的睡眠状态表示,硬件可以支持。每个睡眠状态具有不同的功率和唤醒潜伏期特征。睡眠状态与工作状态不同,因为用户的操作环境被冻结在低功率状态,直到被激活的唤醒事件唤醒。在这个状态中不执行任何工作,也就是说,处理器没有执行指令。每个系统睡眠状态都有关于谁负责系统上下文和唤醒序列的要求(为了获得更多信息,请参阅第16节,唤醒和睡眠)。

G2“软关闭”状态是系统启动系统关闭。这个状态类似于休眠状态转换(SLP_TYPx设置为S5值,并设置SLP_EN比特启动序列)。退出G2的软关闭状态需要重新启动系统。在这种情况下,一个只使用一个acl的系统将直接重新进入G0状态(硬件返回SCI_EN位集),而ACPI/遗留系统将转换到遗留状态(SCI_EN位是透明的)。

ACPI体系结构定义了硬件的机制,以生成事件和控制逻辑来实现此行为模型。事件被用来通知OSPM需要一些操作,并且控制逻辑被OSPM用于导致一些状态转换。acpi定义的事件是“硬件”或“中断”事件。硬件事件是导致硬件无条件地执行某些操作的一个事件。例如,任何wake事件都会将系统从一个睡眠状态(S1、S2、S3和S4)依次排序到G0工作状态(参见图16-84)。

中断事件导致事件处理程序(AML代码或acpi感知驱动程序)的执行,它允许软件根据事件做出决策。对于ACPI固定功能事件,OSPM或ACPI感知的驱动程序充当事件处理程序。对于一般的逻辑事件,OSPM将调度与事件关联的oem提供的AML控制方法的执行。

对于遗留系统,事件通常会生成一个os -透明的中断,比如系统管理中断或SMI。对于ACPI系统,中断事件需要生成可共享的os -可见中断;边式中断将不起作用。希望支持遗留操作系统和ACPI系统的硬件平台支持一种重新映射SMIs和SCIs之间的中断事件的方法,即在ACPI和遗留模型之间进行切换。下面的框图说明了这一点。

这个示例逻辑说明了一个支持legacy和ACPI事件模型的示例平台的事件模型。这个示例平台支持许多与power相关的外部事件(电源按钮、盖子打开/关闭、热、环指示)或插件和与游戏相关的(dock,状态更改)。该逻辑代表三种不同类型的事件:

操作系统透明的事件

这些事件代表了没有OS支持的特定于oem的函数,并使用可以以OS-透明的方式操作的软件(即SMIs)。

中断事件

这些事件表示了与acpi兼容的操作系统支持的特性,但不支持遗留操作系统。当加载了遗留操作系统时,这些事件被映射到透明中断(在本例中是SMI#),在ACPI模式中,它们被映射到一个OS可见的可共享中断(SCI#)。这种逻辑是通过将事件逻辑通过译码器路由的,该译码器将事件路由到SMI#仲裁器,当SCI_EN位被清除时,或者在设置SCI_EN位时,将事件路由到SCI#仲裁器。

硬件事件

这些事件被用来触发硬件启动一些硬件序列,比如唤醒、重置或使系统无条件地休眠。

在本例中,传统的power management事件逻辑用于确定设备/系统活动或基于设备空闲计时器、设备陷阱和全局备用计时器的闲置状态。传统的电源管理模型使用空闲计时器来确定设备何时应该处于低功耗状态,因为它是idl -也就是说,该设备没有被编程的时间访问。设备陷阱用于指示低功率状态下的设备被OSPM访问。

全局备用计时器用于确定系统何时应该允许进入休眠状态,因为它是idl—也就是说,用户界面没有被用于编程的时间。

这些遗留的空闲计时器、trap监视器和全局备用计时器不被OSPM在ACPI模式中使用。这个工作由不同的软件结构在一个兼容的操作系统中处理。例如,acpi兼容操作系统的驱动模型负责将其设备放入低功耗状态(D1、D2、D3hot或D3),并在需要时将其转换回状态(D0)。OSPM负责确定系统何时处于空闲状态,通过分析系统(使用PM计时器)以及通过其操作结构环境(从OS到OS)获得的其他知识。当系统被放置到ACPI模式中时,这些事件不再产生SMIs,因为OSPM处理这个函数。这些事件通过一些oem专有的方法被禁用。

另一方面,许多硬件事件都在ACPI和遗留模型(对接、电源按钮等等)之间共享,这种类型的中断事件在启用ACPI时更改为SCI事件。ACPI操作系统将向平台运行时固件生成一个请求,以进入ACPI模式。固件设置SCI_EN位,以表明系统已经成功地进入了ACPI模式,因此这是为这些事件映射所需的中断(SMI或SCI)的方便机制(如图4-3所示)。

ACPI架构指定了一些在遗留硬件模型中没有发现的专用硬件:电源管理计时器(PM计时器)。这是ACPI OS用于配置系统活动的一个自由运行计时器。这个定时器的频率在这个规范中是明确定义的,并且必须按照描述实现。

尽管ACPI体系结构重用了大多数遗留硬件,但它确实对如何生成编程模型进行了限制。如果使用,所有固定的硬件特性都将按照本规范的描述实现,以便OSPM能够直接访问固定的硬件特性寄存器。

在ACPI名称空间中驻留的ACPI控制方法操纵通用的硬件特性。这些接口可以非常灵活;但是,它们的使用受到定义的ACPI控制方法的限制(有关更多信息,请参见第9节“ACPI设备和设备特定对象”)。通用硬件通常控制动力飞机、缓冲隔离和设备重置资源。此外,“子”中断状态位可以通过通用硬件接口访问;但是,在GP_STS寄存器中有一个“父”中断状态位。ACPI定义了通用硬件实现可以访问的8个地址空间。

这些包括:

•系统I / O空间

•系统内存空间

•PCI配置空间

•嵌入式控制器的空间

•系统管理总线(SMBus)空间。

•互补金属氧化物半导体

•PCI栏目标

•IPMI空间

通用硬件电源管理特性可以实现访问驻留在这些地址空间中的空闲I/O端口。ACPI规范定义了一个可选的嵌入式控制器和SMBus接口,用于与这些关联的地址空间进行通信。

4.6.1硬件保留位

ACPI硬件寄存器的设计是这样的,保留位总是返回零,而数据写入它们没有副作用。OSPM实现必须将zeros写入到启用和状态寄存器中的保留位,并保存在控制寄存器中的位,并且他们将把这些位视为被忽略。

4.6.2硬件忽略一些

ACPI硬件寄存器被设计成这样,忽略的位是未定义的,并且被软件忽略。硬件被忽略的位可以返回0或1。当软件读取一个带有被忽略位的寄存器时,它会在运行结果之前屏蔽被忽略的位。当软件写入一个被忽略的位域的寄存器时,它会保留被忽略的位域。

4.6.3硬件只写一些

ACPI硬件定义了一些只写控制位。这些位是由软件写一个1的位位置激活的。读到只写位的位置会产生未定义的结果。当读到只有写位的寄存器时,软件会将所有的只写位删除。

4.6.4跨设备依赖关系

跨设备依赖是指设备的操作干扰其他不相关设备的操作,或者允许其他不相关的设备干扰其行为。这种情况不能支持,可能导致平台故障。ACPI不支持跨设备依赖关系,并建议设计不显示这种行为的设备。下面两个例子描述了跨设备依赖:

4.6.4.1例1:相关设备干扰。

这个例子演示了一个跨设备依赖,其中一个设备会干扰其他不相关设备的正常运行。设备A有一个依赖项,当它被配置时,它会阻塞所有通常针对设备B的访问。因此,设备B的设备驱动程序在配置设备A时不能访问设备B;因此,它需要与驱动程序的驱动同步访问。高性能,多线程操作系统不能在不严重影响性能的情况下执行这种同步。

为了进一步说明这一点,假设设备A是一个串行端口,而设备B是一个硬盘控制器。如果这些设备演示了这种行为,那么当一个软件驱动程序配置串行端口时,对硬盘驱动器的访问就需要阻塞。只有当硬盘驱动程序与串行驱动程序同步访问磁盘控制器时,才能做到这一点。没有这个同步,当串行端口被配置时,硬盘数据将丢失。

4.6.4.2示例2:不相关的设备干扰。

这个例子演示了一个跨设备的依赖关系,其中一个设备演示了允许其他不相关的设备干扰其正常运行的行为。设备A展示了一种编程行为,要求原子背靠背写访问成功地写入其寄存器;如果任何其他平台访问能够在连续访问之间中断,那么写入设备A就不成功。如果驱动程序无法对其设备产生原子背靠背访问,则它依赖于软件来同步系统中的其他驱动程序对其设备的访问;然后创建一个设备交叉依赖项,平台容易出现故障。

4.7 ACPI硬件特性

本节描述ACPI接口定义的不同硬件特性。这些特征被分类如下:

•固定硬件特性

•通用的硬件特性

固定的硬件特性驻留在ACPI编程模型所描述的位置的多个ACPI定义的地址空间中。通用硬件特性位于四个地址空间中的一个(system I/O,系统内存,PCI配置,嵌入式控制器,或串行设备I/O空间),通过AML控制方法的声明来描述ACPI名称空间。

固定的硬件特性对其实现有精确的定义。虽然许多固定的硬件特性是可选的,但是如果实现了,它们必须按照描述来实现,因为OSPM操纵了固定硬件设备的寄存器,并期待已定义的行为。功能固定硬件提供与第4.3节“功能固定硬件”描述的固定硬件特性接口的功能对等物。

通用的硬件特性实现是灵活的。该逻辑由oem提供的AML代码控制(有关更多信息,请参见第5节“ACPI软件编程模型”),它可以用来支持多种硬件。此外,ACPI还提供专门的控制方法,为专用设备提供功能。例如,Notify命令可用于从通用的硬件事件处理程序(控制方法)中通知OSPM,该事件处理程序已经发生了对接或热事件。对该规范的这一节和第5节有一个很好的理解,这将使设计人员能够很好地理解如何设计硬件以充分利用与acpi兼容的操作系统。

请注意,一般的特性只列出了说明,ACPI规范可以支持许多未列出的硬件类型。

4.8 ACPI寄存器模型

注意:该小节内容较多,单独列出,请参见4.8章

[ACPI 6.2A 规范中文版]第4.8章:ACPI寄存器模型

 

 

ACPI导航

[ACPI 6.2A 规范中文版]译者绪论

[ACPI 6.2A 规范中文版]第1章:介绍

[ACPI 6.2A 规范中文版]第2章:术语的定义

[ACPI 6.2A 规范中文版]第3章:ACPI概述

[ACPI 6.2A 规范中文版]第4章:ACPI硬件规范

[ACPI 6.2A 规范中文版]第4.8章:ACPI寄存器模型

[ACPI 6.2A 规范中文版]第5章:ACPI软件编程模型

[ACPI 6.2A 规范中文版]第6章:设备配置

[ACPI 6.2A 规范中文版]第7章:电源和性能管理

[ACPI 6.2A 规范中文版]第8章:处理器配置和控制