ACPI 命名空间层次结构
ACPI 命名空间层次结构必须从处理器的系统总线 (“_SB”) 开始准确地为平台的硬件拓扑建模。 通常,连接到总线或控制器的设备在命名空间中显示为该总线或控制器设备的子级。
以下规则专门适用于基于 SoC 的平台:
内存映射的功能块(包括处理器)直接显示在 _SB 节点下。
连接到简单外围总线 (SPB) 控制器和/或 GPIO 控制器的某些组合的外围设备将连接到这些控制器描述为连接资源。 有关详细信息,请参阅常规用途 I/O (GPIO) 和简单外围总线 (SPB)。
以这种方式连接的外围设备可能直接显示在 _SB 节点或父 SPB 或 GPIO 控制器下。 如果可能的话,首选后者,因为它直接在名称空间本身中指示设备关系,而不需要解码资源来发现该关系。
通过支持硬件枚举的标准总线(例如,SDIO 和 USB)连接的任何功能块或外围设备根本不需要出现在命名空间中。
但是,在某些情况下,必须将此类设备包括在命名空间中的父控制器下。 例如,这对于嵌入式 USB HSIC 或 SDIO 设备是必要的,其中特定于平台的(非标准)控件(例如,电源开关、GPIO 或 SPB 连接等)作为系统设计的一部分与设备相关联。 在这种情况下,标准父总线驱动程序枚举设备,但是 Windows ACPI 驱动程序 Acpi.sys 作为筛选器加载在设备堆栈中,以便在需要时代表总线驱动程序调用非标准控件的控制方法。
任何专用于使用一个功能驱动程序(例如,音频驱动程序)的“专用”总线或设备(例如,I2S)根本不需要出现在命名空间中。 但是,在这种情况下,设备使用的任何系统资源都必须出现在命名空间中功能设备的资源列表中。 有关详细信息,请参阅设备管理命名空间对象主题中的设备配置对象部分。
ACPI 定义许多标准命名空间对象和方法,但实现者可以根据需要定义新的命名空间对象和方法。 ACPI 定义的对象和方法用于常见的操作系统功能,例如:
平台说明 例如:设备标识和系统资源分配。
通用设备控制 例如:配置资源和控制电源资源。
特定于类的功能控件 例如:变暗显示或报告电池状态。