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.

[参考译文] AM2612:关于 RGMII 主题

Guru**** 2771175 points

Other Parts Discussed in Thread: AM2612

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1605974/am2612-about-rgmii-topic

器件型号: AM2612

尊敬的 TI 支持团队:

关于 CPSW 模块、我有一个解决方案可帮助确认是否支持该模块:  

(1) CPSW 模块是否可以接收来自 RGMII2 的消息并直接通过 RGMII1 发送这些消息?  

(2) 如果支持第一项、如何配置 CPSW 模块?  

 

下图显示了网络通信架构、请帮助确认 AM2612 芯片是否支持该架构。

QrohbOPgGouUWyxmW6Cc6fJenth.jpg

 

此致、
Bruvin Lu。  

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

    尊敬的 Bruvin Lu:

    CPSW 模块是否可以接收来自 RGMII2 的消息并直接通过 RGMII1 发送它们?  [/报价]

    这是否意味着各种以太网数据包或某些数据包、例如多播数据包或广播数据包等等?

    此致、

    Aswin

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

    尊敬的 Aswin Sankar:

    我的意思是端口 2 的以太网数据(包括来自 FPGA 的所有数据包)是否可以直接转发到端口 1 以传输到 PHY、而端口 1 输入的数据不需要转发到端口 2、而是上传到 Eth 驱动程序。

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

    尊敬的 Bruvin:  

    我知道要求是  

    来自 FPGA 的所有数据包都需要进入连接到端口 1 (RGMII1) 的 PHY

    2.从端口 1 到达的所有数据包都需要转到 Eth 驱动程序、而不应转到 RGMII2。

    我来检查一下如何做到这一点。 这将在正确的策略配置的帮助下完成。

    此致、

    Aswin

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

    尊敬的 Bruvin:  

    同时、请查看此建议。

    如果我们可以控制发送到端口 1 和端口 2 的数据包的默认地址、那么我们可以 根据多个地址强制执行 ALE 配置。

    也就是说、我们可以将具有特定多播地址的某些数据包配置为仅转到 Eth 驱动程序(主机端口)、将具有特定多播地址的某些数据包配置为转到下一个端口(本例中为端口 1)、而无需转到 Eth 驱动程序(主机端口)。

    此致、

    Aswin

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

    尊敬的 Aswin:

    是的、这正是上面提到的两个要求。

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

    尊敬的 Aswin:

    对于此建议、单播地址是否不适用?

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

    尊敬的  Bruvin:

    未知单播数据包将切换到其他端口。 此外、还可以选择向主机发送未知单播数据包、需要对此进行配置。

    此致、

    Aswin

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

    尊敬的 Aswin:

    请确认以下要求:

    1.如果 FPGA 发送带有 单播地址的数据包到端口 2 (RGMII2)、则数据包是否会发送到 Eth 驱动程序或端口 1 (RGMII1)?

    2.如果 Eth Driver 向端口 1 (RGMII1) 发送具有单播地址的数据包、 该数据包是否会发送到 PHY?

    此致、

    Bruvin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果 FPGA  向端口 2 (RGMII2) 发送具有单播地址的数据包、则数据包是否会发送到 Eth 驱动程序或端口 1 (RGMII1)?

    这是 AM261 的 MAC 地址还是其他器件的地址?

    如果这是 另一个器件的地址、则数据包将进入端口 1、而不是 Eth 驱动程序。

    如果 Eth Driver 向端口 1 (RGMII1) 发送具有单播地址的数据包、则 数据包是否会发送到 PHY?

    是、这将发生、因为这是默认行为。

    请注意、数据包的路由方式完全基于数据包的无效地址。 不在入口端口号上。 ALE 配置规则将使用目标地址作为匹配条件。

    请告诉我这是否满足了要求。

    此致、

    Aswin

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

    1.不同器件(不是 AM2612)的 MAC 地址。  

    2. 我认为只有组播或广播地址需要配置 ALE 来过滤消息, 而单播地址将根据目标地址路由到终端,对吗?

    3. 如果第二个项目得到满足,则可以满足要求。

    4、顺便说一下、如果 FPGA 发送的以太网数据的源地址和目标地址与 ETH 驱动程序发送的数据一致、FPGA 发送的数据是否可以通过端口 1 发送到 PHY?

    此致、

    Bruvin

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

    尊敬的 Bruvin:

    [报价 userid=“666468" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1605974/am2612-about-rgmii-topic/6192009

    不同器件(而不是 AM2612)的 MAC 地址。  

    [/报价]

    则它不会转至 Eth 驱动程序、但会转至端口 1。 但是、有一个选项可以通过启用使其转至 Eth 驱动程序 未知单播泛洪到主机选项。

    我认为只有多播或广播地址需要配置 ALE 才能过滤消息、 而单播地址将根据目标地址路由到终端、右

    是、这是正确的。 可以使用 ALE 规则配置多播地址和广播地址。

    由于广播地址为 ff:ff:ff:ff:ff:ff:ff:ff、如果带有此 DA 的任何数据包到达端口 1 或端口 2 上的器件、它将转到另一个端口、而不会转到主机端口(eth 驱动程序)。

    顺便说一句、如果 FPGA 发送的以太网数据的源地址和目标地址与 ETH 驱动程序发送的数据一致、FPGA 发送的数据是否可以通过端口 1 发送到 PHY?

    我无法理解。 你能用一个例子来解释一下吗?

    此致、

    Aswin

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

    例如、

    1. FPGA 发送 UDP 数据包 (A1)、其中包含源 MAC 地址 (01:02:03:04:05:06) 和目标 MAC 地址 (05:08:09:05:09:03)。

    2. ETH 驱动程序发送一个 UDP 数据包 (A2)、其中包含源 MAC 地址 (01:02:03:04:05:06) 和目标 MAC 地址 (05:08:09:09:09:03)。

    3.外部设备的 MAC 地址为 05:08:09:09:03、AM2612 的 MAC 地址为 01:02:03:04:05:06。

    A1 和 A2 的 UDP 数据包是否都可以传输到 PHY?

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

    尊敬的 Bruvin:  

    我看到这个网络中的两个设备的源地址是相同的,设备地址也是一个 mutlicast Mac 地址,我可以确认这是否是有意的?
    此致、

    Aswin

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

    尊敬的 Bruvin:  

    您在示例中提到的用例也可以使用报警地址实现、而不采用任何 ALE 配置。

    假设  

    AM261 有一个单播器件 Mac 地址 M1

    FPGA 有一个单播器件 MAC 地址 M2

    连接到 AM261 的外部器件有一个 Mac 地址 M3。

    当 FPGA 发送一个包含 M3 作为 DA 的数据包时、它将进入 AM261 并进入端口 1、这不会进入 Eth 驱动程序。

    当 AM261 发送 M3 为 DA 的封装时、它将进入端口 1。

    您可以使用 AM261 LP 完成此实验。 您可以运行 enet 第 2 层 cpsw 示例并通过发送一些数据包进行检查。  

    AM261 的端口 1 可以通过 Wireshark 等网络分析器工具连接到 PC。

    向 AM261 的端口 2 发送数据包并观察端口 1、您将看到从端口 1 发出的数据包。 ETH 驱动程序不会接收此数据包、因为 ALE 不会将其路由到 PORT0、因为该数据包将用于其他一些设备。

    从 AM261 发送数据包并观察端口 1、您将看到从端口 1 发出的数据包。 您可以发送定向数据包以使此数据包只进入端口 1 而不进入端口 2。  

    此致、

    Aswin

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

    尊敬的 Aswin:

    是的、我想说明的是 FPGA 和 AM261 使用相同的源地址、因为 FPGA 不是单独的网络器件。

    此致、

    Bruvin

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

    尊敬的 Aswin:

    它似乎符合我们的要求。 感谢您的回答。

    此致、

    Bruvin

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

    尊敬的 Bruvin:  
    感谢您的反馈。

    此致、

    Aswin

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

    尊敬的 Aswin:

    请帮助确认以下情况:

    AM261 有一个单播器件 Mac 地址 M1

    FPGA 有一个单播器件 Mac 地址 M1

    连接到 AM261 的外部器件有一个 Mac 地址 M2。

    当 FPGA 发送一个包含 M2 的数据包作为 DA 时、它 将进入端口 1?

    当 AM261 发送使 M2 作为 DA 的封装时、它将进入端口 1?

    此致、

    Bruvin

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

    尊敬的 Bruvin:  

    M1 和 M2 是单播地址正确吗?

    此致、

    Aswin

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

    是、M1 和 M2 为单播地址。

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

    尊敬的 Bruvin:

    是否可以为 FPGA 提供不同的 MAC 地址?

    在这种情况下、由于 AM261 和 FPGA 的源地址相同、来自 FPGA 的数据包将被 AM261 丢弃。  

    在 ALE 表中、我们可以看到此 Mac 地址的条目有一个导致此问题的安全位。

    我来检查一下是否有替代方法。 同时、您能否确认 FPGA 是否可以具有不同的 MAC 地址?

    此致。

    Aswin

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

    尊敬的 Aswin:

    FPGA 的源地址与 AM261 的源地址相同。 由于 FPGA 和 AM261 在此系统中构成完整的器件、因此从器件发送的网络消息只有一个源地址。

    此致、

    Bruvin

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

    尊敬的 Bruvin:

    要覆盖此项、您需要编辑 ALE 条目。 此 API 可用于执行此操作。

    static void addUnicastAleEntry(void)
    {
        uint32_t status;
    
        Enet_IoctlPrms prms;
        CpswAle_SetUcastEntryInArgs setUcastInArgs;
        uint32_t entryIdx;
        /* ALE entry with "secure" bit cleared is required for loopback */
        setUcastInArgs.addr.vlanId  = 0U;
        setUcastInArgs.info.portNum = CPSW_ALE_HOST_PORT_NUM;
        setUcastInArgs.info.blocked = false;
        setUcastInArgs.info.secure  = false;
        setUcastInArgs.info.super   = false;
        setUcastInArgs.info.ageable = false;
        setUcastInArgs.info.trunk   = false;
        EnetUtils_copyMacAddr(&setUcastInArgs.addr.addr[0U], gEnetApp.perCtxt[0].macAddr);
        ENET_IOCTL_SET_INOUT_ARGS(&prms, &setUcastInArgs, &entryIdx);
    
        ENET_IOCTL(gEnetApp.perCtxt[0].hEnet, gEnetApp.coreId, CPSW_ALE_IOCTL_ADD_UCAST, &prms, status);
        if (status != ENET_SOK)
        {
            EnetAppUtils_print("Failed to add ucast entry: %d\r\n", status);
        }
    }

    编辑 ALE 条目后、将不会设置安全位。 则会发生 pakcet 切换。

    来自 Eth 驱动程序的数据包也将传输到端口 1。 如果您没有从 Eth 驱动程序发送定向数据包、则数据包可以进入两个端口。 因此、如果从 Eth 驱动程序发送的数据包只需进入特定端口、则需要发送定向数据包。

    此致、

    Aswin

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

    尊敬的 Aswin:

    感谢您的反馈。 我认为该解决方案符合要求。

    此致、

    Bruvin

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

    尊敬的 Bruvin:  

    感谢您的反馈。

    如果您需要有关示例或配置的任何帮助、请告诉我。

    此致、
    Aswin

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

    尊敬的 Aswin:

    好的

    此致、

    Bruvin