工具与软件:
尊敬的 TI 专家:
客户正在使用 TDA4AP SDK10.0。 它们采用 SPL 引导。
对于5.0GT/s 的 PCIe0、他们希望将去加重更改为-3.5dB、以更大限度地减少反射。 有关详细信息、请参阅以下说明。

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

您能否建议我们如何将 PCIe0的去加重更改为-3.5dB?
非常感谢、
Kevin
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.
工具与软件:
尊敬的 TI 专家:
客户正在使用 TDA4AP SDK10.0。 它们采用 SPL 引导。
对于5.0GT/s 的 PCIe0、他们希望将去加重更改为-3.5dB、以更大限度地减少反射。 有关详细信息、请参阅以下说明。

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

您能否建议我们如何将 PCIe0的去加重更改为-3.5dB?
非常感谢、
Kevin
大家好、Shreyas / Heather、
感谢您的答复、我还找到了一个有关上一代 AM57x 的旧主题、如下所示。

似乎我们以前不支持修改它、但是、在 TDA4中、似乎我们有这些寄存器、理论上我们应该能够这样做。
需要您的帮助来确认可行性、以及我们应该如何做到这一点。
非常感谢、
Kevin
大家好、Shreyas / Heather、
与我们的软件专家讨论后、可使用 setpci 命令在运行时更改 PCIe 寄存器。
https://man7.org/linux/man-pages/man8/setpci.8.html
但是、我们不知道是否 可以通过这种方式更改去加重寄存器、这意味着我们不确定该寄存器本身是否可变? 这可能需要您的帮助来为我们确认。
非常感谢、
Kevin
您好、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