通过Windbg来追踪ASL code的运行: 目标机的配置: 第一步: 在BIOS Setup下面 disable secure boot(不然下面debug on 命令会失败):关闭防火墙. 第二步:替换acpi.sys1. 获取与目标机OS 同版本的check build ACPI.sys文件,替换系统中的C:\Windows\System32\drivers\acpi.sys 2.acpi.sys属于系统文件,直接替换会出错,可以把下面的内容保存为:TrustedIntsaller.re…
_HID:device唯一 _STA:决定device在不在(在DM下面能不能看到) _CRS:描述分配给device的资源 _INI:在OSPM加载描述表的时候运行一次(比如,如果要根据不同情况给device赋值不同的_HID,可以把代码加在这里) BIOS code与ASL code之间传递数据 通过ASL code定义的OperationRegion,OperationRegion实例: 1. BIOS code里面定义了一个结构体,ASL code里面定义了一个OperationRegi…
BIOS工程师眼中常用的EC知识点汇总: EC的硬件架构 EC硬件结构上主要分为两部分:Host Domain和EC Domain Host Domain就是通过LPC与CPU通信的部分(LPC部分需要先执行相关的初始化:比如decode 62/66  68/6c,设置LPC Serial IRQ mode to continus mode等,这样EC才能通过IO与PCH通信),可以看成ISA的设备卡: EC Domain可以看成一个51的单片机. BADRSEL寄存器是在EC初始化的时候设置的…
简述BIOS中对IIC device的支持,以touchpad为例. 信息收集 收集平台的硬件信息: 1. IIC controller number(PCH一般包含多个controller,我们使用的是哪一个): 2. INT / Reset信号用的是哪个GPIO: 3. Enable信号用的是哪个GPIO(Enable信号一般由EC控制,这样可以通过Hotkey来Enable/Disable) 收集device的信息: 1. slave address; 2. hid descriptor…
Reset和INT信号使用的是GPIO功能,需要显式的使用(INT信号使用了GPIO的int number,RST信号使用了GPIO的absolute number): 问题举例 漏电导致功能异常:在sleep mode下拉低RST#和CS#,需要注意两点: 1. C code和ASL code里面都要实现: 2. RST#是使用的GPIO功能,所以直接调用API来拉低就行了,CS#是native功能,需要首先配置为GPIO mode,然后拉低(针对GPIO的一系列操作,IHV的RC code里…
SOC固件(BIOS)开发: 1.熟悉硬件原理图:要弄清楚pin脚的功能: 2.配置GPIO引脚,配置成Native功能还是GPIO功能(如果是配置成GPIO,需要在code里面显式的使用): 3.硬件驱动是通过controller的寄存器来访问device的:以IIC为例,如果SOC有IIC的controller,固件程序只需要配置IIC的GPIO为native功能,然后code里面通过读写IIC controller的寄存器就可以完成对IIC device的访问(IIC的硬件时序由硬件con…
接上一篇,未提交的事务导致锁等待,锁住一段时间后又提交了(也可能是回滚),锁释放业务继续运行.那么我们如何知道产生锁的事务是在跑什么SQL? 今天讲的这个工具,就可以通过监听3306端口的数据,把每个事务的起始时间,SQL命令都打印出来,而且可以设置事务时长,比如事务时长超过10秒的. 参考链接:https://highdb.com/%E8%BF%BD%E8%B8%AAmysql%E4%B8%AD%E9%95%BF%E6%97%B6%E9%97%B4%E8%BF%90%E8%A1%8C%E7%9…
EC资料有个很好的CSDN博客推荐去看看:zhao_longwei的专栏 EC固件代码架构:https://blog.csdn.net/zhao_longwei/article/details/51010544 PCI/PCIE MSI#中断:https://blog.csdn.net/pwl999/article/details/78208151 Linux内核推荐:https://blog.csdn.net/pwl999/article/details/78817899#comments 关…
本文将介绍CRM的三个内容追踪.监控及性能优化.追踪是CRM里一个很有用的功能,它能为我们的CRM调试或解决错误.警告提供有价值的信息:我们可以用window的性能监控工具来了解CRM的性能状况:最后就是对CRM及其DB进行性能调整以让CRM达到最佳状态.   一.追踪 有二种追踪方式,一种是部署级,这种方式追踪所有的CRM 服务器上的角色.服务,默认情况,log文件在C:\crmdrop\logs:另一种是服务器级追踪,这种方式只追踪当前机器上运行的服务器角色.服务.默认情况,log文件在C:…
WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件. WinDbg是微软很重要的诊断调试工具: 可以查看源代码.设置断点.查看变量, 查看调用堆栈及内存情况.  调试应用程序(用户模式 user mode)  调试操作系统及驱劢程序(内核模式 kernel mode)  调试非托管程序(native program)  调试托管程序(managed program)  实时调试 (JIT:…