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.

[参考译文] AM6442:AM6442 MDIO 模式和以太网架构

Guru**** 2778235 points

Other Parts Discussed in Thread: AM6442, SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1612301/am6442-am6442-mdio-mode-and-ethernet-architecture

器件型号: AM6442
主题: SysConfig 中讨论的其他器件

您好:

我使用的是 AM6442、SDK-->11.2.0.24 和 SysConfig->1.25.0 以太网外设 (CPSW 和 ICSSG)、并希望更深入地了解 SysConfig 中提供的 MDIO 配置工作模式、具体来说是每种模式的含义以及它们影响的系统行为部分。 我无法在 SDK 文档中找到有关这些模式在驱动程序和硬件级别内部如何差异的足够详细的说明。

在 SysConfig→MDIO Config→Operating Mode 下、以下模式可用:

  • MDIO_MODE_NORMAL

  • MDIO_MODE_MANUAL

  • MDIO_MODE_STATE_CHANGE_MON

我目前的理解如下:

  • mdio_mode_normal:驱动器通过 MDIO 完全管理 PHY、包括复位、自动协商、速度/双工配置和链路状态监控。

  • MDIO_MODE_MANUAL:MDC 和 MDIO 处于启用状态、但自动 PHY 管理被禁用、所有 PHY 寄存器访问和初始化序列均由应用处理。

  • MDIO_MODE_STATE_CHANGE_MON:禁用 MDIO 寄存器访问、此模式仅用于监测 PHY 链路状态变化。

但是、我想更好地了解在这些模式之间切换时到底发生了哪些内部变化、特别是在每种情况下都启用或禁用了哪些硬件信号、驱动器特性或固件机制。

特别是、当选择 MDIO_MODE_STATE_CHANGE_MON 且禁用“Enable MDIO MDC Config“时、SysConfig 会从引脚多路复用配置中删除 MDC 和 MDIO 引脚。 虽然这种行为在电气方面是有意义的、但我并不完全清楚以下几点:

  1. 当禁用 MDC 和 MDIO 时、CPSW/ICSSG 以太网子系统如何获取 PHY 链路建立/断开状态、速度和双工信息?

    • 这些参数完全源自 MAC–PHY 接口信号(如 RGMII/SGMII/MII)、

    • 或者、CPSW/ICSSG 固件或驱动器内部是否实施了不同的监控或状态机机制?

  2. 在 MDIO_MODE_STATE_CHANGE_MON 中、假设 PHY 为:

    • 自举引脚、和/或进行配置

    • 是否由拥有 MDIO 主器件角色的另一个 MAC 实例管理?
      在此模式下、MAC 端口是否可被视为 A 完全被动式观测器 方面如何发挥作用?

  3. 这样说在技术上是正确的 MDIO 严格来说是一种管理总线、以太网数据发送和接收(TX/RX 帧流量)完全独立于 MDIO、这就是为什么禁用 MDC/MDIO 不会阻止以太网数据正常运行?

此外、我还想了解 CPSW 和 ICSSG 以太网的交换机模式和双 MAC 模式之间的差异。 具体来说:

  • 这些模式在硬件、固件和驱动程序级别上的主要差异是什么?

  • 不同开关模式和双 MAC 模式的 MAC 寻址、MDIO 用法、NETIF 结构和端口间数据转发有何不同?

  • 对于哪些用例、建议使用开关模式;对于哪些情况、建议使用双 MAC 模式?

我无法在 SDK 文档中找到有关这些主题的足够详细的说明、因此我想确保我对预期 CPSW/ICSSG 以太网架构和配置模型的理解与 TI 的设计一致。

提前感谢您的澄清。

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

    您好 Berlam、

    感谢您的查询!

    请允许我留出一些时间在内部检查 TI 可用文档并进行讨论。

    请期待我下周初的答复。

    感谢您的耐心!

    此致

    Anastas Yordanov

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

    您好、Anastas、

    我期待着你的答复,以极大的不耐烦。 提前非常感谢。

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

    尊敬的 Berlam:

    很抱歉在预期的答复中有时间间隔!

    我没有忘记你的要求,但最近不得不处理许多任务.

    请期待我今天晚些时候的答复 (COB)。

    谢谢

    此致

    Anastas Yordanov

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

    您好 Berlam、

    [报价 userid=“541328" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1612301/am6442-am6442-mdio-mode-and-ethernet-architecture

    此外、我还想了解 CPSW 和 ICSSG 以太网的交换机模式和双 MAC 模式之间的差异。 具体来说:

    • 这些模式在硬件、固件和驱动程序级别上的主要差异是什么?

    • 不同开关模式和双 MAC 模式的 MAC 寻址、MDIO 用法、NETIF 结构和端口间数据转发有何不同?

    • 对于哪些用例、建议使用开关模式;对于哪些情况、建议使用双 MAC 模式?

    [/报价]

    对于前两个问题、我需要在内部与我们的软件开发团队进行讨论/检查。 您提到无法在 SDK 文档中找到足够详细的说明、您能否分享您正在查看的特定资源/链接?

    对于第三个问题、

    切换模式:

    如果您计划将 TI AM6x 处理器上的以太网端口用作交换机、例如将数据包从一个端口直接转发到另一个端口、则使用开关模式。 通常在 AM64x 器件的多个端口连接到同一子网时使用。  

    要在 Foundational_Components 中通过 CPSW 配置开关模式、您可以使用 https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/latest/exports/docs/linux/Linux/Kernel/Linux/Network/CPSW3g.html#multi-port-switch-mode 中提供的步骤 Kernel_Drivers 

    要在中使用 ICSSG 配置开关模式、您可以使用 https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/latest/exports/docs/linux/linux/PRU-ICSS/PRU_ICSSG Foundational_Components Ethernet_Switch Linux_Drivers 中提供的步骤 

    双 MAC 模式:

    当需要完全分离 TI AM6x 处理器上的端口时、通常使用此模式(例如,来自 eth0 的流量应与来自其他端口的流量隔离)。 在此模式下、各端口应位于完全不同的子网中。

    默认情况下、对于 ICSSG 和 CPSW 端口、这是与在 Linux 上启动接口一样的模式。

    -道林

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

    尊敬的 Daolin:

    非常感谢您对该主题的支持!

    此致、

    Anastas

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

    继 Daolin 之后、采用 CPSW 硬件交换机或 PRU 以太网硬件交换机的优势之一是外设可以检查以太网数据包的信息以查看数据包是否打算用于 AM64x、如果不是、则可以将数据包推送到交换机的另一侧、而无需将任何数据发送回控制处理器核心。 这比 Linux OS 或 R5F 内核必须接收以太网数据包、然后决定是将数据包转发到交换机的另一侧、还是在 AM64x 中处理数据包的实现快得多。

    由于您使用 SysConfig 配置以太网接口、因此我假设您是从 MCU+内核控制以太网接口。 我会将您的问题发送给我们 MCU+团队的一名成员、以便对其他问题进行评论。

    此致、

    Nick