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.

[参考译文] Linux/AM5728:PCIe EP 配置

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/676139/linux-am5728-pcie-ep-configuration

器件型号:AM5728

工具/软件:Linux

您好、TI

我使用的是 am5728-EVM 板和 ti-processor-sdk-linux-am57xx-evm-04.01.00.06。

我尝试将 am5728-EVM 板用作 EP 器件、但有些奇怪。

在 pci-dra7xx.c 文件中、我可以看到代码。

899 static int dra7xx_PCIe_resume (struct device *dev)
900{
901 struct dra7xx_PCIe * dra7xx = dev_get_drvdata (dev);
902 struct dw_pcie *pci = dra7xx->pci;
903 u32 val;
904
905 if (dra7xx->mode!= DW_PCIe_RC_TYPE)
906 返回0;
907
908 printk ("PCIE:dra7xx_PCIe_resume\n");
909 /*设置 MSE */
910 Val = dw_PCIe_readl_dBi (PCI、PCI_COMMAND);
911 //val = dw_pcie_readl_dBi (PCI、base、pci_command);
912 Val |= PCI_COMMAND_MEMORY;
913 //dw_pcie_writel_dBi (PCI、base、pci_command、val)
914 DW_PCIe_writel_dBi (PCI、PCI_COMMAND、val);
915
916 返回0;
917} 

RC 将设置 MEM_SPACY_EN 位、但我将其复制到 EP 模式。当 CFG_MSE_EVT 处于活动状态时、我将启用 MEM_SPACE_EN 位。

它失败了。 我无法在内核上设置此位、但我可以使用 devmem2来设置它。

下面是我的问题:

(1)为什么无法在内核上设置此位? 如果可能、请告诉我如何操作。

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

    只需查看代码,dra7xx->mode 设置为什么? 如果设置为 EP_TYPE、则会获得成熟的返回。

    雷克斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Rex
    感谢您的回复、我修复了此错误。
    该位由 RC PCIe cfg write 设置。当 RC 驱动程序安装正常时、该位将进行设置。
    在 EP 内核上、只有我能够设置的是 CFG_BME 和 CFG_MSE 中断。