_HID:device唯一

_STA:决定device在不在(在DM下面能不能看到)

_CRS:描述分配给device的资源

_INI:在OSPM加载描述表的时候运行一次(比如,如果要根据不同情况给device赋值不同的_HID,可以把代码加在这里)

BIOS code与ASL code之间传递数据

通过ASL code定义的OperationRegion,OperationRegion实例:

1. BIOS code里面定义了一个结构体,ASL code里面定义了一个OperationRegion,两者的数据元素定义是一一对应的;

2. BIOS初始化的时候会初始化结构体(初值的来源:通过PCD设置 / 在code里面设置 / 在setup page里面设置)并把它存放到EfiACPIMemoryNVS 空间:

3. ASL code访问对应的数据元素就能获取BIOS code里面传过来的数据

EC与EC ASL code之间传递数据

1. EC ASL code里面定义OperationRegion:

EC ASL code的OperationRegion的数据元素定义与EC code(EC RAM Space)里面的定义要一一对应(如下:在OS下通过EC tool查看EC RAM 400的空间与用RW查看EC空间(62/66)看到的内容是一样的)

2. EC的ASL code申请资源:

通过上面的资源申请,OSPM就知道要通过62/66来访问EC RAM SPACE的数据(port66就是EC_SC,port62就是EC_DATA):

下面的code获取EC RAM SPACE offset02的值(OSPM实际上也就是通过如下的操作来获取整个EC RAM SPACE的):

 offset A9的位置写0x01

Q event

首先硬件上EC_SCI# 信号要连接到PCH(下图初始化代码表示使用的是PCH的GPP_E16)

当有Q event的事件发生时,EC通过WriteSCI_Buffer(QValue)把事件对应的Q event值汇报给OSPM,然后由OSPM调用对应的Method(_Qxx)

device与driver

下图定义了一个最简单的device,driver通过匹配"ZHUH1000"就能安装

如何判断driver是否被加载?

在device的_DSM里面写某个值,EC看到这个值就知道这个device的driver被安装了。

ASL code的debug

安装Windows SDK,debug工具位于:/C/program files(x86)/windows kits/10/debugger/平台/windbg.exe

具体操作参考:BIOS之通过Windbg来追踪ASL code的运行

WMI

参考BIOS大神的文章:[原创]BIOS知识点滴Follow Bini系列之---WMI ACPI :http://www.ufoit.com/thread-420-1-1.html

_HID:PNP0C14

_WDG:包含对xx的定义

_WQxx:MOF data,包含class的定义,这些二进制数据一般是build的时候生成的

_WMxx:Method

OS下调用WMI method的脚本:.vbs 下图显示的脚本会调用method WMGF,参数为196863(通常来说method会通过触发SMI来调用BIOS)

G Event

The ACPI event programming mode is based on the SCI interrupt and General-Purpose Event(GPE) register.

比如定义USB20/USB30 port支持唤醒系统:定义_PRW;下图定义了USB20/USB30 port对应的L Event number以及支持唤醒的sleep state

下图显示的是在Scope(\_GPE)里面定义的处理L Event的method(2表示唤醒系统)

关于Notify通知值的说明:

D3

设置device支持在S0 idle时进D3(前提是device支持D3)

USB Setting(_UPC  _PLD)

...待...

UCSI

ASL code里面定义的Operation Region:(EC里面也定义了相同的数据结构)

调节LCD亮度 _BCL _BCM

_BCL:支持的亮度控制等级

_BCM:设置亮度等级,如果实现了_BCL,那么_BCM必须也要实现

问题举例:OS下切换最亮与次亮的时候闪屏(其他亮度之间切换没问题)

验证:切到最亮的时候不让level达到100(把_BCL的最高值100改成99),没复制到闪屏

BIOS备忘录之ASL code常用知识点的更多相关文章

  1. 装机备忘录:VS Code 常用插件

    VS Code 常用插件推荐 1.基本的代码补全 2.git 扩展工具,可以看到代码的每一行 是谁修改?什么时候修改? 修改的版本号? 修改的注释? 非常好的一个工具 3.括号颜色改变工具,可以改变括 ...

  2. BIOS备忘录之IIC(touchpad)设备

    简述BIOS中对IIC device的支持,以touchpad为例. 信息收集 收集平台的硬件信息: 1. IIC controller number(PCH一般包含多个controller,我们使用 ...

  3. BIOS备忘录之EC常用知识点

    BIOS工程师眼中常用的EC知识点汇总: EC的硬件架构 EC硬件结构上主要分为两部分:Host Domain和EC Domain Host Domain就是通过LPC与CPU通信的部分(LPC部分需 ...

  4. BIOS备忘录之通过Windbg来追踪ASL code的运行

    通过Windbg来追踪ASL code的运行: 目标机的配置: 第一步: 在BIOS Setup下面 disable secure boot(不然下面debug on 命令会失败):关闭防火墙. 第二 ...

  5. HTML常用知识点代码演示

    1 HTML部分常用知识点 <!-- 版本声明 --> <!DOCTYPE html> <!-- 唯一根元素 --> <html> <!-- 对网 ...

  6. javaScript常用知识点有哪些

    javaScript常用知识点有哪些 一.总结 一句话总结:int = ~~myVar, // to integer | 是二进制或, x|0 永远等于x:^为异或,同0异1,所以 x^0 还是永远等 ...

  7. DB2_SQL_常用知识点&实践

    DB2_SQL_常用知识点&实践 一.删除表中的数据(delete或truncate) 1 truncate table T_USER immediate; 说明:Truncate是一个能够快 ...

  8. vscode: Visual Studio Code 常用快捷键

    vscode: Visual Studio Code 常用快捷键 主命令框 F1 或 Ctrl+Shift+P: 打开命令面板.在打开的输入框内,可以输入任何命令,例如: 按一下 Backspace ...

  9. 【转】vscode: Visual Studio Code 常用快捷键

    原文链接:https://www.cnblogs.com/bindong/p/6045957.html vscode: Visual Studio Code 常用快捷键 主命令框 F1 或 Ctrl+ ...

随机推荐

  1. 我的订单页面List

    <%@ page language="java" contentType="text/html;charset=UTF-8"%> <%@ ta ...

  2. 前端编程tips

    1.ts less 网上搜视频教程,不用太复杂的,短短几分钟视频基本就对其入门了,比自己搜官网学习更方便. 常用的ts技术:let name:string="";  let obj ...

  3. 关于vmware 11.1安装windows 7操作系统时报错 Unist specified don’t exist. SHSUCDX can’t install

    笔者今天在vmware 11.1 虚拟机下使用光驱安装windows 7 32位操作系统时,报错: Unist specified don’t exist. SHSUCDX can’t install ...

  4. ubuntu中安装blogPost

    1.实验环境 Ubuntu16.04x86 2.安装blogPost步骤 2.1 安装方式比较简单,打开ubuntu软件中心 2.2 搜索DB Browser for SQLite,点击安装即可 上图 ...

  5. gitlab+jenkins+tomcat war包部署(此文有新版本)

    对本文进行格式整理,url: https://www.cnblogs.com/huandada/p/9969234.html 整个项目的框架为: 1.gitlab的安装(Centos7) 新建/etc ...

  6. 如何使用Vue-cli搭建和运行vue项目

    此文章  主要参考:https://jingyan.baidu.com/article/5225f26bbb430fe6fa0908ce.html 在vue init webpack my-proje ...

  7. python接口自动化测试(七)unittest 生成测试报告

    用例的管理问题解决了后,接下来要考虑的就是报告我问题了,这里生成测试报告主要用到 HTMLTestRunner.py 这个模块,下面简单介绍一下如何使用: 一.下载HTMLTestRunner下载: ...

  8. HTTP协议实际使用笔记

    mozilla的帮助文档: https://developer.mozilla.org/zh-CN/docs/Web/HTTP HTTP协议详解(转) php http头设置相关信息 这个2篇最好先看 ...

  9. Torchvision 源码安装[Ubuntu]

    git clone https://github.com/pytorch/vision.git pip install pillow cd vision python setup.py install

  10. ext.js的mvc开发模式详解

    ext.js的mvc开发模式详解和环境配置 在JS的开发过程中,大规模的JS脚本难以组织和维护,这一直是困扰前端开发人员的头等问题.Extjs为了解决这种问题,在Extjs 4.x版本中引入了MVC开 ...