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/DRA744:Marvell 88E6390XA0的以太网 SMI 总线时序

Guru**** 2540720 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/600196/linux-dra744-ethernet-smi-bus-timing-with-marvell-88e6390xa0

器件型号:DRA744

工具/软件:Linux

你(们)好  

我将两个以太网设备 Microchip KSZ8081和 Marvell 88E6390XA0与 DRA744的 MDIO/MDC 连接在一起。

我可以 通过 MDIO 读取命令获取 KSZ8081器件信息、但 88E6390XA0仅返回错误。

我们还致电 Marvell FAE 帮助、FAE 可以通过其固定工具获取88E6390XA0器件信息。

然后、我尝试测量该波形、找出 KSZ8081 和 88E6390XA0之间的差异。

在 DRA744被发送寄存器地址后、 88E6390XA0有一个额外的高电平位。 如下图所示。

是否有任何寄存器设置可以覆盖此差异?  

谢谢你

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

    您好 Ben、

    DRA74x 中的寄存器在周转时间内没有设置(数据所有权变更)。

    对于读取操作、 时间应为:

    -一个"空闲"位(没有一个驱动器数据)

    -后跟一个由从器件驱动的"零"位。

    随后是 Microchip、但 Marvell 没有。 您是否向 Marvell 询问此行为? 即为什么两个空闲位等待而不是一个空闲位?

    此致、

    STAN

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

    您好、Stan、

    我问 Marvell FAE、他告诉我设备拉低 MDIO 后需要 CPU 读取数据。

    如果可能、您能否与我分享您的 MDIO 标准数据?


    由于我们还将 MDC/MDIO 连接到逻辑分析仪、逻辑分析仪可以在 MDIO 上读取这些数据、因此不会出错。  

    这些空闲位是否会导致 DRA744上的读取数据错误?

    谢谢你。

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

    Ben、

    对我来说、如果被告知必须有两个位、这意味着第二个位时钟上必须发生"下拉 MDIO "。  我认为他们将"zero"位误解为"开始"位。 由于 MDIO 是同步总线、而不是 UART、因此这种情况不成立。

    TI MDIO IP 只需要一个空闲位和一个零位。 在第二个时钟上看到非零位意味着超时或错误。

    摘自 TI MDIO 规范:

    "应插入一个"空闲"位时间、在此时间内、没有器件主动驱动 MDIO 信号

    寄存器地址字段和读取帧的数据字段之间的数据字段之间的差异、以避免出现这种情况

    争用。 在读取帧期间、PHY 应在第一个位时间将一个"零"位驱动到 MDIO

    在"空闲位"之后、在"数据"字段之前。 在写入帧期间、该字段应由组成

    后跟"零"位。"

    我没有做过比网上搜索更好的事情了,但是我以前做过很多次,我可以说 (或 TA)时间在每个文档中始终为两位。

    例如、以下链接来自 IEEE:

    www.ieee802.org/3/efm/public/sep01/turner_1_0901.pdf

    此致、

    STAN

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

    您好、Stan、

    正如您所说的"TI MDIO IP 恰好需要一个空闲位和一个零位。" 这意味着 DRA744在32个周期内执行 MDIO 读/写操作。

    由于 ST + OP + PHYADR + REGADR +TA +DATA = 32位、对吧?

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

    我想你是对的。 请参阅下面 TRM 的快照。 您是否了解32位以外的任何其他格式?

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

    您好、Stan、

    我从 Marvell 处得到的勘误表是88E6390可能不会返回 SMI 确认单。(与 Bryant 的邮件相同)

    如下所示

    是否可以通过 DRA744上的硬件或软件解决此问题?

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

    您好 Ben、

    我将为其他 e2e 的人在这里写下最高级别的步骤。 我必须强调的是、这只是一个想法、我没有对它进行测试。

    在硬件中、我想使用2个 GPIO 引脚、一个连接到 MDIO 数据、另一个连接到 MDIO 时钟。

    在软件中、AM 中断例程将监控并保存 MDIO 帧的前15位。 (MDIO 总线监听器)

    软件将测试 我们需要的帧和 PHY 地址。

    如果为 true、则将"data" GPIO 方向转到输出、低电平(0)恰好旋转一个位时间。

    这将欺骗 MDIO 模块、使 PHY 确认请求。

    此致、

    STAN