MPC8245的大部分可編程配置寄存器是要在上電進行初始化的,這些寄存器其實在MPC內部PCI控制器MPC107裏面的。MPC8245提供了一個接口來訪問這些在PCI總線上的寄存器(也外部接着的PCI設備),這個接口其實就是兩個port,一個port叫CONFIG_ADDR,範圍可以在0xFEC0_0000 – 0xFEDF_FFFF,
另一個叫CONFIG_DAT,範圍在0xFEE0_0000 – 0xFEEF_FFFF.雖然是一個地址範圍,到必須使用相同的偏移量。使用0x8000_00nn來範圍MPC107的配置寄存器,nn是寄存器的偏移值。當向CONFIG_ADDR寫入地址時,CONFIG_DAT就是對應地址寄存器的數據,可讀寫。
這些寄存器可以分爲兩大類,一類是PCI的控制寄存器(0x00 – 0x3C),這些寄存器的定義都是全球統一的。還有一類就是boardcom加上去的“特殊功能”寄存器了(0x40 – 0xFC)。
PCI控制寄存器(0x00 – 0x44)
0x00開始的是設備ID設別寄存器,這些寄存器能夠在硬件初始化的時候進行檢測,通過檢測所有的PCI slot,可以知道究竟有多少個PCI設備接在總線上。
Slot上不存在設備,讀取ID時會返回0xFFFF.
PCI Command Register—Offset 0x04
Fast back-to-back 硬件指定爲0,MPC8245不能運行 fast back-to-back transactions.
SERR 允許地址校驗錯誤報告,驅動SERR引腳。
Parity error response 允許產生奇偶檢驗錯誤。
Memory-write-andinvalidate 允許MPC8245作爲master時,產生內存寫無效命令。
Special cycles 硬件指定爲0,忽略所有的special-cycle 命令。
Bus master 允許MPC5248作爲總線master
Memory space MPC8245作爲target的時候是否響應內存訪問。
I/O space 硬件指定爲0,作爲target時不響應PCI I/O空間訪問。
PCI Status Register—Offset 0x06
通過寫1來清零相應位,寫0不影響,詳細參見datasheet。
Detected parity error 有地址或者數據檢驗錯誤即使parity error handling被通過PCI command寄存器禁止
Signaled system error 置位,如果有SERR信號.
Received master-abort MPC8245作爲master時使用 master-abort.命令終止一個傳輸
Received target-abort MPC8245作爲一個發起者,被目標使用target-abort.命令終止一個傳輸
66-MHz capable 只讀,只是PCI是否爲66MHz
PCI Base Address Registers—LMBARn and PCSRBAR
這些寄存器是MPC8245作爲PCI agent模式時使用的。兩個本地內存基址寄存器:LMBAR0,LMBAR1。一個外圍控制和狀態寄存器PCSRBAR-給外部PCI設備控制MPC8245時用的。
當MPC8245作爲一個PCI agent時,這些寄存器允許一個主處理器進行配置。