ACPI Table 与 Device Tree
背景
在分析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的更多相关文章
- Linux and the Device Tree
来之\kernel\Documentation\devicetree\usage-model.txt Linux and the Device Tree ----------------------- ...
- Device Tree(三):代码分析【转】
转自:http://www.wowotech.net/linux_kenrel/dt-code-analysis.html Device Tree(三):代码分析 作者:linuxer 发布于:201 ...
- ARM Linux 3.x的设备树(Device Tree)
http://blog.csdn.net/21cnbao/article/details/8457546 宋宝华 Barry Song <21cnbao@gmail.com> 1. ...
- Device Tree Usage( DTS文件语法)
http://elinux.org/Device_Tree_Usage Device Tree Usage Top Device Tree page This page walks throu ...
- 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 ...
- Device Tree(三):代码分析
一.前言 Device Tree总共有三篇,分别是: 1.为何要引入Device Tree,这个机制是用来解决什么问题的?(请参考引入Device Tree的原因) 2.Device Tree的基础概 ...
- Device Tree(一):背景介绍
一.前言 作为一个多年耕耘在linux 2.6.23内核的开发者,各个不同项目中各种不同周边外设驱动的开发以及各种琐碎的.扯皮的俗务占据了大部分的时间.当有机会下载3.14的内核并准备学习的时候,突然 ...
- 【转】 ARM Linux 3.x的设备树(Device Tree)
1. ARM Device Tree起源 http://blog.csdn.net/21cnbao/article/details/8457546 Linus Torvalds在2011年3月1 ...
- 【转】Device Tree(三):代码分析
原文网址:http://www.wowotech.net/linux_kenrel/dt-code-analysis.html 一.前言 Device Tree总共有三篇,分别是: 1.为何要引入De ...
- 【转】ARM Linux 3.x的设备树(Device Tree)
原文网址:http://blog.csdn.net/21cnbao/article/details/8457546 1. ARM Device Tree起源 Linus Torvalds在201 ...
随机推荐
- 八、Dataphin
Dataphin是阿里巴巴集团OneData数据治理方法论内部实践的云化输出,一站式提供数据采.建.管.用全生命周期的大数据能力,以助力企业显著提升数据治理水平,构建质量可靠.消费便捷.生产安全经济的 ...
- axios的基本
目录 axios基本使用.html axios+vue.html axios基本使用.html <!DOCTYPE html> <html lang="en"&g ...
- js前端去除HTML标签返回纯字符串正则/<[^>]*>/g
点击查看代码 let stra = `<p>公告:我们于2024年5月3日下午13:00下架本小程序,请您搜索"好故事"进行观看,您的会员和书豆不会受到影响.感谢您的理 ...
- Cookie的过期时间为Session在微信浏览器失效
前言 最近一次迭代上线,结果临了上线当晚,被我无疑间发现一个bug,之前测试小伙伴没测出来.Cookie的过期时间为Session在微信浏览器失效 ..net framework webform 项目 ...
- 稳定、省钱的 ClickHouse 读写分离方案:基于 JuiceFS 的主从架构实践
Jerry 是一家位于北美的科技公司,利用人工智能和机器学习技术,简化汽车保险和贷款的比价和购买流程.在美国,Jerry 的应用在其所属领域排名第一. 随着数据规模的增长,Jerry 在使用 AWS ...
- AIRIOT答疑第4期|如何使用数据分析引擎?
灵活报表曲线,满足各类分析需求! AIRIOT物联网低代码平台的数据分析引擎满足各类型数据分类及分析需求,毫秒级数据反馈速度,快速响应客户分析条件变换查询需求.通过机器学习.融合各种计算模型.人工智能 ...
- go高并发之路——启航
工作7年有余了,B端和C端业务都做过不少,打算整理分享一些自己在实际工作中所遇到的高并发的场景和解决方案,也是对自己本人职业生涯中的一些经验的总结和感悟.与其他博文略有不同的是,这些基本上都是自己实际 ...
- kubernets之了解Qos等级
一 Qos的种类 BestEffort(优先级最低) Burstable(中等优先级) Guaranteed(最高优先级) 二 Qos的作用 众所周知,节点上面的limits允许超卖,当节点上面的 ...
- pwn杂项之linux命令执行
通常pwn题目,时常会考到对Linux命令的一些使用,比如当cat被禁用的时候,可以使用tac,或者别的命令代替 下面是buu上的应该题目,考察的就是对liunx命令的理解,以及对程序的分析. 题目地 ...
- Supervisor 守护进程管理工具
引言 Supervisor 是基于 Python 编程语言开发的一套通用的进程管理程序,它是通过 fork/exec 的方式把需要管理的进程作为子进程来管理. 安装 pip3 安装 superviso ...