Superio进入寄存器配置空间详细操作

一、准备好主板和软件

准备好主板和RW软件,将类似下图中的RW软件全部拷贝到U盘中,然后插入到USB口中。。

二、 启动主板,进入internal SDK shell界面。

进入如下操作

2.1、输入FS0:进入U盘路径,一般都是FS0。
2.2、找到你的RW软件,以.efi扩展名的文件,输入该文件名回车。如下图

](https://img-blog.csdnimg.cn/ccaaf5e561174b4d877ca47c34d3e30d.png)
在这里插入图片描述

2.3、接下来会进入如下的界面。

在这里插入图片描述

三、 进入 Pnp Mode

3.1、输入alt + c 进入Config选择菜单,通过键盘的上下移动键选择IO Spec,并回车,回车完了后别动,保持着后面会用到。

在这里插入图片描述

3.2、根据Superio芯片参考手册,找到Configuration这一项,就可以看到相关步骤(这里以IT8673F为例)。
3.2.1、找到Configuration标题,定位到具体的页面,可以看到如下图的说明。


图 1

  图1是配置序列描述,就是一个流程图看不懂没有关系,只要知道有这么一个流程就行。接下来的才是重点。下图,有三个步骤,完成这三个步骤好像就是完成了图1描述的配置。
在这里插入图片描述
图2

3.2.2、看图2有没有头皮发麻,反正对我来说肯定是的。接下来我们来进行他说的第一步“Enter the MB PnP Mode”,步骤描述翻译过来是说:

  “进入MB PnP模式需要在“Wait for Key state”过程中进行36次特殊的I/O写操作。为了确保键检查逻辑的初始状态,首先需要对ISA PnP的地址端口(279h)执行两个写操作。输入键包括两个步骤。在第一步中,使用四个字节来确定配置寄存器的I/O地址和数据端口。在第二步中,32个字节被写入由前4个字节决定的Address端口。所有36个字节都必须正确且顺序地写入。前4个字节对应的顺序数据如下:

其余32个字节的顺序数据(与ISA PnP的初始密钥相同,但写入不同的I/O端口)如下以十六进制数列出:

  不知道各位懂吗。我当初看下来直接是懵逼的,当时在想着文档写的初学者能看懂?上网搜也没有找到一篇有关具体实现操作的文章。所以,我想帮助那些和我有同样困惑的人,让他们少走一些弯路。废话不多说直接开始。
还记得我们进入的那个蓝屏界面,接下来的所有操作都是在那个界面进行的。

3.2.2.1、Enter the MB PnP Mode的第一步,使用四个字节来确定配置寄存器的I/O地址和数据端口。

在这里插入图片描述
  在输入3F0或3BD或370,可以看到Start里就会显示你的输入,然后回车。接下来输入在
如下图所示的地方输入86然后回车,输入80然后回车,输入55然后回车,输入55然后回车。也可以输入86, 80, 55, AA或者86, 80, AA, 55,步骤都一样。
在这里插入图片描述
图3

3.2.2.2、输入余下的32各字节的数据。

  同样,也是在图3描述的位置输入如下的数据,每输入一个数据回车一次。
在这里插入图片描述
自此,图2中描述的步骤(1)“Enter the MB PnP Mode”配置完成。

四、现在进行图2所说的第二步“ Modify the Data of the Registers ”

第二步的描述时这样的:
  All configuration registers can be accessed after entering the MB PnP Mode. Before accessing a selected register, the content of Index 07h must be changed to the LDN to which the register belongs.
翻译过来是:
  进入MB PnP模式后,可以访问所有配置寄存器。在访问选定的寄存器之前,索引07h的内容必须更改为该寄存器所属的LDN
接下来我们进行上面描述的步骤。
  在下图中标识出来的横坐标为00(高地址),纵坐标为00(底地址)的地方输入07。图中最左边的红色字体的那一列代表寄存器的高地址,最上面的红色字体的那一行代表寄存器的低地址。
在这里插入图片描述
  然后,会在坐标为(00,01)的地方显示除当前LDN(Logical Device Number)是多少,如下图。
在这里插入图片描述
图4

  图4显示的LDN=07,想要改变LDN就在图4中(00,01)的地方输入你选择LDN号。如下图5输入LDN=4。
在这里插入图片描述
图5

在这里插入图片描述
图6

  LDN=04h(这里的h代表的时16进制)是控制风扇的寄存器的设备号。可以看到图6中还有index这一列,这一列代表的是寄存器的地址。
在这里插入图片描述
图7

  使用方法是如图7,在(00,00)地方输入index的编号(如输入30),输入完后回车。这时候就已经是进入了index=03h的寄存器了。之后,在(00,01)的地方输入你想要给这个寄存器的值,如输入01(这里输入的数必须是16进制的数),输入完后回车。这时候你就已经完成对LDN=04的设备,下的寄存器30里面存储的值修改为了01。
修改其他的寄存器方法同上,就不再赘述。下面进行手册中最后一步Exit the MB PnP Mode

五、进行Exit the MB PnP Mode

5.1、芯片手册的描述如下

  ”Set bit 1 of the configure control register (Index=02h) to “1” to exit the MB PnP Mode“
意思是:推出MB Pnp Mode前, 必须把设置index=02寄存器的第一位设置为1。

5.2、实现退出MB Pnp Mode

  文档描述中是不是没有说应该设置哪个LDN下的index=02的寄存器呢?确实没有说。这就是告诉我们,可以在任何的LDN下进行。那么我们选择LDN=04,就是前面设置好了的LDN。那么我们可以直接在(00,00)输入index=02,然后在(00,01)处输入02,然后回车,就会重新启动设备。(可能有人会问,这里为什么不贴图,因为机器被收走了。呜呜呜呜)。
  希望对各位有帮助。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SuperIO芯片内部包含一组寄存器,用于存储和控制各种功能。这些寄存器通常通过I/O端口或内存映射方式进行访问。 要找到和访问SuperIO芯片的寄存器以进行GPIO设置和控制,可以按照以下步骤进行: 1. 确定SuperIO芯片型号:首先,需要确定计算机主板上使用的SuperIO芯片型号。可以参考主板制造商提供的文档、手册或技术规格,或使用特定的工具进行识别。 2. 查阅SuperIO芯片文档:根据确定的SuperIO芯片型号,查阅相应的制造商文档。这些文档通常提供了关于SuperIO芯片寄存器详细信息,包括地址、功能和使用方法等。 3. 选择合适的访问方法:根据SuperIO芯片的型号和文档,选择合适的访问方法。常见的访问方法包括直接I/O端口访问和内存映射访问。 - I/O端口访问:通过指定的I/O端口地址来读取和写入寄存器值。可以使用相关的API或库函数来实现对I/O端口的访问。 - 内存映射访问:将SuperIO芯片寄存器映射到内存地址空间中,通过读写内存地址来访问寄存器。这需要在系统中进行相应的内存映射配置和访问。 4. 使用编程语言进行访问:根据选择的访问方法和编程语言,使用相应的代码来访问和控制SuperIO芯片的寄存器。在代码中,可以使用合适的读写函数来读取和写入寄存器值,实现GPIO的设置和控制。 需要注意的是,不同SuperIO芯片的寄存器布局和功能可能会有所不同。因此,在使用时应仔细阅读相关文档,并按照制造商的建议和指南进行操作。此外,直接访问SuperIO芯片需要特权权限,可能需要以管理员身份运行程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值