`
ihuashao
  • 浏览: 4721621 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

【我所認知的BIOS】—>Super IO

阅读更多

【我所認知的BIOS—>Super IO

By LightSeed

2009-9-2

1Superio概述

Super I/O芯片也叫I/O芯片。在486以上档次的主板上都有I/O控制电路。因为在南桥这样的高速设备和串行、并行接口、软盘驱动器及键盘鼠标等大量低速设备之间必定存在资源的不匹配,而需要经过转换和管理。而Super I/O芯片则完成了该功能。

通常在硬件监控芯片硬件监控芯片中会整合超级I/O功能,可用于监控受监控对象的电压、温度、转速等。主板在附件中会提供某种软件,它和主板上的硬件配合使用就能实现对电压、温度、风扇转速等的监控,一旦检测到这些参数超出设定的指标时,它会自动作出调整,以保护元件的安全。常见的温度控制芯片有ADT7463等等;通用的通用硬件监控芯片有WinbondW83697HFW83627HFSMSCLPC47M172ITEIT8705FIT8703FASUSAS99172F等等,这些芯片通常还整合了对于温度的监控需与温度传感元件配合;对风扇电机转速的监控,则需与CPU的散热风扇配合使用。

(以上是从互联网上copy的,^^,我太懒了呵呵,本可以翻译一下datasheet里的文字的。不过上面的文字到是把大概的东西都说到了。)

2SuperIO的样子

文字说了那么多,感到晦涩又不爽。还是先一睹他们的风采哈,(笔者:这篇文章主要还是介绍Winbond83627HG这块芯片,(笔者:这里有下载芯片的datasheet 网址:

http://pdf1.alldatasheet.com/datasheet-pdf/view/203869/WINBOND/W83627HG-AW.html)其他芯片其实也是触类旁通了。)图1Winbond83627HG在实际主板上的样子。图2ITEsuperio在主板上的图片。

1 Winbond83627HG在实际主板上的样子

2 ITEsuperio图片

383627传输IRQ的方式

83627HG是采用SERIAL IRQ的方式来传输IRQ,至于SERIAL IRQ的介绍在之前的文章中我有详细的探讨,如果您对这个有兴趣再返回去看看。连接是这个。

http://blog.csdn.net/lightseed/archive/2009/06/16/4274206.aspx

4Winbond 83627上的设备

4.1设备列表

让我们来罗列一下Winbond 83627上的设备,共13个设备,他们分别是:FDClogical device 0, PRTlogical device 1,UART1 logical device 2, UART2logical device 3, KBClogical device 5, CIRConsumerIR, logical device 6, GPIO1logical device 7, GPIO2logical device 8, GPIO3logical device9, ACPI logical device A, and hardware monitor logical device B. 3是他们的抽象示意图。

3 逻辑设备示意图

4.2各个设备的寄存器

如果您以前没有玩过X86的东东可能有点一下子反应不过来我后面要说的。(因为以前一开始我学习的时候就是死活转不过脑筋来。不过再回头看两次就应该OK了。)

每一个逻辑设备它们都有自己的配置寄存器,不过要记住哦,这些寄存器都是offset30h以上的哦。为什么呢?因为offset 0h~30h都是叫做global的寄存器。从C语言的风格上讲就叫做全局变量,而30h以后的寄存器则是局部变量。

那么您第一个会问,这么多个设备在同一个芯片中,我在配置的时候怎么才能选中它们呢?(当时看datasheet我是迷惑了半天),原来在datasheet第九章第一段的最后一句有详细的说明:

logical device number into logical device select register at CR7.真想大白于天下,那么我们去操作offset 7h这个寄存器就可以直接选中我们需要配置的寄存器了。

5、配置空间

配置空间在Winbond 83627里,大致被分成了两类。一类是global的,一类是属于各个设备的。对于每个设备而言,当我们访问到的0~255个寄存器中,0~30h都是属于global的。图4是它们的示意图

4配置空间的架构示意图

6、配置实例

介绍了function,背景这么多,其实我最关心的还是怎么去配置各个设备。Winbond 83627要配置它的话比较特殊,必须要先输入entry key。大致分为三个步骤:

1 Enter the extended function mode

2 Configure the configuration registers

3 Exit the extended function mode

外孙打灯笼,我们来看看详细的配置代码吧,加上详细的注释。

;----------------------------------------------------------------------

; Enter the extended function mode ,interruptible double-write |

;----------------------------------------------------------------------

MOV DX,2EH ;选择index端口,这个2E也是有原因的,详细看看datasheet page78

MOV AL,87H ;entry key

OUT DX,AL

OUT DX,AL ;连续两次输出到index端口,这个是芯片的规定

;----------------------------------------------------------------------

; Configurate logical device 1, configuration register CRF0 |

;----------------------------------------------------------------------

MOV DX,2EH

MOV AL,07H ;选择global寄存器中的offset 07h,准备选择device

OUT DX,AL ; point to Logical Device Number Reg.

MOV DX,2FH ;选择data端口

MOV AL,01H ;准备选择01h设备

OUT DX,AL ; select logical device 1,到这里已经选中了device 1

;

MOV DX,2EH

MOV AL,F0H ;准备修改寄存器F0H

OUT DX,AL ; select CRF0

MOV DX,2FH

MOV AL,3CH ;准备把control register F0H的值改为3CH

OUT DX,AL ; update CRF0 with value 3CH

;------------------------------------------

; Exit extended function mode |

;------------------------------------------

MOV DX,2EH

MOV AL,AAH ;退出配置模式的key

OUT DX,AL ;退出

当然有些device是需要从superio里面读取寄存器的值出来,而且频率还挺高的。方法与写入的过程类似,我们BIOSinitial superior的过程中均是用的datasheet里提供的方法。(就是上面的方法)

7、结束

Superio这部分的东西其实还是比较简单的,但是。。。但是。。。很多时候出问题就在superio上面,比如说串口呀,KBCkeyboard controller)呀什么的,经常会有这样那样的bug。所以也要引起足够的重视呢。至于找bug的技巧嘛,呵呵。。。我也还在学习中。希望大家相互探讨哦,实践方面晚辈掌握的实在是太少了。

分享到:
评论

相关推荐

    VxWorks6.8在E6平台下对无SuperIO模块应用的支持

    综上所述,E6平台在缺少SUPERIO芯片的情况下运行VxWorks6.8可能会遇到启动问题。通过对启动过程的深入分析,我们可以针对性地提出解决方案,包括修改启动代码、裁剪不必要的硬件支持等措施。此外,在实际操作中还需...

    Linux下debug的工具superiotool

    在BIOS开发和系统维护中,了解和控制Super I/O芯片的行为至关重要。 Super I/O芯片通常负责管理系统的低级I/O功能,因此它们对于理解硬件的工作方式和解决与之相关的故障具有重要意义。`superiotool`允许用户在...

    SuperIO芯片IT8786E数据手册及上电指导下载

    SuperIO芯片IT8786E数据手册及上电指导下载 IT8786E-Environment Control- Low Pin Count Input / Output(EC - LPC I/O) Preliminary Specification V0.7.2 IT8786E/HX BIOS initial guide IoWrite8(0x2E, 0x87) Io...

    【我所认知的BIOS】系列blog整理 1.23.2016.zip

    这几年来,蛮多小伙伴都给我发邮件拿PDF版本。几年前写的文章格式什么的实在是太粗糙。最近我把所有的文章都整理了一下。其实该想法已经早就有了,只是最近才...涉及BIOS, UEFI, EFI, AHCI, ACPI, driver等底层的知识

    【我所认知的 BIOS 】实模式&保护模式切换实例

    在计算机系统中,BIOS(基本输入输出系统)扮演着至关重要的角色,它是一组固化在计算机主板上ROM芯片中...通过阅读《我所认知的 BIOS 》实模式&保护模式切换实例文档,可以更直观地学习这一过程,并通过实践加深理解。

    研华工控机BIOS设置译本对照.pdf

    Super IO配置部分提供了Super IO配置的设置选项,包括Super IO类型、Super IO通道等。 八、硬件健康配置 硬件健康配置部分提供了硬件健康配置的设置选项,包括温度监控、风扇控制等。 九、ACPI配置 ACPI配置部分...

    基于DSP的BIOS中IO设备驱动编程技术

    "基于DSP的BIOS中IO设备驱动编程技术" 本文将详细介绍基于DSP的BIOS中IO设备驱动编程技术,包括DSP/BIOS操作系统简介、任务调度模块、通讯模块、低级设备驱动等知识点。 DSP/BIOS是一组可重复调用的系统模块API的...

    N卡BIOS工具加1660s提升bios

    N卡BIOS工具加1660s提升bios

    DSP/BIOS中的IO设备驱动编程技术

    【DSP/BIOS中的IO设备驱动编程技术】 随着信息技术的快速发展,数字信号处理器(DSP)在各个领域中扮演着越来越重要的角色,特别是在航空、航天、雷达、通信以及消费电子设备等应用中。TI公司的TMS320C6400系列更是...

    bios模拟器BIOS练习器

    BIOS练习器是一款专门针对电脑初学者的BIOS设置学习软件,软件只有一个文件,下载解压后直接双击即可运行。软件全真模拟AWARD BIOS的设置界面,采用与AWARD BIOS设置完全相同的操作方法和快捷按键,任何对AWARD BIOS...

    bios .h(添加bios.h的头文件).rar

    在编程领域,BIOS(基本输入输出系统)是计算机硬件与操作系统之间的一个关键接口。BIOS的主要职责是在计算机启动时执行一系列初始化任务,包括检测硬件、设置系统配置,并加载操作系统。`bios.h`是一个头文件,它...

    系统之家整理 BIOS全攻略 bios手册

    跟我来升级BIOS——实战篇 跟我来升级BIOS——资源篇 更改能源之星的图标.htm 华硕主板 BIOS 的升级与管理 华碩 BIOS设定方式說明 免跳线主板CPU的BIOS设置 浅谈CMOS 如何使用CBLOGO 如何修改 BIOS 里...

    BIOS源代码bios-img.zip

    10. **UEFI替代BIOS**:随着技术的发展,传统的BIOS已经被更先进的统一可扩展固件接口(UEFI)所取代。UEFI提供了一种更现代、更安全、更高效的启动方式,但其底层原理仍与BIOS有相通之处。 总之,通过研究"BIOS源...

    联想Y450 BIOS Y550 BIOS 32x64x BIOS+WINFLASH

    在IT领域,BIOS(基本输入输出系统)是计算机硬件与操作系统之间的重要接口,负责初始化和自检系统硬件,以及提供基本的服务供操作系统调用。联想Y450和Y550是联想公司推出的两款笔记本电脑型号,它们分别对应着不同...

    A卡bios修改软件PolarisBiosEditor.rar

    标题中的"A卡bios修改软件PolarisBiosEditor.rar"是指AMD Radeon显卡的BIOS修改工具,Polaris Bios Editor。这款软件主要用于调整和优化AMD Polaris架构显卡(如Radeon RX 470、570、580、588等)的BIOS设置,以提升...

    超微主板super micro x9dai主板开机莫名密码password清除bios.bin编程器文件

    password各种清除无果,编程器直接上 立马搞定,安装windows10正常

    PolarisBiosEditor北极星BIOS编辑器.rar

    【Polaris BIOS Editor——AMD北极星显卡的BIOS编辑神器】 在计算机硬件领域,BIOS(基本输入输出系统)扮演着至关重要的角色,它负责初始化和管理系统硬件,为操作系统提供一个运行的基础环境。而对于发烧友和硬件...

    MAME最新可用bios

    使用这些BIOS文件时,用户需要根据所玩的游戏和地区选择正确的BIOS,以确保最佳的游戏体验和兼容性。在MAME中,这些文件通常会被放置在指定的BIOS目录下,并在模拟器设置中进行配置。此外,值得注意的是,使用和分享...

    GK5CN6XV1.1 bios神舟战神Z7BIOS文件工厂版

    而`刷bios神器v4.3.exe`则是一个BIOS刷新工具,用于安全地将新的BIOS版本写入到电脑的BIOS芯片中。使用这类工具时必须谨慎操作,因为错误的刷新过程可能导致系统无法启动。 在更新BIOS之前,用户应确保已备份重要...

    OpenEmu BIOS Pack.zip

    这个压缩包包含了运行不同游戏系统所需的各种BIOS固件。 首先,让我们逐一了解压缩包中的文件: 1. BS-X.bin:这是Game Boy Advance(GBA)模拟器需要的BIOS文件,用于正确模拟GBA硬件。 2. SCPH550x.BIN 文件(x...

Global site tag (gtag.js) - Google Analytics