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/66AK2E05:K2E EVM 无法从 DSP 内核访问 netcp pktdma

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/686023/linux-66ak2e05-k2e-evm-unable-to-acees-netcp-pktdma-from-dsp-core

器件型号:66AK2E05

工具/软件:Linux

我们执行了一组实验来了解 netcp 行为及其配置的 pktdma。

1.我们发现,在 K2H 的情况 下,没有引导模式,hello words 示例运行正常,它将 “hello word”发送到其他 PC,并通过运行 Windows 应用程序返回接收到的内容来接收。

  我们在这里发现 、netcp 数据包 DMA RX 和 TX 通道能够通过 cpi 模块启用。

2.在 ARM 中运行 Linux 时情况也是如此,但在 DSP 中加载 hello world 应用程序时,只能从 DSP 访问以太网链路。


现在是 K2E。

1A、当  EVM 配置为无引导模式时、与在 DSP 中加载的 hello world 应用程序相同。我们 在这里发现 、netcp 数据包 DMA RX 和 TX 通道 始终 处于禁用状态。
 这种行为 是不可理解的。

 请告诉我们 NETCP 的 pktt DMA Rx 和 TX 通道如何始终禁用,即使是在没有引导模式的情况下强制启用它?
 缺少什么??

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

    请详细说明您使用的是哪种 Linux SDK 版本?

    根据我的理解、您使用的是定制板。 共享自定义的设备树文件。

    另外、最好附加 bootlog (dmesg)。

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

    您好!

    以下是 SDK Linux 版本:---  Linux 版本4.9.41-ge3a80a1c5c (gtbldadm@ubuu-16)(gcc 版本6.2.1 20161016 (Linaro GCC 6.2-2016.11))  

    并附上引导日志文件。

    此致

    Anshul

    e2e.ti.com/.../boot_5F00_logs.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    处理这些 K2E 请求的团队成员明天将离开办公室。 他将在下周作出答复。

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

    您的配置让我有点困惑。 您提到 EVM 配置为"无引导模式"。 您是在 ARM 还是 DSP 上运行 Hello World 示例应用程序? 如果它处于无引导模式、如何启动 Linux?

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

    您好!

    如果您看到邮件头,您可以看到有两个实验,一个是 Linux (K2H 案例),另一个是 ARM 中的 Linux (无引导模式)(k2e)。

    在 DSP 中运行 hello world 时、我们在 k2e 无引导模式下遇到问题、并且无法 初始化 cpi 和 cpktt DMA (netcp DMA)、因为根据 多核 navi gator、映射不正确。

    此致

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

    感谢您的澄清。 我将邀请一位 DSP 专家来了解一下。

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

    您的意思是、在非引导模式下、在 K2E EVM、DSP 内核上运行 NIMU 测试示例、但它不起作用吗? 使用的是哪个处理器 SDK RTOS 版本? 是否有控制台日志?

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

    您好!  

    问题在于运行基本示例时,cppi_init()失败,因为 netcp 的 pktdma 是不可接受的。

    请将某些屏幕截图作为附件找到。  DSP 处于无引导模式。

    可以访问 qmss-pktt dma、我们可以对其进行写入。
      您可以看到存储器映射(这与 K2E 技术文档的内容相同)和寄存器可供访问。

    2. netcp-pktdma 是不可访问的,即使是基本 hello world 示例,在访问 DMA 时抛出错误。
      在这里,您可以看到 GEL 输出,看起来设备已通电。
      即使是 netcp DMA 寄存器也是可以访问的。

    如果缺少某些内容,请告诉我们,我们期望 hello world 基本示例在 DSP 无引导模式下运行。



    但我发现、在 SPI 引导模式(使用 Linux)下运行时、我们至少不会出现-130错误、 并且 cpi_init 会正常。


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

    它是什么处理器 SDK RTOS 版本? 我正在出差、无法访问 K2E EVM 设置。 我希望下周晚些时候再试一次、然后再回来。

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

    您好!

    我测试了 pdk_k2e_4_0_3\packages/myExampleProjects\NIMU_emacExample_EVMK2EC66BiosExampleProject、对我来说没有问题:

    在 DSP 不引导模式下、连接 C66x 内核、GEL 运行

    C66xx_0:GEL 输出:

    正在连接目标...

    C66xx_0:GEL 输出:TCI6636K2E GEL 文件版本为1.29999995

    C66xx_0:GEL 输出:检测到的 PLL 旁路被启用:SECCTL[旁路]= 0x00800000

    C66xx_0:GEL 输出:(2A) MAINPLLCTL1 = 0x00000040

    C66xx_0:GEL 输出:(2B) PLLCTL = 0x00000048

    C66xx_0:GEL 输出:(2C) PLLCTL = 0x00000048

    C66xx_0:GEL 输出:(2D)延迟...

    C66xx_0:GEL 输出:(2E) SECCTL = 0x00810000

    C66xx_0:GEL 输出:(2F) PLLCTL = 0x0000004A

    C66xx_0:GEL 输出:(2G)延迟...

    C66xx_0:GEL 输出:(2h) PLLCTL = 0x00000048

    C66xx_0:GEL 输出:(4) PLLM[PLLM]= 0x00000013

    C66xx_0:GEL 输出:MAINPLLCTL0 = 0x05000000

    C66xx_0:GEL 输出:(5) MAINPLLCTL0 = 0x09000000

    C66xx_0:GEL 输出:(5) MAINPLLCTL1 = 0x00000040

    C66xx_0:GEL 输出:(6) MAINPLLCTL0 = 0x09000000

    C66xx_0:GEL 输出:(7) SECCTL = 0x00890000

    C66xx_0:GEL 输出:(8A)延迟...

    C66xx_0:GEL 输出:PLL1_DIV3 = 0x00008002

    C66xx_0:GEL 输出:PLL1_DIV4 = 0x00008004

    C66xx_0:GEL 输出:PLL1_DIV7 = 0x00000000

    C66xx_0:GEL 输出:(8D/e)延迟...

    C66xx_0:GEL 输出:(10)延迟...

    C66xx_0:GEL 输出:(12)延迟...

    C66xx_0:GEL 输出:(13) SECCTL = 0x00090000

    C66xx_0:GEL 输出:(延迟...

    C66xx_0:GEL 输出:(延迟...

    C66xx_0:GEL 输出:(14) PLLCTL = 0x00000041

    C66xx_0:GEL 输出:PLL 已配置(CLKIN * PLLM/PLLD/PLLOD = PLLOUT):

    C66xx_0:GEL 输出:PLL 已配置(100.0 MHz * 20 / 1 / 2 = 1000.0 MHz)

    C66xx_0:GEL 输出:为所有 PSC 模块和 DSP 域加电...

    C66xx_0:GEL 输出:为所有 PSC 模块和 DSP 域加电... 完成。

    C66xx_0:GEL 输出:警告:SYSCLK 是 PA PLL 的输入。

    C66xx_0:GEL 输出:已完成 PA PLL 设置

    C66xx_0:GEL 输出:PAPLLCTL0 -之前:0x098804C0之后:0x090804C0

    C66xx_0:GEL 输出:PAPLLCTL1 -之前:0x0x00000040之后:0x00002040

    C66xx_0:GEL 输出:DDR 开始

    C66xx_0:GEL 输出:XMC 设置完成。

    C66xx_0:GEL 输出:DDR3 PLL (PLL2)设置...

    C66xx_0:GEL 输出:DDR3 PLL 设置完成、DDR3A 时钟现在以800MHz 运行。

    C66xx_0:GEL 输出:DDR3A 初始化完成

    C66xx_0:GEL 输出:DDR 完成

    C66xx_0:GEL 输出:设置 PHY 从1GB 开始

    C66xx_0:GEL 输出:读取 MDIO_VERSION_REG。

    C66xx_0:GEL 输出:MDIO_VERSION_REG:0x00070107

    C66xx_0:GEL 输出:staring Setup for PHY:0

    C66xx_0:GEL 输出:为 PHY 完成的 MISC 寄存器:0

    C66xx_0:GEL 输出:等待 PHY 上的铜链路:0

    C66xx_0:GEL 输出:staring Setup for PHY:1.

    C66xx_0:GEL 输出:为 PHY 完成的 MISC 寄存器:1.

    C66xx_0:GEL 输出:等待 PHY 上的铜链路:1.

    C66xx_0:GEL 输出:设置 PHY 完成1GB

    将连接的.out 加载到 C66x、运行 CCS 控制台:

    [C66xx_0] QMSS 已成功初始化

    CPPI 已成功初始化

    PA 已成功初始化

    TCP/IP 堆栈'Hello World!' 应用

    StackTest:使用 localIp

    网络已添加:if-1:192.168.1.4

    在同一子网的 PC 上、我能够 ping K2E EVM 而不会出现任何问题。

    此致、Eric

    e2e.ti.com/.../6378.NIMU_5F00_emacExample_5F00_EVMK2EC66BiosExampleProject.out

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

    您好!

    目前、我们使用的是来自以下位置的 Qmms 和 Cppi 的 PDK 软件包和驱动   程序:C:\ti\pdk_keystone2_3_01_04_07\packages/ti\drv、并从 C:\ti\mcsdk_BIOS_3_01_04_07\examples\ndk\HelloWorld 运行示例。

    您能否使用 示例代码对上述封装和驱动程序进行测试?

    此致


    Anshul

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

    你好

    我们使用您  K2E 设置上提供的 Nimu_emacExample_EVMK2EC66BiosExampleProject.out 二进制文件进行了测试、结果如下。 请看一下 NETCP_PKTDMA_TX 和 NETCP_PKTDMA_RX 存储器区域和映射。

    此致

    Anshul  

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

    Etcp_PKTDMA_TX 和 NETCP_PKTDMA_RX 存储器区域和映射看起来正常。 您是说代码卡在 CSL_SerdesLaneEnable_Lane_Init_RX 函数上吗?

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

    您好!

     NETCP_PKTDMA_TX 和 NETCP_PKTDMA_RX 的存储器区域正常,但 TX 和 RX 中所有参数的值都为0 ( TX_ENABLE Rx 情况下禁用且相同) ,还想知道为什么 “代码卡在 CSL_SerdesLaneEnable_Lane_Init_RX 函数上? "

    此致

    Anshul

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

    我无法重现您的问题。 我查看了工作中的 K2E EVM 上的寄存器、它没有卡在 CSL 串行器/解串器调用上、而且 ETCP_PKTDMA_TX 和 NETCP_PKTDMA_RX 也是0。 执行测试时、是否已将以太网电缆连接到端口0?

    此致、Eric
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    此外、您还使用了 MCSDK 3.1.4.7、它已经停产。 请在 K2E 上使用最新的 Processor SDK RTOS 4.3、我记得 MCSDK 存在一些 SerDes 问题。

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

    你好

    您能为我们提供 pdk_k2hk _4_0_3的下载路径。

    谢谢

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

    我认为您使用的是 K2E、最新的4.3版可从 software-dl.ti.com/.../index_FDS.html 下载
    如果您也想尝试 K2H: software-dl.ti.com/.../index_FDS.html

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

    您好!

      在 K2E 的最新4.3版本中运行" Nimu_emacExample_EVMK2EC66BiosExampleProject "时、代码在" CSL_SerdesWaitForSigDet "上进行结构化。 您能解释一下原因吗?  

     此致

    Anshul

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

    我们在运行测试时不会遇到这样的问题。 如果它卡住、则意味着它没有从串行器/解串器电平检测到远程侧的信号。 检查以太网电缆是否已连接到 EVM 的第一个以太网端口。

    此致、Eric