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.

[参考译文] PROCESSOR-SDK-J784S4:PROCESSOR-SDK-J784S4:为 R5F 实施 PCIe 驱动程序- Inbound&Outbound

Guru**** 2487065 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1445086/processor-sdk-j784s4-processor-sdk-j784s4-implementing-pcie-driver-for-the-r5f---inbound-outbound

器件型号:PROCESSOR-SDK-J784S4

工具与软件:

您好!

我有一个配置、其中 Sitara (am64xx)配置为 PCIe 端点、Jacinto (j784s4)配置为 PCIe 根复合体。
要将 Sitara 配置为端点、我遵循了以下准则: https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/08_06_00_42/exports/docs/linux/Sitara/Kernel/schirl Foundational_Components Kernel_Drivers PCIe/384.html Ie_End_Point

在 Jacinto 侧、我实现了 R5F 的应用、旨在通过 PCIe 配置和执行通信。 为了开发该应用、我使用了 Sitara SDK 代码作为基础。

使用此代码、我现在可以建立链路、并从 Jacinto 访问远程器件的供应商 ID、同时查看其他配置寄存器。

由于我使用 AM64x SDK 中的相同函数来在 J784S4的 R5F 上实现、因此我也使用相同的结构来配置输入和输出区域。

例如:

出站配置(obAtuConfigPcie1):

Pcie_ObAtuCfg obAtuConfigPcie1[] =
{
    {
        .regionIndex = 1,
        .tlpType = PCIE_TLP_TYPE_MEM,
        .lowerBaseAddr = <expected value>, 
        .upperBaseAddr = 0x0,
        .regionWindowSize = 4095,
        .lowerTargetAddr =  <expected value>,
        .upperTargetAddr = 0x0,
    },
};


入站配置(ibAtuConfigPcie1):

Pcie_IbAtuCfg ibAtuConfigPcie1[] =
{
    {
        .regionIndex = 0,
        .tlpType = PCIE_TLP_TYPE_MEM,
        .lowerBaseAddr = <expected value>, 
        .upperBaseAddr = 0x0,
        .regionWindowSize = 4095,
        .lowerTargetAddr = (uint32_t)dst_buf,
        .upperTargetAddr = 0x0,
        .barAperture = PCIE_RCBARA_4K,
        .barCfg = PCIE_BARC_32B_MEM_BAR_NON_PREFETCH,
    },
    {
        .regionIndex = 1,
        .tlpType = PCIE_TLP_TYPE_MEM,
        .lowerBaseAddr = <expected value>, 
        .upperBaseAddr = 0x0,
        .regionWindowSize = 255,
        .lowerTargetAddr = <expected value>, 
        .upperTargetAddr = 0x0,
        .barAperture = PCIE_RCBARA_4K,
        .barCfg = PCIE_BARC_32B_MEM_BAR_NON_PREFETCH,
    },
};

现在、考虑到我要配置根复合体中的一个输出区域和两个输入区域、我想确认:

​​lowerTargetAddr 和 lowerBaseAddr 字段需要哪些值? 我不要求绝对值,但表示地址类型应该是本地的还是远程的。

谢谢你。

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

    尊敬的 Joao、

    由于美国感恩节假期、请预计下周回复。

    此致

    Suman