日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ITE Super IO入门篇

發(fā)布時(shí)間:2023/12/20 编程问答 77 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ITE Super IO入门篇 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

接觸BIOS以來(lái)算起來(lái)已經(jīng)有四年了,想著將自己所學(xué)的知識(shí)記錄起來(lái),這樣也方便他人學(xué)習(xí)。這是我的第一篇博客,從SIO開(kāi)始吧!

簡(jiǎn)介

SIO應(yīng)用在臺(tái)式機(jī)比較多,主要用來(lái)做電源管理,如上電時(shí)序控制;外圍接口擴(kuò)充,如串口、并口;還有溫度、電壓監(jiān)控、智能風(fēng)扇等。

SIO是一個(gè)半可定制化的芯片,怎么說(shuō)是半可定制化呢?比如上電時(shí)序,這一部分就是固化好的,而可定制化部分則是邏輯設(shè)備(Logic Device)部分。接入電源后SIO便根據(jù)固化的程序開(kāi)始運(yùn)作,等待power button觸發(fā)。按下power button后SIO開(kāi)始跑上電時(shí)序,CPU Reset后BIOS才開(kāi)始跑,此時(shí)BIOS給SIO配置的Logic Device也才生效。

訪問(wèn)SIO

可以通過(guò) index/data 的IO的方式訪問(wèn)SIO,端口分別是0x2E/0x2F。訪問(wèn)前需要先進(jìn)入PnP mode,之后便可以通過(guò)往0x07這里寫(xiě)入邏輯設(shè)備號(hào)切換到相應(yīng)的邏輯設(shè)備。怎么進(jìn)入PnP mode呢?SPEC上有說(shuō)明。

即只需在0x2E/0x4E這個(gè)端口分別寫(xiě)入0x87,0x01,0x55,0x55 就可以了,進(jìn)入PNP mode后我們便可以讀出邏輯設(shè)備中的256個(gè)寄存器值,讀完后需要退出PnP mode。我們可以在帶SIO的機(jī)器上用RW做下實(shí)驗(yàn)。

SIO中的邏輯設(shè)備

本文及以后的文章將會(huì)以IT8625這款型號(hào)進(jìn)行講解,其它型號(hào)也是大同小異的。

IT8625這款Super IO 共有8個(gè)邏輯設(shè)備可用,分別如下:

  • LDN 1 為串口1
  • LDN 2 為串口2
  • LDN 3 為并口
  • LDN 4 為環(huán)境控制器,比如溫度,電壓監(jiān)控,風(fēng)扇控制等
  • LDN 5 為PS/2鍵盤(pán)
  • LDN 6 為PS/2鼠標(biāo)
  • LDN 7 為GPIO,如Power LED呼吸燈的控制
  • LDN A 紅外

    每個(gè)邏輯設(shè)備都有對(duì)應(yīng)的256個(gè)寄存器可配置,值得注意的是,256個(gè)寄存器中,有部分屬于通用的全局寄存器,即每個(gè)邏輯設(shè)備這部分的寄存器都是共享的,如下表。

    如0x20,0x21這兩個(gè)寄存器,你在LDN1讀出來(lái)的跟LDN2或LDN3等任何邏輯設(shè)備中讀出來(lái)的都是一樣的值,它都是屬于Chip ID,此類(lèi)寄存器稱(chēng)為Global Configuration Register。
  • 每個(gè)邏輯設(shè)備中的寄存器除了全局部分,也有部分是有相同含義的,如0x30這個(gè)位置,大多數(shù)屬于Activate功能,用來(lái)設(shè)置該設(shè)備是否啟用,其它的具體可參照SPEC 8.2章節(jié)。

    SIO中的IO Space

    邏輯設(shè)備中的256個(gè)byte寄存器對(duì)于配置一些比較復(fù)雜的功能(如Smart Fan)遠(yuǎn)遠(yuǎn)是不夠的,所以SIO還給我們提供了額外的寄存器去實(shí)現(xiàn)更加復(fù)雜的功能,那便是IO Space。要訪問(wèn)這個(gè)Space,就得知道它的Base Address,那在哪里呢?

    IO Base Address一般是每個(gè)邏輯設(shè)備0x60,0x61,0x62,0x63這幾個(gè)位置的值,當(dāng)然,這段空間首先得經(jīng)過(guò)南橋decode才可以,decode的這個(gè)問(wèn)題我們暫且忽略。為了方便理解,我們舉個(gè)例子。

    就拿LDN 4 EC這個(gè)設(shè)備來(lái)說(shuō),我們要訪問(wèn)他的IO Space,首先得知道它的地址是多少,從IT8625的SPEC可以知道,地址就是0x60,0x61中的值。

    這里的兩個(gè)值是不能直接用的,按照說(shuō)明,需要分別給他們加上05h和06h,再用index/data的IO方式訪問(wèn)就可以了。假如0x60的值是02h,0x61的值是90h(這兩個(gè)值可以用RW看到),則:

    • index port address = 290h + 05h = 295h
    • data port address = 290h + 06h = 296h

    用RW訪問(wèn)這個(gè)IO地址便可以看到結(jié)果了。

    入門(mén)篇到這里就結(jié)束了,總體認(rèn)識(shí)了一下SIO,后面的文章將逐一講解每個(gè)邏輯設(shè)備的使用。

    總結(jié)

    以上是生活随笔為你收集整理的ITE Super IO入门篇的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。