码迷,mamicode.com
首页 > 其他好文 > 详细

第十六篇 -- SuperIO学习

时间:2019-08-02 11:23:14      阅读:953      评论:0      收藏:0      [点我收藏+]

标签:风扇   生效   NPU   修改   环境   ioc   bsp   base   war   

先学习一下GPIO,网上各种找资料,拼凑,所以就不一一贴网址了。

一、GPIO

GPIO的英文全称General-Purpose Input /Output Ports,中文意思是通用I/O端口

一个GPIO端口至少需要两个寄存器,一个做控制用的“通用IO端口控制寄存器”,还有一个是存放数据的“通用I/O端口数据寄存器”。数据寄存器的每一位是和GPIO的硬件引脚对应的,而数据的传递方向是通过控制寄存器设置的,通过控制寄存器可以设置每一位引脚的数据流向。(GPIO相关的寄存器有,IOPIN、IOSET、IOCLR、IODIR四个寄存器。)

GPIO很典型的就是控制LED灯的亮灭,通过高低电平。这部分还得研究电路图,看GPIO的引脚,问题先放在这里,之后会去看电路图。

网址推荐: https://www.cnblogs.com/Obayan/p/3894221.html

 

再学习一下SuperIO,网上各种找资料,拼凑,所以就不一一贴网址了。

二、SuperIO

这次主要研究SuperIO读取以及控制风扇转速的问题。

参考文章:https://huchanghui123.github.io/Linux/Linux-Superio-CPU-FAN/

首先需要了解的一点是,CPU风扇属于环境控制器(EC)

内置在IT8786E-I中,包括五个电压输入,三个温度传感器输入,五个FAN转速计输入和五组先进的风扇控制器。 EC监控硬件环境,实现个人电脑的环境控制,我们需要找到IT8786E-I芯片的SPEC

流程如下:

1. 可以在Spec里面搜PnP Mode找到基地址,Address Port一般是2E,Data Port 一般是2F,如果有RW工具的话,可以进入Super IO,然后在IO Ports里面Index Port输2E,Data Port输入2F,然后在0x00位置依次输入(87h, 01h, 55h, 55h),进入MB PnP 模式。可能你发现你每输一个,它会自动变为0x00,不要以为没生效,其实它已经进入PnP Mode了。比如你输玩87h,确定后,马上变回00,不要慌,继续输入01h确定。

2. 使能 EC(LDN=04h, Index 30h=01)通过看SPEC,可以发现它的逻辑设备号是04h,所以我们可以选择Logical device 04,然后看它的30h位置是不是01,如果是01的话,则EC生效

3. 得到EC Base Address,可以从SPEC中看出,基地址是需要从60h,61h寄存器读出来的,60h是高八位,61h是低八位,合起来就是基地址base。然后我们的EC控制器的地址端口地址就是base+05h,数据端口就是base+06h。

基地址由逻辑设备寄存器确定(index=60h, 61h)

地址端口(Base+05h);数据端口(Base+06h)

4. 配置风扇转速寄存器(index=0Ch,default=00h)我们找到Fan PWM Control Register,找到控制风扇的寄存器地址,选择手动模式,即(Software Operation),然后根据SPEC,一般选择模式的地址部分会有控制风扇转速的地址说明,我们就可以设置00h-ffh控制风扇的转速。注意一点的是,00h不代表风扇停止,因为风扇会有一个最低转速,ffh是满转。

5. 计算出风扇转速(index=0Dh,18h)风扇转速会有一个公式,可以在SPEC里面直接搜RPM找到类似

技术图片

这种就是风扇转速的计算公式,其中Count是你通过18h,0Dh读取出来的值换算成十进制的值,比如说18h读的是02h,0Dh读的是90h,那么合起来就是0290h,十进制为656,带入公式即可。

6. 退出MB PnP 模式(index=02h,default=02h)这个也可以在SPEC里面看到,这个退出PnP Mode在2E/2F端口里面的02h部分设置为01h。

至此,风扇控制就完毕了。

以前的机器大部分的流程就是这样就可以完成了。但是新机器经过实验控制不了,可能需要BIOS那边提供相应的寄存器来修改值进入手动模式才可以。还有这种讲的是ITE芯片的,如果不是用ITE芯片控制的话,流程可能就不是这样的了。有的风扇控制是不需要进入PnP Mode 的,这次就是对于其中的一种进行学习。

第十六篇 -- SuperIO学习

标签:风扇   生效   NPU   修改   环境   ioc   bsp   base   war   

原文地址:https://www.cnblogs.com/smart-zihan/p/11286977.html

(0)
(2)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!