背景

在分析Linux内核驱动的时候,有时候会看到一些acpi字样的接口。

之前一直没搞明白ACPI是什么,现在知道了。

Reference :

https://www.cnblogs.com/junzhkevin/archive/2013/02/25/2932801.html

http://bbs3.driverdevelop.com/read.php?tid=99720

ACPI

Advanced Configuration and Power Management Interface : 用于配置与电源管理的接口,是让OS使用的。用在x86架构上Windows系统多一点。

  • 不同的表,有不同的用途,像IO APIC中断配置表 专门负责 中断(可以用WinDbg等工具自己去看代码)。

简单地理解,ACPI Table 与 Windows 的关系, 犹如 Device Tree 与 embedded-Linux 的关系。

介绍

ACPI SPEC定义了ACPI-compatible OS与BIOS之间的接口,ACPI Tables就是BIOS提供给OS的硬件配置数据,包括系统硬件的电源管理和配置管理。

BIOS在POST过程中,将RSDP存在0xE0000--0xFFFFF的内存空间中,然后Move RSDT/XSDT, FADT, DSDT到ACPI Recleam Area, Move FACS到ACPI NVS Area,最后填好表的Entry链接和Checksum。

控制权交给OS之后,由OS来开启ACPI Mode,首先在内存中搜寻ACPI Table,然后写ACPI_Enable到SMI_CMD,SCI_EN也会被HW置起来。

ACPI Tables根据存储的位置,可以分为:

1). RSDP位于F段,用于OSPM搜索ACPI Table,RSDP可以定位其他所有ACPI Table

2). FACS位于ACPI NVS内存,用于系统进行S3保存的恢复指针,内存为NV Store

3). 剩下所有ACPI Table都位于ACPI Reclaim内存,进入OS后,内存可以释放

ACPI Table根据版本又分为1.0B,2.0,3.0,4.0。

2.0以后,支持了64-bit的地址空间,因此几个重要的Table会不大一样,比如:RSDP,RSDT,FADT,FACS。

ACPI Table 与 Device Tree的更多相关文章

  1. Linux and the Device Tree

    来之\kernel\Documentation\devicetree\usage-model.txt Linux and the Device Tree ----------------------- ...

  2. Device Tree(三):代码分析【转】

    转自:http://www.wowotech.net/linux_kenrel/dt-code-analysis.html Device Tree(三):代码分析 作者:linuxer 发布于:201 ...

  3. ARM Linux 3.x的设备树(Device Tree)

    http://blog.csdn.net/21cnbao/article/details/8457546 宋宝华 Barry Song <21cnbao@gmail.com> 1.     ...

  4. Device Tree Usage( DTS文件语法)

    http://elinux.org/Device_Tree_Usage Device Tree Usage     Top Device Tree page This page walks throu ...

  5. ARM Linux 3.x的设备树(Device Tree)

    1. ARM Device Tree起源 Linus Torvalds在2011年3月17日的ARM Linux邮件列表宣称“this whole ARM thing is a f*cking pai ...

  6. Device Tree(三):代码分析

    一.前言 Device Tree总共有三篇,分别是: 1.为何要引入Device Tree,这个机制是用来解决什么问题的?(请参考引入Device Tree的原因) 2.Device Tree的基础概 ...

  7. Device Tree(一):背景介绍

    一.前言 作为一个多年耕耘在linux 2.6.23内核的开发者,各个不同项目中各种不同周边外设驱动的开发以及各种琐碎的.扯皮的俗务占据了大部分的时间.当有机会下载3.14的内核并准备学习的时候,突然 ...

  8. 【转】 ARM Linux 3.x的设备树(Device Tree)

    1.    ARM Device Tree起源 http://blog.csdn.net/21cnbao/article/details/8457546 Linus Torvalds在2011年3月1 ...

  9. 【转】Device Tree(三):代码分析

    原文网址:http://www.wowotech.net/linux_kenrel/dt-code-analysis.html 一.前言 Device Tree总共有三篇,分别是: 1.为何要引入De ...

  10. 【转】ARM Linux 3.x的设备树(Device Tree)

    原文网址:http://blog.csdn.net/21cnbao/article/details/8457546 1.    ARM Device Tree起源 Linus Torvalds在201 ...

随机推荐

  1. 第8讲 browse命令的使用技巧

    第8讲 browse命令的使用技巧 1.浏览所有parts,使用技巧 选中工程文件*.dsn/Edit/Browse/Parts.列出工程中用到的所有元件,方便在画完原理图后,查看哪些元件没有编号或数 ...

  2. fastposter v2.18.0 一分钟完成开发海报-云服务来袭

    fastposter v2.18.0 一分钟完成开发海报-云服务来袭 fastposter 是一款快速开发海报的工具,已经服务众多电商.行业海报.分销系统.电商海报.电商主图等海报生成和制作场景. 什 ...

  3. Spring源码阅读 ------------------- SpringFrameWork 5.2 术语理解(三)

    一.一定要理解的概念 1.控制反转 对象A和对象B,对象A中需要new 一个对象B,但是,现在需要对象A,不在自己内部new 对象B,把new 对象B的权限交给第三方(IOC框架),操作的过程,就是控 ...

  4. Pageoffice6 实现后台批量生成Word文档

    在实际项目开发中经常会遇到后台动态生成文档的需求,目前网上有一些针对此需求的方案,如果您想要了解这些方案的对比,请查看后台生成单个Word文档中的"方案对比". 如果一次只生成一份 ...

  5. 【漏洞复现】Apache RocketMQ 代码注入漏洞(CVE-2023-37582)

    产品介绍 Apache RocketMQ是美国阿帕奇(Apache)基金会的一款轻量级的数据处理平台和消息传递引擎. 漏洞概述 Apache RocketMQ 存在代码注入漏洞,该漏洞源于当 Name ...

  6. gitlab docker 自动部署报错 /bin/bash: line 118: docker: command not found

    原因找不到docker,我们需要绑一下docker 列出所有gitlab-runner配置文件 find / | grep config.toml [root@izwz99pke7zxkpm7l51t ...

  7. 一个与 WSL2 建立远程的简单方法

    前言 众所周知,windows 会通过虚拟交换机给本机和 wsl2(Linux 子系统)分别分配 ip.于是本机重启或重启 wsl 服务的时候会重新分配 ip.之前所作的端口转发,监听之类的都会失效. ...

  8. linux server Vue 或其它单页面项目站点 nginx 实施部署

    # nginx vue 处理前台路由 history 模式刷新 404 的问题 location / { try_files $uri $uri/ /index.html; if ($uri ~* . ...

  9. sourceTree .gitignore文件处理

    最近犯了个低级错误,在sourceTree中通过右键,直接将 工程文件加入到 ignore列表中.提交之后,别人拉下来代码一直显示报错 在意识到上面这个错误之后,一直想恢复却恢复不了,尝试从Sorce ...

  10. SwiftObject 杂记

    一.前言 看了一段时间的Swift,慢慢转变了一些对Swift的看法. Swift作为苹果新晋的开发语言.具有模板编程.函数编程.协议多继承.vTable静态绑定.值引用类型区分.Option类型等动 ...