基于MPC8280的PCI驅動設計

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

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