ACPI Namespace
概念:
ACPI NameSpace是存在于OS-Controlled内存中的,包含命名对象(Named Objects)的,一个分层的树状结构。
1、 这些Objects包含:data objects, control method objects, bus/device package objects, 等等。
2、ACPI NameSpace中所有的信息都来自于DSDT(Differentiated System Description Table)。DSDT中包含有Differentiated Definition Block, and one or more other definition blocks. Definition Block包含着硬件实现和配置的详细信息。
3、在Runtime阶段,OS通过loading and/or unloading ACPI Tables中的definition blocks来动态的改变NameSpace的内容。
4、OS枚举主板上的设备,就是通过读ACPI NameSpace来寻找包含有HardwareIDs的Devices。
5、每个ACPI列举的device在ACPI NameSpace中都有一个ACPI-defined Object,它报告了这个device能够占用的Hardware Resource。
6、ACPI主要用来列举和配置没有其他硬件规范的MB Devices。例如,ACPI不会列举主板上的PCI Devices,这些设备的Plug and Play信息就不会包含在ACPI NameSpace中,但是他们的Power Managed的信息和insertion/removal控制信息仍会存在于NameSpace中。
命名规则:
1、固定长度为32bits
2、第一个Byte包含'A'-'Z','_' (0x41-0x5A,0x31--0x39,0x5F)
3、剩下三个Byte包含含'A'-'Z','0'--'9','_' (0x41-0x5A,0x31--0x39 ,0x5F)
4、若不足四个字符,AML编译器会自动在末尾补‘_’
5、以‘_’开头的名字是为这份Spec中保留的,Defination Blocks只能使用以‘_’开头的名字
6、以‘\’开头,后接name,说明这个name参考the root of the namespace。
7、以‘^’开头,后接name,说明这个name参考the parent of current namespace。
转载于:https://blog.51cto.com/5124569/1383820