This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[FAQ] [参考译文] [常见问题解答] TDA4AP-Q1:如何设置 PCIe0发送器去加重

Guru**** 2481495 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1427955/faq-tda4ap-q1-how-to-set-pcie0-transmitter-de-emphasis

器件型号:TDA4AP-Q1

工具与软件:

尊敬的 TI 专家:

客户正在使用 TDA4AP SDK10.0。 它们采用 SPL 引导。

 对于5.0GT/s 的 PCIe0、他们希望将去加重更改为-3.5dB、以更大限度地减少反射。 有关详细信息、请参阅以下说明。

我们还在下面找到了相应的设置。

您能否建议我们如何将  PCIe0的去加重更改为-3.5dB?

非常感谢、

Kevin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Kevin

    我将把讨论推迟到我们团队中的 PCIe 专家。

    您在这里展示的内容可能是正确的方法、可以读取状态位以确保设置正确的值。

    我的同事应该很快回复您。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Shreyas / Heather、

    感谢您的答复、我还找到了一个有关上一代 AM57x 的旧主题、如下所示。

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/574578/am5728-pcie-de-emphasis-and-swing-configuration-registers

    似乎我们以前不支持修改它、但是、在 TDA4中、似乎我们有这些寄存器、理论上我们应该能够这样做。

    需要您的帮助来确认可行性、以及我们应该如何做到这一点。

    非常感谢、

    Kevin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Shreyas / Heather、

    与我们的软件专家讨论后、可使用 setpci 命令在运行时更改 PCIe 寄存器。

    https://man7.org/linux/man-pages/man8/setpci.8.html

    但是、我们不知道是否 可以通过这种方式更改去加重寄存器、这意味着我们不确定该寄存器本身是否可变? 这可能需要您的帮助来为我们确认。

    非常感谢、

    Kevin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Kevin:

    它是否仍然打开?

    此致、

    Brijesh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Brijesh:

    是的、我们现在可以关闭它、以下补丁可使它正常工作、谢谢!

    diff --git a/drivers/pci/controller/cadence/pcie-cadence-host.c b/drivers/pci/controller/cadence/pcie-cadence-host.c
    index 8af95e9da7ce..9b64ed738574 100644
    --- a/drivers/pci/controller/cadence/pcie-cadence-host.c
    +++ b/drivers/pci/controller/cadence/pcie-cadence-host.c
    @@ -496,6 +496,20 @@ int cdns_pcie_host_init(struct cdns_pcie_rc *rc)
        return cdns_pcie_host_init_address_translation(rc);
     }
    
    +/*
    + * Default De-Emphasis value is -6dB. The following function
    + * changes it to -3.5dB.
    + */
    +static void cdns_pcie_setup_deemphasis(struct cdns_pcie *pcie)
    +{
    +   u32 pcie_cap_off = CDNS_PCIE_RP_CAP_OFFSET;
    +   u16 lnk_ctl2;
    +
    +   lnk_ctl2 = cdns_pcie_rp_readw(pcie, pcie_cap_off + PCI_EXP_LNKCTL2);
    +   lnk_ctl2 |= BIT(6); /* SD in PCIE_CORE_RP_I_LINK_CTRL_STATUS_2 reg */
    +   cdns_pcie_rp_writew(pcie, pcie_cap_off + PCI_EXP_LNKCTL2, lnk_ctl2);
    +}
    +
     int cdns_pcie_host_link_setup(struct cdns_pcie_rc *rc)
     {
        struct cdns_pcie *pcie = &rc->pcie;
    @@ -505,6 +519,8 @@ int cdns_pcie_host_link_setup(struct cdns_pcie_rc *rc)
        if (rc->quirk_detect_quiet_flag)
           cdns_pcie_detect_quiet_min_delay_set(&rc->pcie);
    
    +   cdns_pcie_setup_deemphasis(pcie);
    +
        cdns_pcie_host_enable_ptm_response(pcie);
    
        ret = cdns_pcie_start_link(pcie); 

    Kevin