在 Zynq MPSoC 器件上使用串联 PCIe - 1.3 简体中文

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

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

虽然处理器系统 (PS) 和处理器配置访问端口 (PCAP) 可控制配置逻辑,但可编程逻辑 (PL) 和媒体配置访问端口 (MCAP) 以及内部配置访问端口 (ICAP) 则均被锁定,无法控制配置逻辑。默认情况下,PCAP 处于启用状态,MCAP 无权加载阶段 2,直至切换 PCAP_PR 位为止。

PCAP 与 MCAP/ICAP 接口为互斥关系,无法同时使用。虽然可在 PCAP 与 MCAP/ICAP 之间进行切换,但您必须确保更改接口前没有任何命令或数据处于正在发射或正在接收状态。否则可能导致出现意外行为。控制寄存器 (PCAP.CTRL) 的位 0 (PCAP_PR) 可用于选择 MCAP/ICAP 或 PCAP 来执行 PL 配置。默认选项为 PCAP (1),但可更改为 MCAP/ICAP (0) 以启用此配置端口。要为 Zynq® UltraScale+™ MPSoC 器件启用 MCAP/ICAP,请设置 pcap_ctrl (CSU) 寄存器的 PCAP_PR 字段。该位可选择使用 MCAP、ICAP 或 PCAP 来执行 PL 配置。有 2 种方法可用于清除 PCAP_PR 位并授予 ICAP/MCAP 加载阶段 2 镜像的权限。

  1. 通过 JTAG 写入 PCAP_CTRL 寄存器以将 MCAP/ICAP 设置为配置端口:
    • 使用 Vitis™ 赛灵思软件命令行工具 (XSCT) 连接到 JTAG 链。
    • 选择 PSU 作为目标。
    • 使用存储器读取 (MRD) 和存储器写入 (MWR) 来更改默认行为。
  2. 通过 FSBL 写入 PCAP_CTRL 寄存器以将 MCAP/ICAP 设置为启用的配置端口:
    • 将逻辑置于 XFsbl_HookBeforeHandoff() 下。

    如需获取 FSBL 挂钩列表,请访问 https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842019/FSBL

    //Command to SET ICAP as Configuration port//
    Xil_Out32(0xFFCA3008, 0x0); // write PCAP_CTRL