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.

[参考译文] AM2432:Enet CPSW Mac 解决行为

Guru**** 2956600 points

Other Parts Discussed in Thread: AM2432

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1652844/am2432-enet-cpsw-mac-addresses-behavior

器件型号: AM2432

您好、  

我将 AM2432 与工业 SDK 11.00.00.08 配合使用、

我们的项目涉及在开关模式下使用 ENET 和 CPSW、因此我希望具有一个内部主机端口和两个外部端口。  只有内核 R5FSS0-0 将使用它。

我想实现一种自定义方式来为器件分配 MAC 地址、因此我确保:

  • 通过  在 enet_cpsw_am64x_am243x.syscfg.js 中添加一个新标志 SkipEFUSESMacAddr、跳过从 EFUSE 读取 MAC 地址 、并修改 enet_soc_cfg.c.xdt。
  • 通过修改 ethphy_cpsw_board_cfg.c.xdt、跳过从我们电路板上未使用的 EEPROM 读取数据。 相反、请从声明为 extern 的缓冲区读取 MAC 地址
  • 现在我将缓冲区声明为 uint8_t macAddrBuf[3 * ENET_MAC_ADDR_LEN]={0xAC、0xD3、0x64、0x00、0x00、 0x00、0xAC、0xD3、0x64、0x00、 0x00、0x01、0xAC、0xD3、0x64、 0x00、0x00、0x02};

一切正常工作、我可以看到我声明的 MAC 地址被添加到队列中。
由于我有两个物理端口以及交换机端口(如在 AM243x LaunchPad 中、而不是在 AM243x EVM 中)、因此我只输入了三个 MAC 地址、但在运行时会收到以下消息:

EnetAppUtils_reduceCoreMacAllocation:将 CoreID:1 的 Mac 地址分配从 4 减少到 3  

为什么会发生这种情况? 具有 ENET、在开关模式下具有 CPSW 的定制电路板实际需要多少个 MAC 地址?  

此外、由于我们将在其他项目中将 ENET 与 CPSW 结合使用、采用双 MAC 模式、因此在另一种情况下需要多少个 MAC 地址?

谢谢您、

此致、

Andrea

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

    您好、


    是否有任何更新?


    我注意到 本示例的输出 显示了相同的消息。 那么、为什么默认情况下需要 4 个 MAC 地址? MAC 地址的最小数量是多少?应如何使用 4 个值?

    谢谢您、

    此致、

    Andrea

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

    您好、Andrea、

    预期 MAC 地址的数量由 ENET 驱动器的宏“ENET_CFG_RM_MAC_ADDR_MAX“控制。 由于第一批主板带有多个 MAC 地址、因此设置为 4。 如果您使用 CPSW 或 ICSS 的任何一个实例、AM243x 所需的 MAC 地址上限为 3。 如果您同时使用 ICSSG 实例或将 ICSSM 与 CPSW/ICSSG 组合使用、则要求会因应用而异。  

    每个 CPSW/ICSSG 实例最少需要一个 MAC 地址。 因此、如果您 在交换机模式下仅使用 CPSW、则需要 1 个 MAC 地址。 如果它处于仅 MAC 模式、则需要 2 个 MAC 地址。 我们将通过 TI 提供的 am243x 器件 3 个 MAC 地址来介绍大多数用例。  

    对于用例、如果不使用 gPTP、则只需要 2 个 MAC 地址、如果需要 gPTP、则只需要 3 个 MAC 地址。

    谢谢。此致、
    Teja。

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

    尊敬的 Teja:

    感谢您的答复。

    因此、在我的示例(一个 CPSW 实例未使用 gPTP)中、MAC 地址数量对于交换机模式为 1、对于仅 MAC 模式为 2。

    在我从事的一个 Profinet 项目中、我在交换模式下使用了 ICSSG、只有一个 MAC 地址、然后 Profinet 协议栈通过添加+1 和+2 而再生成了两个、因此最终使用的 MAC 地址的实际数量不再是 1、而是 3。  您认为这种行为是 Profinet 特有的吗? 或者 CPSW 是否也可以在内部实施我应该考虑的类似机制?

    我之所以问这个问题、是因为我需要确定公司的 MAC 地址中有多少个要分配给每个定制电路板、并且我希望确保为每个电路板分配正确数量的 MAC 地址。

    谢谢您、

    此致、

    Andrea

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

    您好、Andrea、

    您提到的行为特定于 Profinet、CPSW 不会出现这种行为。 如果您可以指定您计划使用的应用程序、我可以确定地告诉您需要多少 MAC 地址。 如果您打算仅在交换模式下使用 CPSW、并且未来无意采用仅 MAC 模式、则 1 个 Mac 地址就足够了。  

    如果您计划扩展器件功能并部署 TSN 网络、则最好使用 3 个 MAC 地址。 如果您需要进一步说明、请与我们联系。  

    谢谢。此致、
    Teja。