GT 多播/複製 (MCR) 暫存器支援¶
一些 GT 暫存器被設計為“多播”或“複製”暫存器:同一暫存器的多個例項共享一個 MMIO 偏移。MCR 暫存器通常用於硬體需要潛在地跟蹤每個硬體單元(例如,每個子切片、每個 L3bank 等)暫存器的獨立值時。存在的特定複製型別因平臺而異。
對 MCR 暫存器的 MMIO 訪問根據平臺 MCR_SELECTOR 暫存器中程式設計的設定進行控制。 對 MCR 暫存器的 MMIO 寫入可以以多播(單個寫入將所有暫存器例項更新為相同的值)或單播(寫入僅更新一個特定例項)形式完成。 無論 MCR_SELECTOR 中多播/單播位如何設定,MCR 暫存器的讀取總是以單播方式操作。 選擇用於單播操作的特定 MCR 例項稱為“steering(導向)”。
如果 MCR 暫存器操作被導向到已熔斷或當前因電源門控而斷電的硬體單元,則 MMIO 操作將被硬體“終止”。 終止的讀取操作將返回值零,終止的單播寫入操作將被靜默忽略。 在裝置初始化期間,各種 init_steering_*() 函式的目標是應用特定於平臺的每個 MCR 暫存器型別的規則,以識別將選擇非終止例項的轉向目標。
MCR 暫存器在 Virtual Function (VF) 上不可用。
內部 API¶
待辦