最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

PCI Express 基礎

2023-02-21 23:14 作者:ProsperousFall  | 我要投稿

PCI-e?是一種高速串行計算機擴展總線標準,是常用的 PC IO 接口。

PCI-e 初始化可以分為以下幾步:

1. 獲得 PCI-e 設備配置空間

2. 為設備加載相應的驅動程序

3. 由驅動程序完成硬件配置

獲取 ECAM 基址

ECAM (Enhanced Configuration Address Mapping) 基址由固件或橋設備提供

ACPI 體系計算機的?ECAM 基址 (Base address of enhanced configuration mechanism) 儲存在 MCFG 中

APCI MCFG Table


ACPI Table

獲取 ECAM 基址的具體方式:

1.系統(tǒng)在初始化時,先獲取 RSDP (Root System Description Ptr)

不同平臺擁獲取 RSDP 實現(xiàn)方法不同,具體見 ACPI_Spec 的 5.2.5 Root System Description Pointer (RSDP) 章節(jié)

REDP(Root System Description Ptr)


2.根據(jù) RSDP 找到 RSDT ( Root System Decription ) 或 XSDT ( Extend System Decription )

XSDT 目的是取代 RSDT 而并非 RSDT 的拓展。所以,所以這里就只提 XSDT。

固件加載 boot*.efi 后,會將 SystemTable 傳入主函數(shù)。詳細的內(nèi)容后續(xù)會補充在 UEFI 引導編寫教程的相關章節(jié)。

EDK2 規(guī)范中指明的 XSDT 位置 :

SystemTable -> XSDT -> MCFG

通過 圖 APCI MCFG Table 構建結構體,即可導出ECAM基址 (Base address of enhanced configuration mechanism)

讀取 PCI-e 配置空間內(nèi)容:

ECAM 基址由固件決定,所占用空間不得低于?n*32MB(n表示總線數(shù))。通常情況 可修改 ECAM?大小為 64MB、128MB、256MB。

Base address of enhanced configuration mechanism 表示的即前文提及的 ECAM 基址

ECAM 訪問 PCI-e 配置空間的方式如下,

BaseAddress[63:27] 基址

BaseAddress[27:20] 映射 總線號

BaseAddress[19:15] 映射 設備號

BaseAddress[14:12] 映射 功能號

BaseAddress[11:8]?拓展尋址器

BaseAddress[7:2]?尋址器

BaseAddress[1:0] 字節(jié)取值器(注意RW屬性)

拓展尋址器、尋址器與字節(jié)取值器 與其它部分組成完整地址,用于指針取值。

在 IO 過程中?拓展尋址器、尋址器與字節(jié)取值器 并不發(fā)揮功能。

對于用戶,訪問的方式是,將總線號,設備號,功能號整合與基址相加。

如圖:

Windows中總線00:00:00的值獲取

MCFG 中的 Base Adress 即 Base Adress of Enhanced?configuration mechanism,

構建 00:00:01?設備的編號,0x800 (0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_0000_1000_0000_0000)

得到該設備的增強配置空間基址,即?Base Adress &?0x800

得到的 E000 0800H 便是該設備的配置空間基址

經(jīng)過測試,該內(nèi)存段與軟件提供的配置空間內(nèi)容相符合。

圖片來自網(wǎng)絡,侵刪

PCI Express 基礎的評論 (共 條)

分享到微博請遵守國家法律
平和县| 营山县| 麻阳| 玉环县| 汶川县| 沙坪坝区| 潮州市| 和龙市| 安阳县| 衡南县| 衢州市| 新闻| SHOW| 饶平县| 嫩江县| 刚察县| 建瓯市| 香港 | 资中县| 肃北| 思茅市| 成安县| 黑水县| 鄂温| 鄂州市| 呼玛县| 永胜县| 临潭县| 大余县| 陇川县| 凤阳县| 华宁县| 寿光市| 通海县| 托克托县| 阳西县| 黔东| 芜湖市| 东兴市| 博湖县| 大安市|