ACPI IGD OpRegion  interface是用SCI来实现IGD driver,OS,BIOS之间沟通的桥梁,IGD OpRegion PROTOCOL是UEFI BIOS构建桥梁的脊梁。
Legacy的实现方式下与OS沟通的方式:
OpRegion Memory Layout:
Mailbox1当中提供的Public ACPI Methods可以从ACPI spec Appendix B Video Extensions里面找到对应的每一个method,它为IGD graphics devices提供了一个标准的ACPI规定的沟通渠道。
Mailbox2当值提供了IGD graphic driver如何通过SWSCI与BIOS沟通的端口信息。
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).
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导读:第20.0篇 IGD OpRegion interface amp;amp; IGD OpRegion PROTOCOL

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

  3. Cstyle的UEFI导读: UEFI的N种实现及差别

    闲来无事回头看看,自毕业以来一直都在BIOS这个行业打转,目前的各种新闻来看全球的IT行业都似乎不太景气,PC出货量一泻千里,想要有所转机看起来不是一天两天的事情,想来无事来看看做过的几个UEFI B ...

  4. 大白菜android模拟器,大白菜U盘启动制作工具uefi体验版 V5.0

    下载地址:http://down.winbaicai.com:88/dabaicai_v5.0uefi.exe MD5: CD34BC3BF4D3992BD8938F5351B2FC57 SHA1: ...

  5. pip升级失败 -- 解决WARNING: You are using pip version 20.0.2; however, version 20.1 is available 的问题

    使用固定命令升级的时候,由于默认使用的是国外的服务器,所以经常出现超时失败的情况,诸如: You are using pip version 20.0.2, however version 21.0 ...

  6. JZ2440 v3.0 linux-3.4.2 busybox1.20.0内核 和 文件系统移植 修改分区大小 yaffs2文件系统补丁 开源资源查找

    文章目录 零.平台 + 软件版本 + 烧写 平台 和 版本 烧写 一.编译系统的一堆命令 1. 编译uboot 2. 编译内核 3. 文件系统 yaffs2 额外的,自启动脚本配置 + 自动配置网卡 ...

  7. 清华90后校友、MIT助理教授斩获ACM博士论文奖!博士期间曾发表论文20余篇

    本文转载自量子位 作者:明敏 萧箫 今天,ACM公布2020年博士论文奖! 清华校友.MIT助理教授范楚楚,从候选人名单中脱颖而出,荣获此奖. 另外两位候选人,则分别来自斯坦福大学和德国萨尔州大学. ...

  8. linux下安装虚拟天文馆,如何在Ubuntu 20.04、18.04中安装Stellarium 0.20.0虚拟天文馆

    如何在Ubuntu 20.04.18.04中安装Stellarium 0.20.0虚拟天文馆 几天前发布了Stellarium 0.20.0,它时一个免费开源的桌面虚拟天文馆软件.以下是在Ubuntu ...

  9. 假设用于通信的电文由字符集{a,b,c,d,e,f,g}中的字母构成。 它们在电文中出现的频度分别为{0.31,0.16,0.10,0.08,0.11,0.20,0.04}。【MOOC答案】

    目   录 1.题目 2.答案and详细题解过程 1)为这7个字母设计哈夫曼编码: 1.1.答案 1.2.详细题解过程 2)为这7个字母设计等长编码,至少需要几位二进制数?[3位] 2.1.答案 2. ...

最新文章

  1. Go 学习笔记(65)— Go 中函数参数是传值还是传引用
  2. 找java培训机构有哪些参考标准
  3. 口罩巨头挑战“量子霸权”,3个月造出的『最强量子计算机』靠谱不?
  4. 页面加载速度优化的12个建议
  5. 【oracle】sqlnet.ora 访问控制策略
  6. 使用 matlab 产生GK101任意波数据文件的方法
  7. 文娱倍受青睐,可是网文为啥不香了?
  8. 纯CSS实现气泡聊天框的方法
  9. 太极发送卡片软件_QQ卡片式消息一键发送app
  10. 洛谷P5831题题解(Java语言描述)
  11. 基于modelsim的十个Verilog入门试验程序(5)(数字秒表+自助售票机)—程序+测试代码+波形+结果分析
  12. 【python办公自动化(8)】批量处理调整Excel内容字体、对齐方式、边框、填充、合并与取消合并、行高及列宽(目标数据的筛选与标记)
  13. 微软zone DNS服务器,DNS 策略概述
  14. 《JavaWeb视频教程》(p34)
  15. HJ7 取近似值(重点关注)
  16. linux 硬盘对拷,比ghost好用
  17. 2020-09-10 MYSQL按时间段分组查询当天,每小时,15分钟数据分组
  18. vb编程转为c语言,请大神帮我把C语言转换成VB语言
  19. 使用Visual Studio+OpenCV进行的Susan算子边缘检测及数米粒图像处理实验
  20. java gui狼_5个强大的Java分布式缓存框架

热门文章

  1. 判别式模型和生成式模型分别是什么?判别式模型和生成式模型的优缺点?
  2. 从电子政务外网升级,看ZDNS四大域名产品为数字政府构建基石
  3. 【点云压缩】点云概述:点云的分类与处理 点云来源
  4. 阿里云视频点播报错 InvalidVideo.NotFound : The video does not exist.
  5. 计算机系统盘涨满怎么办,系统盘满了怎么办?
  6. 2021WAIC:城感通借力媒体大数据,让城市智慧治理更进一步
  7. 性能测试常见指标有哪些
  8. C#项目-寝室管理系统(1)
  9. 013 - C++引用
  10. 初级网络基础知识整理