![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
BIOS
文章平均质量分 59
木木小又又
这个作者很懒,什么都没留下…
展开
-
代码中设备的扫描和Driver Binding的关系
代码中设备的扫描和Driver Binding的关系主板上大部分外设都是挂在控制器或桥上,这些控制器都挂在PCI下。如上图,USB设备就通过USB总线挂在EHCI下面,在代码中,每一个设备对应一个handle,PCI Bus先扫描BUS0上的PCI设备,扫描到一个设备,就在它的handle下install PciIoProtocol和DevicePath,这样它的配置空间就可以用了。gBS->ConnectController调用Driver Binding函数遍历所有PCI设备,匹配class原创 2021-03-29 14:53:55 · 649 阅读 · 1 评论 -
对PCIE设备访问及其配置空间的一点理解
讲讲对PCIE总线协议的一点理解吧。感觉每一年又会多一点理解,但不懂得地方仍很多。PCI总线是拓扑结构,PCI总线从0开始,不超过31。如下图,挂在总线0,即Bus 0上的为根(root)设备,下面还挂设备的则为桥(Bridge),不再挂设备的即为设备(Device)。挂在桥下的设备总线号必然大于桥的总线号,下图中,PCI桥片1位Bus 0,PCI设备11为bus 1,PCI设备31为Bus 3。所以PCI桥片1的从属总线是1-3。挂在PCI总线上的所有桥或设备都有特定的编号,即为Bus,Device原创 2021-02-26 11:35:56 · 3475 阅读 · 4 评论 -
客制化VBIOS
除去标准VBIOS里存在的一些分辨率,我们有时候需要根据客户的特殊屏设置对应DTD Timings,以实现屏的点亮。屏参如上图,即HA:1024, VA:600HBL:320 VBL:35clk:5120(10kHz)转化为十六进制HA:400h, VA:258hHBL:140h VBL:23hclk:1400h(10kHz)根据下图DTD Timings的规范,可以得到下二图的结果如果遇到显示不全,则可设置实际显示参数,根据Active area填写实原创 2021-02-20 15:21:23 · 1798 阅读 · 0 评论 -
EC读取风扇转速并在BIOS中显示
EC读取风扇转速并在BIOS中显示一、理论:由下图可知,FAN_TACH是侦测PIN,FANPWM1是控制PIN,FAN_TACH与GPJ3相连。由IT8528的规格是可知,该引脚作复用功能TACH1B用,可侦测风扇转速。且转速放在F2TLRR和F2TMRR中转速计算公式其中fs = FreqEC / 128;而FreEC 为9.2 x 10^6 Hz其中q为2吧配置好以下寄存器,即可侦测到风扇转速。1、GPIOJ3配成ALT,让它自动选择功能2、GRC5的bit1写1原创 2021-02-05 14:00:00 · 5355 阅读 · 9 评论 -
访问SMBus设备
使用SMBus访问温度传感器,并控制smart Fan首先聊聊SMBus的访问方法硬件上:两条线SMBus Clock和Data信号当clock信号为高时data信号才有效,data信号下降,意味着Start。data信号上升,意味着Stop。开始后会发送九位,包括八位数据,一个应答位,如下图,从示波器上可以看到(蓝为clock,黄为data),可以看到发送的为01011100,第9为应答位为高,即NACK,设备无响应。最后为stop。这样就可以通过示波器知道SMBus设备是否响应。软件上原创 2021-02-05 11:27:40 · 2158 阅读 · 4 评论