我需要幫助來理解 PCIe 枚舉
PCIe 將 IO 映射 IO 變更為記憶體映射 IO。 PCIe 規格引入了使用 MMIO 讀取配置的增強機制。由於 PCIe 知道配置暫存器的記憶體位址,因此 PCIe 使用記憶體讀取來進行組態讀取事務。
枚舉期間,PCIe 端點未分配到記憶體位址。 (甚至沒有分配給 BDF。)為了分配 BDF,CPU 會請求供應商 ID,無論 PCIe 端點是否有效。如果 PCIe 端點傳送有效的供應商 ID,CPU 會指派給 PCIe 端點的 BDF,並將記憶體位址寫入配置 BAR 以進行記憶體對應 IO。
為了取得供應商 ID,我了解到 CPU 使用 IO 寫入位址連接埠(位於 IO 映射 0x0CF8 ),並從資料連接埠讀取 IO(位於 IO 對應 0xCFC 中)。
但是,ARM CPU只有記憶體映射(沒有IO映射),那麼它如何請求Vendor ID呢?使用什麼類型的 TLP 資料包?
如果您能在沒有 IO 映射的情況下解釋 PCIe 資料包中的枚舉過程,我將不勝感激。