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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BIOS interviews

發(fā)布時間:2025/5/22 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BIOS interviews 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.PCI 配置空間的訪問?

PCIe的配置空間訪問怎么訪問呢?1.當然是0XCF8/0XCFC了,但是其只能訪問配置空間的256byte,所以在pci express下還有memory-map方式訪問。

-CF8/CFC:

mov dx,0CF8?????????????????? ;set dx = config address port address

mov eax,80040000???????? ;enable=1, bus 4, dev 0, Func 0, DW 0

out dx,eax?????????????????????? ;set up address port

mov dx,0CFC????????????????? ?; set dx = config data port address

?in ax,dx????????????????????????? ;2 byte read from config data port

-memory-map

mov ax,[50400000]?????????? ;memory-mapped IO read

//這個地址算法:

PCI Express* Config space base address+Bus Number*100000h+Device Number*8000h+Function Number*1000h+Register offset.

*一個pci express的配置空間有FFFH=4Kbyte,所以?memory-mapped IO range需要256*32*8*4=256M大小的空間。

*PCI Express* Config space base address在哪里?HECBASE有定義它的值。這個register怎么去找?看MCH吧,它一樣有兩種方式去找的。

?

2..How to access memory SPD by Smbus?

SPD的信息很多很有用的,Smbus上掛的東西還挺多的:Smart batterythermal?senser

首先得找到Smubus的controller,這就要知道這個controller也是個pci device,計算機架構都從PCI開始延伸展開的,以前是CPU為中心,現(xiàn)在呢?呵呵

1.當PCI scan的時候,怎么去知道這是一個什么device呢?呼呼,看看pci配置空間就知道有個class code的三bytes一項了,就是通過它去判斷了:?base Class 、sub-class、Programming Interface。每個byte值的具體含義這個你就要查了(http://www.pcidatabase.com/)。

2.看看Offset 20 - 23h它就是SMBUS Base Address Register,(有很多registers 256bytes根本放不了),找到它然后就是大家熟悉的什么base address+offset訪問我們需要的東西了。

3.確保SMBus Host Enable bit是打開的,這個bit在Host Configuration Register里,大多數(shù)它是在offset 40H。

4.現(xiàn)在我開始關系SMBUS I/O Registers了:Status registerControl registerCommand(index) registerSlaver address registerData register。這些register干嘛的啊,具體看datasheet吧。

5.真多,以前沒發(fā)現(xiàn)整理資料挺麻煩:

--1.因為SMbus上還有其他Device,所以先要選擇對哪一個Device操作(slave address->Transmit Slave Address寄存器中);SPDslave address的高4位是固定的,是1010b,跟著的低3位由RAM所在Address決定,最低位用來決定讀寫,1為讀,0為寫。

--2.SPD中有256Byte的數(shù)據(jù),需要讀哪一個的值,就將這個值的offset送到commandindexregister中。

--3.control registerstart動作,同時也決定以byte讀還是以word讀。這一動作執(zhí)行之后,SMBus會將指定的SPD中的值讀到Data register中。

--4.根據(jù)status register中的值,判斷上一步執(zhí)行是否成功。

--5.從Data register中讀值

3.SMBIOS的理解?

我覺得就是收集系統(tǒng)的各個方面的信息方便其他人獲取。。。。。。

轉載于:https://www.cnblogs.com/kuwoyidai/archive/2011/07/21/2113189.html

總結

以上是生活随笔為你收集整理的BIOS interviews的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。