ZHDZ012G December 2020 – June 2026 DRA829J , DRA829J-Q1 , DRA829V , DRA829V-Q1 , TDA4VM , TDA4VM-Q1
PCIe:在更改数据速率时,2-L 串行器/解串器 PCIe 参考时钟输出暂时禁用
当发生以下任一场景时,2-L SerDes PCIe 参考时钟输出将被暂时禁用:
在更改数据速率时,一些使用 PCIe 参考时钟的外部 PCIe 元件可能不允许禁用时钟。但是,该器件系列中的 2-L 和 4-L SerDes 不存在接受此参考时钟行为的问题。这意味着,当一个器件生成参考时钟而另一个器件接收参考时钟时,将一个器件中的 2-L 或 4-L SerDes 连接到另一个器件中的 2-L 或 4-L SerDes 的链路不会出现问题。
针对场景 A 和场景 B 的一个权变措施是:使用外部时钟源为链路的根复合体和终点器件提供 PCIe 参考时钟。
场景 A 也可通过以下任一方法解决:
场景 B 也可通过以下任一方法解决:
1) 确保 2-L Serdes 的第二条通道未复位,并非双通道链路的一部分,并且当第一条通道发生速度变化时未处于低功耗状态。实现此目标的一种方法是在未使用的通道上设置虚拟 SerDes 配置。
设置 PCIe 1L 配置的虚拟通道:
将第二条通道设置为 USB 或 Q/SGMII。这可以通过配置 CTRL_MMR0 空间中 CTRLMMR_SERDES*_LN1_CTRL 寄存器的 LANE_FUNC_SEL 字段来实现。
此外,还必须根据所选的协议对第二条通道执行 SERDES 配置。
请注意,第二条通道上的 USB 或 Q/SGMII 是虚拟配置,不应正常工作。
通过在 LANECTL1 寄存器中将 P1_FORCE_ENABLE 设置为 1'b1,强制使能第二条通道。P1_ENABLE 位必须保持在 1'b0。
请注意,如果为第二条通道选择 USB,则由于这虚拟配置,USB 将无法正常工作。这是因为强制使能通道与 USB 不兼容。
如果应用未使用给定的 Q/SGMII 实例,也可以选择 Q/SGMII 作为虚拟配置。然而,如果选择 Q/SGMII,则此项并非必须为虚拟配置;如果应用需要,也可以正常工作。
设置 PCIe 2L 配置的虚拟通道:
设置第二个 SERDES 以提供 refclk_p/refclk_n SERDES 引脚的参考时钟。例如,如果 PCIe 2L 使用 SERDES0,则可以将 SERDES1/SERDES2/SERDES3 用作第二个 SERDES。
使用 CTRLMMR_SERDES*_LN*_CTRL 寄存器选择要在第二个 SERDES 的两条通道上使用的 USB 或者 Q/SGMII 或 PCIe(与当前正在处理的实例不同的实例)。如果选择的协议是 USB,则必须在此寄存器中将第二条通道标记为“未使用”,但必须将 SERDES 的两条通道均配置为 USB。
同时,根据所选协议对 SERDES 进行编程。请注意,此第二个 SERDES 仅作为虚拟配置,不应正常工作。因此,必须选择应用未使用的 SERDES 和控制器实例。
通过将 LANECTL0 寄存器中的 P0_FORCE_ENABLE 设置为 1'b1,将 LANECTL1 寄存器中的 P1_FORCE_ENABLE 设置为 1'b1,强制使能 SERDES 的两条通道。P0_ENABLE 和 P1_ENABLE 位必须保留为 1'b0。
将第一个 SERDES 的 REFCLKP 和 REFCLKN 引脚保持未连接状态。改用第二个 SERDES 的 REFCLKP 和 REFCLKN 引脚来为链路伙伴提供参考时钟。
为第一个和第二个 SERDES 提供相同的 SOC 内部参考时钟。这非常重要,可确保输入到引脚的参考时钟相位对齐,并且在相对于第一个 SERDES 上串行引脚的抖动限制范围内。
2) 仅以 2.5 GT/s 的数据速率运行 PCIe 接口