配置管理接口 - 1.3 简体中文

UltraScale+ 器件 Integrated Block for PCI Express 产品指南 (PG213)

Document ID
PG213
Release Date
2022-11-16
Version
1.3 简体中文

如需了解有关配置管理接口所使用的端口的信息,请参阅 配置管理接口。根端口必须使用配置管理接口来设置配置空间。端点还可以使用配置管理接口来读取和写入,但必须谨慎操作以避免对系统产生负面影响。

用户应用必须以 Dword 地址而不是字节地址的形式来提供地址。

提示: 要计算寄存器的 Dword 地址,请将字节地址除以 4。

例如:

对于 PCI 配置空间报头中的命令/状态寄存器:

  • Dword 地址为 01h
    注释: 字节地址为 04h
对于 BAR0:
  • Dword 地址为 04h
    注释: 字节地址为 10h

要读取配置空间内的任意寄存器,用户应用会将寄存器 Dword 地址驱动到 cfg_mgmt_addr[9:0]cfg_mgmt_function_number[7:0] 用于选择与配置寄存器关联的 PCI 功能。核会将已寻址的寄存器的内容驱动到 cfg_mgmt_read_data[31:0] 上。cfg_mgmt_read_data[31:0] 上的值由 cfg_mgmt_read_write_done 上的信号断言有效来限定。下图显示了从配置空间读取的示例。

图 1. cfg_mgmt_read_type0_type1

要在配置空间内写入任何寄存器,用户逻辑需将地址置于 cfg_mgmt_addr[9:0] 上、将功能编号置于 cfg_mgmt_function_number[7:0] 上、在 cfg_mgmt_write_data 上写入数据、使 cfg_mgmt_byte_enable [3:0] 上的字节有效,并断言 cfg_mgmt_write 信号有效。在响应中,当写入完成时(可能需耗时多个周期),核会断言 cfg_mgmt_read_write_done 信号有效。用户逻辑必须使 cfg_mgmt_addrcfg_mgmt_function_numbercfg_mgmt_write_datacfg_mgmt_byte_enablecfg_mgmt_write 保持稳定,直至断言 cfg_mgmt_read_write_done 有效。用户逻辑还必须在核断言 cfg_mgmt_read_write_done 有效之后的下一个周期内断言 cfg_mgmt_write 无效。

图 2. cfg_mgmt_write_type0

当核配置为采用“Root Port”(根端口)模式时,写入类型 1 PCIe® 配置寄存器期间如果断言 cfg_mgmt_debug_access 有效,则会强制写入寄存器的某些只读字段。

图 3. cfg_mgmt_debug_access