之前的文章說過CPU只能通過I/O地址空間訪問PCI設備的配置空間,下面就來說說這個訪問過程是怎麼實現的。
步驟一:CPU向北橋的I/O空間地址端口
(地址爲CF8h)生成一個IO寫請求
,寫入要訪問的PCI配置寄存器的地址
。這個PCI配置寄存器地址
中包含了總線號(Bus Number)
、設備號(Device Number)
、功能號(Function Number)
、寄存器位置(Register Pointer,64DW)
,具體格式下圖:
步驟二:CPU向北橋I/O空間中的數據端口
(地址爲FCFh)發送IO讀或者IO寫
請求。基於該請求,北橋向地址端口
指定的PCI總線位置發送配置讀或者配置寫
事務。