持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第28天,点击查看活动详情
简介
一、表定义语言示例
1.1 ECDT反汇编器输出
iASL反汇编程序的输出可以作为TDL编译器的直接输入。
[000h 0000 4] Signature : "ECDT" [Embedded Controller Data Table]
[004h 0004 4] Table Length : 0000004E
[008h 0008 1] Revision : 01
[009h 0009 1] Checksum : F4
[00Ah 0010 6] Oem ID : "INTEL "
[010h 0016 8] Oem Table ID : "TEMPLATE"
[018h 0024 4] Oem Revision : 00000001
[01Ch 0028 4] Asl Compiler ID : "INTL"
[020h 0032 4] Asl Compiler Revision : 20110316
[024h 0036 12] Command/Status Register : [Generic Address Structure]
[024h 0036 1] Space ID : 01 [SystemIO]
[025h 0037 1] Bit Width : 08
[026h 0038 1] Bit Offset : 00
[027h 0039 1] Encoded Access Width : 00 [Undefined/Legacy]
[028h 0040 8] Address : 0000000000000066
[030h 0048 12] Data Register : [Generic Address Structure]
[030h 0048 1] Space ID : 01 [SystemIO]
[031h 0049 1] Bit Width : 08
[032h 0050 1] Bit Offset : 00
[033h 0051 1] Encoded Access Width : 00 [Undefined/Legacy]
[034h 0052 8] Address : 0000000000000062
[03Ch 0060 4] UID : 00000000
[040h 0064 1] GPE Number : 09
[041h 0065 13] Namepath : "\_SB.PCI0.EC"
Raw Table Data: Length 78 (0x4E)
0000: 45 43 44 54 4E 00 00 00 01 F4 49 4E 54 45 4C 20 ECDTN.....INTEL
0010: 54 45 4D 50 4C 41 54 45 01 00 00 00 49 4E 54 4C TEMPLATE....INTL
0020: 16 03 11 20 01 08 00 00 66 00 00 00 00 00 00 00 ... ....f.......
0030: 01 08 00 00 62 00 00 00 00 00 00 00 00 00 00 00 ....b...........
1.2 ECDT的定义与字段注释
类似于反汇编器的输出,但更简单。
Signature : "ECDT" [Embedded Controller Data Table]
Table Length : 0000004E
Revision : 01
Checksum : F4
Oem ID : "INTEL "
Oem Table ID : "TEMPLATE"
Oem Revision : 00000001
Asl Compiler ID : "INTL"
Asl Compiler Revision : 20110316
Command/Status Register : [Generic Address Structure]
Space ID : 01 [SystemIO]
Bit Width : 08
Bit Offset : 00
Encoded Access Width : 00 [Undefined/Legacy]
Address : 0000000000000066
Data Register : [Generic Address Structure]
Space ID : 01 [SystemIO]
Bit Width : 08
Bit Offset : 00
Encoded Access Width : 00 [Undefined/Legacy]
Address : 0000000000000062
UID : 00000000
GPE Number : 09
Namepath : "\_SB.PCI0.EC"
二、 最小的ECDT定义
一个没有字段名的最小ECDT定义的例子:
: "ECDT" [Embedded Controller Boot Resources Table]
: 0000004E
: 01
: F4
: "INTEL "
: "TEMPLATE"
: 00000001
: "INTL"
: 20110316
: [Generic Address Structure]
: 01 [SystemIO]
: 08
: 00
: 00 [Undefined/Legacy]
: 0000000000000066
: [Generic Address Structure]
: 01 [SystemIO]
: 08
: 00
: 00 [Undefined/Legacy]
: 0000000000000062
: 00000000
: 09
: "\_SB.PCI0.EC"
2.1 通用ACPI表的示例
不为TDL编译器所知的表可以通过使用通用数据类型来定义。所有ACPI表都被认为具有通用的ACPI头,但是本节定义了设备的行为,因为该行为与电源管理有关,特别是与ACPI定义的四个设备电源状态有关。其目的是使设备供应商能够设计出满足OSPM基本需求的可管理电源的产品,并且能够被任何ACPI兼容的操作系统所利用。
下面是通用ACPI表的相关程序示例:
Signature : "OEMZ"
Table Length : 00000052
Revision : 01
Checksum : 6C
Oem ID : "TEST"
Oem Table ID : "CUSTOM "
Oem Revision : 00000001
Asl Compiler ID : "INTL
Asl Compiler Revision : 00000001
UINT8 : 01
UINT8 : 08
UINT8 : 00
UINT8 : 00
UINT64 : 0000000000000066
UINT32 : 00000000
UINT8 : 12
String : "Hello World!"
三、完结
本文顺利完结,撒花。