“Function Map Table”(功能映射表)用于为每项功能分配队列。RAM 中的索引即为功能编号。每个条目都包含物理 QID 的基本编号和分配给功能的队列数。它可提供基于功能的队列访问保护机制,方法是将针对逻辑队列的访问(通过 QDMA_TRQ_SEL_QUEUE_PF 和 QDMA_TRQ_SEL_QUEUE_VF 地址空间)转换为针对其物理队列的访问,并对这些访问执行检查。如果针对队列空间的直接寄存器访问超出表中分配给该功能的队列空间,那么这些访问将被取消,并记录错误。
功能映射可通过间接上下文寄存器空间 QMDA_IND_CTXT_CMD 寄存器来访问,其中 QDMA_IND_CTXT_CMD.sel = 0xC。通过间接上下文寄存器空间访问时,上下文结构由功能映射上下文结构表来定义。
- 按下表所列方式,对 QDMA_IND_CTXT_DATA (0x844 - 0x820) 寄存器中的功能映射结构进行编程。
- QDMA_IND_CTXT_CMD 寄存器编程
- [19:7]:功能编号
- [6:5]:2'h1(写入上下文数据)
- [4:1]:4'hC (FMAP)
如需了解有关 QDMA_IND_CTXT_CMD (0x844) 的更多信息,请参阅 Versal ACAP 寄存器参考资料(AM012)。
由于这些空间仅存在于 PF 地址映射中,因此仅限物理功能才能修改此表。
位 | 位宽 | 字段名称 | 描述 |
---|---|---|---|
[255:44] | 保留。设为 0。 | ||
[43:32] | 12 | Qid_max | 此功能包含的最大队列数。 |
[31:11] | 保留。设为 0。 | ||
[10:0] | 11 | Qid_base | 此功能的基本队列 ID。 |