基于MPC8280的PCI驅動(dòng)設計

MPC8280被動(dòng)引起的PCI內存空間讀寫(xiě),即由外部PCI主機(PCI Master)通過(guò)PCI對MPC8280發(fā)起PCI內存空間讀寫(xiě),MPC8280側地址譯碼流程如圖6所示。MPC8280在收到外部發(fā)起的PCI數據傳輸時(shí),會(huì )判斷PCI總線(xiàn)上的地址是否落在寄存器定義的PCIInbound空間或是落于PIMMR空間。若是,就根據寄存器配置,對外部PCI總線(xiàn)上的地址進(jìn)行譯碼,然后判斷譯碼后的地址是否落在PCI內存空間,若落于PCI內存空間,則進(jìn)行數據操作,并設置Devsel信號,否則將進(jìn)行60x總線(xiàn)操作。

2.4 I/O空間讀寫(xiě)設計
PCI的I/O空間讀寫(xiě)流程可參見(jiàn)內存空間讀寫(xiě)流程,其與內存空間讀寫(xiě)的不同在于:在配置時(shí),對應的InBound空間和OutBound空間配置為I/O空間,AD[31:0]中所有bit為其提供一個(gè)完整的地址,AD[1:0]用來(lái)產(chǎn)生Devsel信號和本次傳輸中最低有效的字節數;而內存空間地址譯碼只使用AD[31:2],這說(shuō)明內存空間操作時(shí),每次操作傳送4 Byte數據,操作后地址將遞增4,以備進(jìn)行后續傳送。
3 結束語(yǔ)
PCI初始化配置完畢后,CPU通過(guò)線(xiàn)程調用PCI配置空間讀寫(xiě)函數對外部的交換芯片進(jìn)行輪詢(xún)探測,正確獲取了BCM56514的設備ID為B514,成功發(fā)現BCM56514芯片,進(jìn)而對BCM56514進(jìn)行了配置和管理,并通過(guò)調用PCI內存空間讀寫(xiě)函數和I/O空間讀寫(xiě)函數對BCM56514的內存空間和I/O空間進(jìn)行了讀寫(xiě)測試,實(shí)現了與BCM56514的數據信息交互,為實(shí)現MPC8280在大容量路由交換領(lǐng)域得到成熟應用提供了接口驅動(dòng)支持。
評論