SIO有关知识
Superio概述
Super I/O芯片也叫I/O芯片。在486以上檔次的主板上都有I/O控制電路。因為在南橋這樣的高速設備和串行、并行接口、軟盤驅動器及鍵盤鼠標等大量低速設備之間必定存在資源的不匹配,而需要經過轉換和管理。而Super I/O芯片則完成了該功能。
通常在硬件監控芯片硬件監控芯片中會整合超級I/O功能,可用于監控受監控對象的電壓、溫度、轉速等。主板在附件中會提供某種軟件,它和主板上的硬件配合使用就能實現對電壓、溫度、風扇轉速等的監控,一旦檢測到這些參數超出設定的指標時,它會自動作出調整,以保護元件的安全。常見的溫度控制芯片有ADT7463等等;通用的通用硬件監控芯片有Winbond的W83697HF和W83627HF,SMSC的LPC47M172,ITE的IT8705F、IT8703F,ASUS的AS99172F等等,這些芯片通常還整合了對于溫度的監控需與溫度傳感元件配合;對風扇電機轉速的監控,則需與CPU的散熱風扇配合使用。
SIO是一個半可定制化的芯片,怎么說是半可定制化呢?比如上電時序,這一部分就是固化好的,而可定制化部分則是邏輯設備(Logic Device)部分。接入電源后SIO便根據固化的程序開始運作,等待power button觸發。按下power button后SIO開始跑上電時序,CPU Reset后BIOS才開始跑,此時BIOS給SIO配置的Logic Device也才生效。
?
訪問SIO
可以通過 index/data 的IO的方式訪問SIO,端口分別是0x2E/0x2F。訪問前需要先進入PnP mode,之后便可以通過往0x07這里寫入邏輯設備號切換到相應的邏輯設備。
(1) Enter the extended function mode
(2) Configure the configuration registers
(3)?Exit the extended function mode
SIO中的IO Space(轉)
邏輯設備中的256個byte寄存器對于配置一些比較復雜的功能(如Smart Fan)遠遠是不夠的,所以SIO還給我們提供了額外的寄存器去實現更加復雜的功能,那便是IO Space。要訪問這個Space,就得知道它的Base Address,那在哪里呢?
IO Base Address一般是每個邏輯設備0x60,0x61,0x62,0x63這幾個位置的值,當然,這段空間首先得經過南橋decode才可以,decode的這個問題我們暫且忽略。為了方便理解,我們舉個例子。
就拿LDN 4 EC這個設備來說,我們要訪問他的IO Space,首先得知道它的地址是多少,從IT8625的SPEC可以知道,地址就是0x60,0x61中的值。
這里的兩個值是不能直接用的,按照說明,需要分別給他們加上05h和06h,再用index/data的IO方式訪問就可以了。假如0x60的值是02h,0x61的值是90h(這兩個值可以用RW看到),則:
index port address = 290h + 05h = 295h
data port address = 290h + 06h = 296h
用RW訪問這個IO地址便可以看到結果了。
總結
- 上一篇: 06 |「链表」必刷题
- 下一篇: 使用Selenium对QQ邮箱登录页面进