ITE Super IO入门篇
接觸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è)備可用,分別如下:
每個(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)題。
- 上一篇: 古风排版(C语言实现)
- 下一篇: 2008服务器远程桌面连接设置密码,Wi