GT 多播/复制 (MCR) 寄存器支持¶
某些 GT 寄存器被设计为“多播”或“复制”寄存器:同一寄存器的多个实例共享一个 MMIO 偏移量。当硬件需要潜在地跟踪每个硬件单元(例如,每个子切片,每个 L3 库等)的寄存器的独立值时,通常会使用 MCR 寄存器。存在的特定复制类型因平台而异。
对 MCR 寄存器的 MMIO 访问根据平台 MCR_SELECTOR 寄存器中编程的设置进行控制。 对 MCR 寄存器的 MMIO 写入可以以多播(单个写入将所有寄存器实例更新为相同值)或单播(写入仅更新一个特定实例)形式完成。 MCR 寄存器的读取始终以单播方式操作,而与 MCR_SELECTOR 中设置的多播/单播位无关。 用于单播操作的特定 MCR 实例的选择称为“导向”。
如果 MCR 寄存器操作被导向到由于功率门控而熔断或当前断电的硬件单元,则硬件将“终止”MMIO 操作。 终止的读取操作将返回零值,而终止的单播写入操作将被静默忽略。 在设备初始化期间,各种 init_steering_*()
函数的目标是应用特定于平台的规则,以识别每个 MCR 寄存器类型的转向目标,这将选择一个未终止的实例。
MCR 寄存器在虚拟功能 (VF) 上不可用。
内部 API¶
待办事项