ACPI IGD OpRegion interface是用SCI来实现IGD driver,OS,BIOS之间沟通的桥梁,IGD OpRegion PROTOCOL是UEFI BIOS构建桥梁的脊梁。

Legacy的实现方式下与OS沟通的方式:

OpRegion Memory Layout:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQ1N0eWxlXzB4MDA3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

Mailbox1其中提供的Public ACPI Methods能够从ACPI spec Appendix B Video Extensions里面找到相应的每个method。它为IGD graphics devices提供了一个标准的ACPI规定的沟通渠道。
Mailbox2当值提供了IGD graphic driver怎样通过SWSCI与BIOS沟通的port信息。
Mailbox3,ASLE (ASL event)Support。This is the mailbox for communicating all driver features related information between the  driver
and the SBIOS

ASL Storage Register,用来存储IGD OpRegion Header地址:

IGD与BIOS沟通(SCI):

SWSCI Register,IGD通过DMI向ICH发送SCI来触发TCOSCI_STS bit in its GPE0 register来触发真正的SCI event。然后通过BIOS里面定义的ASL _Lxx method来处理,同一时候通过Mailbox2来传递消息。主要是在触发SCI之前预先填好mailbox里面相应的參数,包含Function-Code等信息
,然后触发SCI,在L_xx method其中会去读取mailbox2其中的对应字段,来做对应的处理。最后通过另外的一些字段来返回处理的结果和状态。(TCO:total cost of ownership.Ref intel EDS)
    Under the new scheme, rather than writing to the SWSMI bit (bit 0 of the SWSMI register
at offset 0xe0 in the PCI configuration space of the graphics device), the graphics driver
writes to the SWSCI register (bit 0, offset 0xe8 assuming SWSCI is configured for SCI
operation).
    This register serves two purposes:
1) Support selection of SMI or SCI event source (SMISCISEL - bit15)
2) SCI Event trigger (GSSCIE – bit 0)
To generate a SW SCI event, software (system BIOS/graphics driver) should program bit
15 (SMISCISEL) to 1. This is typically programmed once (assuming SMIs are never
triggered).
On a write transition of 0->1 of bit 0 of this register, the GMCH sends a single SCI
message down the DMI link to ICH. ICH will set the DMISCI bit in its TCO1_STS register
and TCOSCI_STS bit in its GPE0 register, upon receiving this message from DMI. The
corresponding SCI event handler in BIOS is to be defined as an _Lxx method.
Once written as 1, software must write a "0" to this bit to clear it.
All other write transitions (1->0, 0->0, 1->1) will be ignored. Writes will likewise be
ignored if bit 15 is 0.
To generate an SW SMI event, software should program bit 15 to 0 and trigger SMI
through writes to SWSMI register (see SWSMI register for programming details).
   

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQ1N0eWxlXzB4MDA3/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


Video BIOS Table(VBT)
    这个就是我们常见的所谓的使用BMP工具来配置VBIOS/GOP的时候生成的一个bin档案,终于会被包在BIOS rom里面,在post过程其中由BIOS来读取到内存里面去,跟上面的各种Mailbox(一般由ASL code,IgdoPRn.Asl来创建)一起构成IGD
OpRegion table,这部分通常是由 IGD OpRegion PROTOCOL &ACPI Protocl来完毕。终于生成的table被video BIOS and device driver来读取,获取当前硬件的各种信息:Flat  Panel Timings, Generic Mode Timing, GPIO pins, Clock等。table能够在post其中依据用户在setup里面的设定值或者是platformPolicy来动态的改变(table被保存在
EFI_GLOBAL_NVS_AREA->IgdOpRegionAddress:IgdOpRegion其中被ACPI driver来读取)。以此来实现用户的不同定制(參考IgdOprom.c)。

IGD OpRegion PROTOCOL
    这里提到的protocol就是用来创建IgdOpRegionTable的DXE driver,它为VBIOS/GOP以及IGD driver提供相关的信息。主要是从FV里面读取BMP配置生成的Bin
file以及platform policy以及setup值来定制系统的各种參数,并辅助acpi driver 来创建acpi table(GNVS->ASLB)。

    好了今天就先记录到这里,详情可參考ACPI spc,Intel IgdOpRn spc,以及相关的spc。

转载请注明出处
Cstyle.z.zhou@outlook.com  //  http://blog.csdn.net/CStyle_0x007




Cstyle的UEFI导读:第20.0篇 IGD OpRegion interface && IGD OpRegion PROTOCOL的更多相关文章

  1. Cstyle的UEFI导读之SEC第一篇 Reset Vector

        最近小看了一下SEC部分的code,现在来做个总结.所谓SEC就是CPU刚刚完成硬件初始化的是时候执行的和CPU体系架构息息相关的代码.主要是为后续CPU以及Chipset初始化代码所需的必备 ...

  2. Cstyle的UEFI导读:第18.0篇 NVRAM的工作原理(上)

        虽有句话说的好,实用的东西记在脑子里.没有的记在笔记本上. 可是如今的信息量越来越大,并且随着时间的推移记忆力会越来越不可靠,所以仅仅好把近期工作之余看的一些东西记录下来,避免被迅速忘记.这里 ...

  3. linux(centos8):prometheus使用alertmanager发送报警邮件(prometheus 2.18.1/alertmanager 0.20.0)

    一,alertmanager的用途 1,Alertmanager的作用: Alertmanager是一个独立的报警模块, 它接收Prometheus等客户端发来的警报,并通过分组.删除重复等处理, 通 ...

  4. 破解UltraEdit64 Version 28.20.0.92 技术分享。

    本文为原创作品,转载请注明出处,作者:Chris.xisaer E-mail:69920579@qq.com QQ群3244694 补丁程序下载地址:https://download.csdn.net ...

  5. 使用多种客户端消费WCF RestFul服务(二)——.net4.0篇

    .net 4.0篇 在.net 4.0下面微软并没有提供类似Net.Http的Rest访问组件,而是在codeplex上面提供的WCF REST Starter Kit Preview 2 里面可以找 ...

  6. hadoop2.20.0集群安装教程

    一.安装的需要软件及集群描述 1.软件: Vmware9.0:虚拟机 Hadoop2.2.0:Apache官网原版稳定版本 JDK1.7.0_07:Oracle官网版本 Ubuntu12.04LTS: ...

  7. 【Unity3D技术文档翻译】第1.0篇 AssetBundles

    前言 "Unity圣典"是目前对官方文档翻译比较详细的,然而文档的最新更新日期是2013年,已经远远落后最新版本,参考意义有限.官方文档.脚本手册是学习Unity3D最直接有效的途 ...

  8. 【3D动画建模设计工具】Maxon Cinema 4D Studio for Mac 20.0

    图标 Icon   软件介绍 Description Maxon Cinema 4D Studio R20 ,是由德国公司Maxon Computer一款适用于macOS系统的3D动画建模设计工具,是 ...

  9. 调用类java.lang.Math的成员方法"public static double random"运算下面表达式10000次,统计其中生成的整数0,1,2,.....20的个数分别是多少,并输出统计结果.(int)(Math.random()*20+0.5)

    public class Test2 { public static void main(String args[]){ int num; int count[]=new int[21]; for(i ...

随机推荐

  1. Windows调试工具入门—1

    NetRoc http://www.DbgTech.net 引子 Debugging Tools for Windows是微软发布的一套用于软件调试的工具包(后面如果没有指明,那么我会使用WinDbg ...

  2. Redis 学习笔记五 经常使用php函数

    PHPRedis的安装在这里: http://blog.csdn.net/xundh/article/details/46288277 键值操作 $redis = new Redis(); $redi ...

  3. gant

    http://gant.github.io/ http://gant.codehaus.org/

  4. Scriptcase价格调整(五折销售)

    芬兰诺基亚!芬兰诺基亚!最大手机公司倒闭了!王八蛋老板埃洛普,吃喝嫖赌欠下了3.5个亿,带着他的小姨子跑了!我们没有办法,拿着手机抵工资!原价都是一千多.两千多.三千多的手机,统统二百块!统统二百块! ...

  5. PHP中如何实现 “在页面中一边执行一边输出” 的效果

    <?php    set_time_limit(0);  //在有关数据库的大量数据的时候,可以将其设置为0,表示无限制.    ob_end_clean();     //在循环输出前,要关闭 ...

  6. MyCAT部署及实现读写分离(转)

    MyCAT是mysql中间件,前身是阿里大名鼎鼎的Cobar,Cobar在开源了一段时间后,不了了之.于是MyCAT扛起了这面大旗,在大数据时代,其重要性愈发彰显.这篇文章主要是MyCAT的入门部署. ...

  7. android画笔错位问题的解决

    下面的画画板的代码: public class MainActivity extends Activity { private ImageView iv; private Bitmap baseBit ...

  8. Codeforces Round #246 (Div. 2) —B. Football Kit

    B. Football Kit time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  9. Struts2 后台action接收 jsp页面中checkbox中的值

    如前端页面jsp中的标签为: <form action="myurl"> <input type="checkbox" name=" ...

  10. 架设FLASH视频流server心得

    什么样的情况下才使用FMS?有下面几种情形的时候,你可能须要用到FMS 1.须要通过Flash Player 播放视频,而视频是以流的方式,而不是http渐进式下载的方式进行播放的时候.渐进式下载就是 ...