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.

[参考译文] AM6442:处于 RC 和 EP 模式的 AM64x PCIe 从 RC 发送中断到 EP

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1522099/am6442-am64x-pcie-in-rc-and-ep-mode-sending-interrupt-from-rc-to-ep

器件型号:AM6442

工具/软件:

您好、我的团队完成了以下更改、让 AM64x 从 RC 向 RP 发送 MSI 中断。 但我仍然没有收到 download_interrupt。 我的意思是、此中断的处理程序未在 EP SoC 上执行

请您建议下一个调试是必需的。 我使用 setpci -s 0001:01:00.0 eCAP_VNDR+8.l=100 来触发中断。 仍然我不知道中断

@@–566、11 +566、13 @@&mailbox0_cluster7{
};

&pcie0_rc{
+//状态=“正常“;
STATUS =“已禁用“;
};

&pcie0_ep{
- status =“disabled";“;
+//状态=“已禁用“;
+状态=“正常“;
};

diff -git a/drivers/pci/controllers/cadence/PCI-j721e.c b/drivers/pci/controllers/cadence/PCI-j721e.c
索引 40256815e8..7cd246859f 100644
---a/drivers/pci/controllers/cadence/pci-j721e.c
++ b/drivers/pci/控制器/cadence/PCI-j721e.c
@@–134、6 +134、12 @@ static irqreturn_t j721e_pcie_link_irq_handler (int irq、void *priv)
返回 IRQ_HANDLED;
}

+static irqreturn_t j721e_pcie_download_irq_handler (int irq、void *priv)
+{
+ printk(“调试:已处理 MAHA 下游 IRQ “);
+返回 IRQ_HANDLED;
+}
+
静态 void j721e_pcie_config_link_irq(结构 j721e_pcie *pcie)

u32 寄存器;
@@–507、7 +513、8 @@ static int j721e_pcie_probe (struct platform_device *pdev)
U32 模式;
内部 ret;
内部 IRQ;
-
+ int down_irq;
+ printk(“DBG1000 Maha in j721e_pcie_probe2 \n“);
DATA =(结构 j721e_pcie_data *)of_device_get_match_data (dev);
if(!data)
return -EINVAL;
@@–545、6 +552、9 @@ static int j721e_pcie_probe(结构 platform_device *pdev)
IF (IRQ < 0)
返回 IRQ;

+ DOWN_IRQ = platform_get_irq_byname (pdev、“download_pulse")“);
+ IF (DOWN_IRQ < 0)
+ RETURN DOWN_IRQ;
dev_set_drvdata (dev、pcie);
PM_runtime_enable (dev);
RET = pm_runtime_get_sync (dev);
@@–566、6 +576、15 @@ static int j721e_pcie_probe (struct platform_device *pdev)
转到 err_get_sync;
}

+ ret = devm_request_irq (dev、down_irq、j721e_pcie_download_irq_handler、0、
+“j721e-PCIe-Downstream-IRQ“、PCIe);
+ if (ret < 0){
+ dev_err (dev、“未能请求下游脉冲 IRQ %d\n“、ret);
+返回 ret;
+}
+
+ printk(“******* DBG500 DOWN_IRQ ==%d\n“、DOWN_IRQ);
+
j721e_pcie_config_link_IRQ (PCIe);

开关 (MODE){

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

    您好、

    您使用哪个 Processor SDK 版本? 启用 EP 模式的方法在较新的 SDK 中是不同的。

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

    我没有任何问题 ,从 EP 发送 msi 中断到 rc ,阅读栏,内存读写. AM64x 成功配置为 EP 模式。

    我需要从 RC 向 EP 发送 msi 中断。 以上是更改。  。 因此、我们需要设置 pcie_core_PFN_I_vendor_specific control_REG 的 HTI 位、所以我想知道 AM64x SoC 中该寄存器的地址。

    此致

    Mahantsh

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

    大家好、我本周不在办公室。 请期待响应延迟。

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

    尊敬的 Mahantsh:

    很抱歉耽误你的时间。

    因此、基本上我们需要设置 pcie_core_PFN_I_vendor_specific _control_REG 的 HTI 位、因此我想知道 AM64x SoC 中该寄存器的地址。

    您从哪里获得了寄存器名称 pcie_core_PFN_I_vendor_specific control_REG?