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.

[参考译文] AM3359:PRU R31中 MII RX 数据的说明

Guru**** 2601915 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/646717/am3359-description-of-mii-rx-data-in-pru-r31

器件型号:AM3359

您好!

在我们尝试使用 R31之前的一段时间内、按照"AM335x 技术参考手册"中所述的方式进行注册、但它对我们不起作用。

因此、我们开始使用 INTC 模块来正确获取信号、这当然需要更多的周期来管理。

现在、我们使用最新的 PDK 获得了 EMAC PRU 代码、其中使用了两个版本的 PRU-ICSS (ICSS_REV1、ICSS_REV2)、并且它们在 R31中具有不同的控制位映射。

通过测试、我们发现 ICSS_REV1与 AM335x 相关、但与"AM335x 技术参考手册"中所述的内容无关。

我还查看了 AM571x 的文档(也称为参考手册、图30-52)、发现 R31位描述等于"AM335x 技术参考手册"、图4-46。

我的意见是、"AM335x 技术参考手册"使用的 ICSS_REV2 (至少对 AM571x 有效)描述不正确、而是 ICSS_REV1 (对 AM335x 有效)描述不正确。

您能知道吗?

是否有人可以查看"AM335x 技术参考手册"中的所有 R30和 R31说明并告知我们结果?

此致

Jiri Biel

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    工厂团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Jiri、

    您能否在 PDK 中详细说明" R31中控制位的监听映射"?

    此致、
    Garrett
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Garret、
    从 PDK 1.0.8中的 ICSS_EMAC 固件可以看出、例如、以下位以不同的方式映射 MII_RT 模式下的 R31、如文档中所述:
    - PRU_0的 PRU0 RX_EOF 被映射到位位置30 (在固件代码中)而不是位置20
    - PRU_1的 PRU1 RX_EOF 被映射到位位置31 (在固件代码中)

    如果 RX_EOF 使用位置30和31、如何标志 PRU 中断、因为这些位应该被它们使用、正如4.4.2.1章"INTC 概述"中的 AM335X 文档中所示?

    由于上述原因、当我认为 AM335X 文档中描述的是 ICSS_REV2而不是 ICSS_REV1时、我问我是否正确、或者对此有其他解释? 在我们不知道 ICSS 上也有一些不同的版本之前、从文档的角度来看、AM335X 和 AM571X 之间没有区别。

    这意味着第一步最好确认 ICSS 版本是否多于一个(以及哪个版本对哪种处理器类型有效)。

    如果我错了、我希望得到一些解释、说明为什么 TI 代码与映射到位位置30和31而不是位位置20的 RX_EOF 一起工作、并且代码在 AM335X 上正常工作。

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

    AM335x = ICSS_REV1。 AM571x = ICSS_REV2。
    我们必须查看固件详细信息、然后向您返回有关 RX_EOF 位30/31问题的信息。 ICSS_EMAC 的两个修订版本中没有 RX_EOF 位(20)变化。

    此致、
    Garrett
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Garret、
    让我们在此处更轻松地获取 PRU 代码(文件"emac_MII_Rcv.asm")的快照:

    ;----------------------------------
    ;宏名称:M_RCV_RX_EOF_CHECK_ICSS_REV1
    ;说明:检查 ICSS_REV1上的 RX EOF。
    ;输入参数:无
    ;输出参数:无
    ;----------------------------------
    M_RCV_RX_EOF_CHECK_ICSS_REV1.MACRO
    .if $defined ("PRU0")
    QBBSPROCESS_Rx_efor_Rx_NB、R31、30
    其他
    QBBSPROCESS_Rx_efor_Rx_NB、R31、31
    .endif
    endm

    ;----------------------------------
    ;宏名称:M_RCV_RX_EOF_CHECK_ICSS_REV2
    ;说明:检查 ICSS_REV2上的 RX EOF。
    ;输入参数:无
    ;输出参数:无
    ;----------------------------------
    M_RCV_RX_EOF_CHECK_ICSS_REV2.MACRO
    QBBSPROCESS_Rx_efor_Rx_NB、R31、20
    endm



    NB_PROCESS_CUT_Through:
    ;检查 RX EOF 条件
    .if $defined ("ICSS_REV1")
    .if $defined ("PRU0")
    QBBCFN_RCV_NB_CT_NO_RxEOF、R31、30;已替换:QBBCFN_RCV_NB_CT_NO_RxEOF、R31.T30
    其他
    QBBCFN_RCV_NB_CT_NO_RxEOF、R31、31;替换:QBBCFN_RCV_NB_CT_NO_RxEOF、R31.T31
    .endif
    .endif
    .if $defined ("ICSS_REV2")
    QBBC FN_RCV_NB_CT_NO_RxEOF、R31、20 ; Port0 Rx EOF
    .endif

    -根据我认为的问题、可以在快照中看到、位30和31用于 RX_EOF 信号。

    关于第20位,答案是否直接来自 PRU 固件人员?

    -哪个处理器版本使用哪个 ICSS_REV。 您可以制作一个完整的列表吗?

    最后一个问题是:查看固件以及随后查看参考手册需要多长时间?

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

    第30/31位正常工作、因为在中断映射文件中、这些配置为映射每个端口的 RX_EOF。 请参阅 tiemac_pruss_intc_mapping.h 文件。 该文件将 RX_EOF 映射到通道0和通道1、而通道1又映射到主机中断0和主机中断1。 来自 TRM、4.4.2.1 INTC 概述、
    主机中断0连接到 PRU0和 PRU1寄存器31中的位30。
    主机中断1连接到寄存器31中 PRU0和 PRU1的位31。
    从 PRU-ICSS 导出的主机中断2至9用于向 ARM 中断控制器或 EDMA 等其他机器发送信号。
    TRM 中的位20定义是正确的。 我与 PRU 固件团队以及 IP 支持团队确认了这一点。

    此致、
    Garrett
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Garret、
    您上面写的所有内容似乎都是合乎逻辑的、但我需要指出以下几点:
    - tiemac_pruss_intc_mapping.h 在 Sitara 的侧面用于配置 PRU (它不在引入 ICSS 修订版本之间的推理的 PRU-ICSS 侧)(这意味着该文件对两个 ICSS 修订版本都有效)。 我的理解也是、映射文件使用 PRU INTC 系统事件进行映射(这始终有效、我们也使用了这种情况)、而不是 R31寄存器。 下面是一个基本问题:为什么有人在 PRU-ICSS 固件中有所不同、基于 ICSS_REV、映射时 RX_EOF 信号处理是相同的?
    -根据您的答案、两种组合都需要工作位20、位30和 R31也应该工作。 但我可以清楚地说、我调试的是、当在 AM335X 上使用"ICSS_REV2"时、位20永远不会被置位。 我可以回答为什么?

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

    我们可能会遇到与您当时在 AM335x 中使用 R31位20相同的问题、或者固件可能会将该位用于其他用途。 我已提交内部 TT 来跟踪此情况、您可以像您一样继续使用'ICSS_REV1'来处理 AM335x? 感谢您提出这个问题。

    此致、
    Garrett