ACPI知识学习笔记

ACPI table之FACP(Fixed ACPI Description Table).

在代码里面:Resources\AcpiTables\Fadt\Fadt3.0.act 定义了EFI_ACPI_3_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt.

列举出比较重要且常用的几项:

INT_MODEL,          //System Interrupt Model
SCI_INT_VECTOR, //System Vector of SCI interrupt
SMI_CMD_IO_PORT, //Port Address of SMI command port
ACPI_ENABLE, //Value to write to port SMI_CMD to enable ACPI
ACPI_DISABLE, //Value to write to port SMI_CMD to disable ACPI

这些items会在AcpiPlatform.h中定义:

#define INT_MODEL 0x01
#define SCI_INT_VECTOR 0x0009
#define SMI_CMD_IO_PORT 0x00B0 //For AMD
#define ACPI_ENABLE 0xA0
#define ACPI_DISABLE 0xA1

如果研究ACPI的规范,就会发现,当ACPI_EN起来,系统就会发SCI而不是SMI。那为什么?具体的流程是什么样子的?

  其实,让ACPI ENABLE起来的动作是最后一号SMI来做的。通过向B0 端口下0xA0,就会调用到一个SMI的Callback function,这个函数最后把SCI enable。

接着又有一个问题,SCI的产生,OS是怎么知道的呢?CPU怎么会去执行SCI呢?

  插入一个概念,当一个SMI发出来,CPU上的一个关于SMI的pin会被触发,CPU会进入SMM。而SCI其实是通过配置成APIC,产生IRQ。我的理解是,在上面所述的Callback函数里面,会将SCI对应到IRQ 9。之后SCI INT的信息就被存在ACPI FADT table里面,即定义的SCI_INT_VECTOR。这样OS就可以通过FADT获得SCI所使用的中断号码,这样就能在SCI产生时处理该中断。

这里插入一段我对Qxx的大概理解:

   当AC IN/OUT, LID CLOSE/OPEN, HOTKEY PRESS等事件发生时,KBC/EC会侦测到。随即,它会触发南桥的EC_SCI pin(这边可以解释为什么OS知道这是EC发出的SCI),南桥就会触发一个SCI,OS会收到这个SCI,并且去查询Qxx的number(通过向EC下达84h命令,读取EC RAM某个地方的value,这个value就是number),最后asl code会调用相关的Qxx执行。

转载于:https://www.cnblogs.com/cffx-chu/archive/2011/08/09/2132119.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298155.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux实战考试题:批量创建用户和密码-看看你会么?

批量创建10个用户stu01-stu10,并且设置随机8位密码,要求:不能用shell循环(例如:for,while等),只能用linux命令及管道实现。此题考察的是基础命令的熟练运用,因此,限制了使…

python继承方式是基于原型吗_基于原型与基于类的继承

小编典典这里大约有一百个术语问题,大多数是围绕某人(不是您)试图使他们的想法听起来像是“最好的”。所有面向对象的语言都必​​须能够处理以下几个概念:数据封装以及对数据的关联操作,除其他外,各种操作被称为数据成员和成员函…

【视频】CCNA——telnet和SSH的配置

链接失效请E-MAIL:loguis-iehotmail.com地址:http://u.115.com/file/f4e6e095f3转载于:https://blog.51cto.com/loguis/332652

每天扫扫扫,二维码会被我们扫完吗?

全世界只有3.14 % 的人关注了爆炸吧知识支付码、名片码、健康码、校园码、复学码、乘车码、挪车码码码码码码码码码码码码码码码码码码码码码码码码码码,这么多码?光疫情期间,就用掉了 1400亿个二维码,那么就有同学来问了&#xf…

高级SQL注入拿shell,一般黑客不知道。哈客

服务器只有一个站,又找不到注入点怎么办? 你可以试试在搜索框,登陆,任何框框里放个单引号,看看是否报错 初级部分 加个单引号,后面随便,随便填个密码,点击登陆 典型的SQL注入判断权限: and user>0-- 明显的sa权限获取数据库名字: and db_name()>0-- 很…

使用 SVG 动画实现弹性的页面元素效果

Codrops 分享了一些给SVG元素加上弹性动画的灵感。实现的思路是把一个SVG元素整合成一个组件,然后从一个路径弹性动画到另一个。这种效果可以应用到像菜单,按钮或其它元素,使得交互更有趣,看起更原生与自然的感觉。 在线演示 …

CCNA,CCNP资料

CCNA资料、、、、、、、、、、、、、、、、、、、、转载于:https://blog.51cto.com/youye/334779

虚拟ip工具_针对游戏防封换IP有用吗?

如今的网游有的有局限ip地址登录,就是说1个ip地址只可以登录1个或是两个客户端,可是也不是全部的游戏都局限,那麼针对ip限制怎样游戏多开呢?游戏局限针对许多用户而言是很不太好的,由于它们需用非常好号来挂&#xff0…

万万没想到,刷1000道题目,还不如搞懂这几个机械动图!

▲ 点击查看 著名教育家蒙台梭利曾说:“孩子成长中最重要、最基本的就是注意力集中”。而乔布斯也曾说:“专注和简单一直是我的秘诀之一。观察一下你家的孩子,会不会经常出现这种情况:孩子上课坐不住、总跑神,小动作不断&#xf…

Mysql日期

2019独角兽企业重金招聘Python工程师标准>>> create view fin1 as select o.code, s.organization_name,s.name,s.sex,s.identity_card_number,date_format(s.final_into_association_time,%Y-%m-%d),s.number_of_worked_in_association,(year(now())-year(s.begin_…

复制一个文件夹中的所有文件和文件夹的java程序实现

使用java程序实现了对文件夹的复制功能: package demo.io; import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import j…

Silverlight 2.5D RPG游戏技巧与特效处理:(十六)动态资源

即开即玩是网页游戏相比传统客户端游戏的最大优势。如果说在每台电脑安装上G的客户端是一种资源浪费及时间污染;那么Silverlight作为RIA界的新宠儿,在继承祖辈优秀血统的前提下拥有更加卓越的性能及更为曼妙的动态表现,势将引领网络未来世界进…

python pp模块_Python模块--Pexpect

探索 Pexpect,第 1 部分:剖析 Pexpect概述Pexpect 是 Don Libes 的 Expect 语言的一个 Python 实现,是一个用来启动子程序,并使用正则表达式对程序输出做出特定响应,以此实现与其自动交互的 Python 模块。 Pexpect 的使…

mysql root密码忘记2018_2018-03-28设置及修改mysql用户密码学习笔记

退出mysql方法quit或者exit设置及修改mysqlroot用户密码安装mysql后,默认管理员root密码为空,这很不安全,需要设置一个密码,在安装mysql单实例后,有个初始优化的一些安全措施:为root设置了密码删除无用的my…

如何机智的弄坏一台电脑?

全世界只有3.14 % 的人关注了爆炸吧知识原文:http://litten.me/2015/07/06/hack-in-localstorage/作者:Litten很多人都在说:“技术领域当中,前端最没有技术含量,且容易被替代。”有人说,前端的能力界限顶多…

局域网屏幕监控软件

选择一款好的局域网屏幕监控软件要注意哪些问题?相信这是很多企业老板、网管都关心的问题之一。网上各种监控软件那么多,万一下载一个不好用的软件,不仅浪费的是时间,甚至因为软件稳定性不好,影响员工工作效率就不好了…

android 学习查阅笔记

给自己一个链接地址方便找http://www.cnblogs.com/TerryBlog/archive/2010/06/25/1764821.htmlAndroid与IIS身份验证——基本验证http://www.cnblogs.com/GoodHelper/archive/2011/08/17/android_iis_01.html转载于:https://www.cnblogs.com/yjrl/archive/2011/08/14/2137692.h…

pythonlive2d_Unity-Live2D资源载入

在Live2d上下载的资源模型是.cmox格式的,无法直接在unity内使用,需要在Cubism中导出成.moc文件。1.将下载的.cmox资源直接拖入Cubism2.导出的时候有2.0版本和3.0版本的,如图随便哪个版本都OK,这里2.0和3.0的区别是,3.0…

C#为什么会这么慢之命运之终章-真理篇for firelong

firelong我真得希望你来看一看,可惜上一篇你错过了。c#会这么慢的话题却是始终充满着火药味,也许说真话真的很不动听, 可能上次的帖子firelong没看到,讨论C#哪能错过微软,.NET战略是微软当年的号称终极兵器的究级必杀技…

mysql 备份 master_如何配置MYSQL的MASTER---SLAVE复制备份?

一、配置一个mysql服务器做master:在配置文件my.ini中添加如下内容:log-binmatster-binlog-bin-indexmatster-bin.indexserver-id1master必须有一个活动的二进制日志和唯一的server-id,然后重启mysql服务器。其次,以root登录,创建…