ICH9 情景下的 ACPI spec 01-st 之 ICH9 芯片datasheet

1, 系统实验 Debug  Ubuntu 16 的ACPI

1.1 安装工具

sudo apt-get install acpidump
sudo apt-get install iasl
sudo apt-get install pmtools 

在较新的 ubuntu 发行版中,可能有所变化,根绝提示即可成功安装上述工具。

1.2 查看 ACPI Table

$ ls /sys/firmware/acpi/tables/

这些信息的源头是 计算机的BIOS中存放的;在Linux 启动时 从BIOS中拷贝进来编译生成。

赋值DSDT到本地文件夹:

$ sudo cp /sys/firmware/acpi/tables/DSDT ./dsdt.dat

粗略看一下其中的内容为二进制格式:

1.3 对 DSDT 做反汇编

$ sudo iasl -d dsdt.da

可以发现得到了一个新的文件 dsdt.dsl

内容已经变成文本格式,比较长,有万行级,大体如下:

可知,dsdt反汇编后得到的文件是 ASL 源代码,这个ASL 语言在ACPI spec中定义。

1.4 修改 ASL 源文件 并编译

1.4.1 验证编译器正常工作

先不修改,只重新编译,验证一下是否能够编译通过,结果成功:

其中 dsdt.aml 文件 内容如下:

vim dsdt.aml

而 vim  dsdt.hex 可以看到如下内容:

1.4.2 修改按钮的代码

在 dsdt.dsl 中查找 PWRB

未完待续。。。没想好改成什么样子

1.4.3 编译替换

 

$ iasl -tc dsdt.dsl

生成 dsdt.aml 和 dsdt.hex文件

1.5 使用新的 ASL

2,从一个具体问题开始发现 ACPI

首先我们做一个实验:

2.1 实验一:按电源按钮

当电脑正常运行的状态时,按一下电源键后电脑进入休眠;

当电脑进入休眠的状态时,按一下电源按键后电脑被唤醒进入正常运行的状态;

当电脑在休眠或运行状态时,按下电源按钮4s多后,电脑掉电关闭。

这是怎么做到的呢?

这是由计算机的 ACPI 软硬件系统实现的简单功能。

2.2 合上笔记本显示器

当电脑正常运行状态时,合上笔记本显示屏,笔记本进入休眠状态。(跟配置有关)

2.3 延伸思考

如果电脑中存在 gpu,一个pcie设备,那么当计算机从正常运行状态,变为休眠,那么pcie设备的状态怎么变化?与driver有什么关联?

2.4 计算机的四种 G_x 状态,及其下对应的 S_y 状态

G0:   (Normal) 含:

        S0

G1:    (Sleep) 含:

        S1

        S2

        S3

        S4

G2:  (Soft Off) 含:

        S5: 只有ICH的部分数字逻辑和 Wake-up-LAN 数字逻辑供电

G3:  (Mechanical Off):关机

3,ICH9 datasheet

第一个链接为下载地址:

https://www.intel.com/content/dam/doc/datasheet/io-controller-hub-9-datasheet.pdf



https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/io-controller-hub-9-family-specification-update.pdf

4,ICH9 中与 ACPI 相关的内容

ACPI 在系统中的位置如下:

进一步细化为如下结构:

根据 ACPI specification, 我们知道 ACPI的三大软硬件组成部分:

<1> ACPI Register

<2> ACPI BIOS

<3> ACPI Tables

而其中的 ACPI Register 包含如下必选和可选构成:

ACPI Register 详细信息在ACPI specification 6.5中罗列如下:

而其中,在ICH9中,充当PM1a_xxx的寄存器,和GPE寄存器组 的具体寄存器如下图所示:

下图内容来源于 ICH9 datasheet:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值