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.
您好支持者、
CPSW2G RMII 驱动程序开发阻碍了我们的发展。
(1) RMII 用于将 MCU CPSW2G 端口1连接到主 CPSW9G 端口1 (用于 MAC 至 MAC 的 RMII)、该端口用于 MCU 域以太网通信;
(2) RMII 用于连接 PHY 和 CPSW9G 端口7、后者用于 ECU 以太网通信。
(1) SDK 中没有适用于 MCU CPSW2G 端口1的 RMII 驱动程序演示。 我们没有找到 RMII 实现的示例。
(2)我们没有找到 RMII 的状态寄存器字段说明,我无法检查链接状态。 但找到 RGMII 状态寄存器。
(1) 是否有用于 MCU CPSW2G 的 RMII 驱动程序的实现演示?
(2)如何检查 RMII 链路状态?
图1:ECU MAC 的连接。
图2 RGMII 状态寄存器归档说明、但无 RMII 状态寄存器。
您好!
[引用 userid="447207" URL"~/support/processors-group/processors/f/processors-forum/1112476/tda4vm-the-driver-development for -RMII-connection-between -main-cpsw9g-port1-and-mcus-sw2g-port1-RMII-for-mac-mcus-connection-connection-main-cpsw9g-port1-and-mcus-port1-and-mcus-mcus-mcus-mcus-port1-ex-mcus-mcus-mcus没有用于 RMII 实现的演示、但该驱动程序支持 RMII。 唯一需要更改的是"mcu_cpsw"节点"cpsw_port1"的"phy-mode"属性节点。 它位于[linux-kernel]/arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts 中。 理想情况下、这个和适当的引脚复用应该足以将 RMII 与 MCU CPSW2G 配合使用。
[引用 userid="447207" URL"~/support/processors-group/processors/f/processors-forum/1112476/tda4vm-the -driver-development for -RMII-connection-between -main-cpsw9g-port1-and-mcus-sw2g-port1-RMII-for-mac-ex-connection-intrab-quother[RMII-link]以查看 RMII-status[引用 user/quother]我将对此进行检查并告知您。
此致、
Tanmay
您好 Tenmay、
关于 RMII 链路状态、补充问题说明: 如何获取 CPSW2G 端口1和 CPSE9G 端口1的 MAC 至 MAC 的链路状态?
您好!
我仍在等待 RMII 链路状态寄存器的确认。
但对于调试、您可以使用 Linux 命令行中的`ethtool $if_name`命令来检查链接功能和链接状态。
此致、
Tanmay
您好 Tanmay、
CPSW2G 位于用于 MCU 以太网通信的 MCU 域中。
因此、Linux 命令不能帮助检查链路状态。
您好 Tanmay、
更新信息:
问题:
(1) RMII 模式是否可用于 MAC 到 MAC 的互连?
在 TI 文档"Enabling MAC2MAC Feature on Jacinto7 SoC"中、建议使用 RGMII 或 SGMII 进行 MAC2MAC 互连。
(2)如何确认 RMII 模式设置成功?
(3) CPSW_FIFO 如何工作? 如何确认数据
观察结果:
CPSW9G 端口1 TX 验证的测试案例
CPSW9G 端口1广播数据、STAT 寄存器中的 TXGOODFRAMES 计数器增加。 但 CPSW2G 端口1未接收到数据(未触发 RX 中断)。
问题:(1)无法确保为 CPSW2G 成功配置 RMII 模式;
(2)无法找到根本原因、是 CPSW2G 端口1 RMII 配置问题、还是 CPSW9G 端口1和 CPSW2G 端口1之间的连接问题?
2. CPSW2G 端口1 TX 验证的测试案例
多次触发 CPSW2G TX 中断后、TX 中断将被阻止、并且 CPSW2G 的 STAT TXGOODFRAMES 计数器不更新。
CPSW_FIFO 处理似乎存在一些问题、但不知道根本原因。
通过读取寄存器状态将 TX 数据放入 CPPI、但无法确认数据是否传递到 下游组件(如 CPSW_FIFO)。
您好!
[引用 userid="447207" URL"~/support/processors-group/processors/f/processors-forum/1112476/tda4vm-the -driver-development for -RMII-connection-between -main-cpsw9g-port1-and-mcus-sw2g-port1-RMII-for-mac-cp127272"至 cp127272"CPSW2G 位于用于 MCU 以太网通信的 MCU 域中。
因此、Linux 命令不能帮助检查链路状态。
[/报价]这似乎有一些问题、我无法看到附加的图像。
但是、尽管 CPSW2G 位于 MCU 域中、但其驱动程序位于 Linux 中、因此您应该能够使用 Linux 工具进行链接。
这也可用于查看 MCU CPSW2G 端口(命令:# ethtool -S eth0)的统计信息。 在这种情况下、p0统计信息将对应于主机端口。 数据将遵循以下路径:
a72 -> CPSW2G 主机端口--> CPSW2G 端口1 --> MAC2MAC 连接--> CPSW9G 端口1 --> CPSW9G 主机端口--> A72
此路径中应递增的寄存器为:
a72 --> 0x4603A000 --> 0x4603A234 --> MAC2MAC 连接--> 0x0c03A200 --> 0x0c03A034 --> A72
因此、对于 CPSW2G 的主机端口、数据是 Rx 数据;对于 CPSW2G 端口1、数据是 Tx 数据。 查找相应的值。
在反向路径(CPSW9G 到 CPSW2G)中,它将如下所示:
a72 --> 0x0c03A000 --> 0x0c03A234 --> MAC2MAC 连接--> 0x4603A200 --> 0x4603A034 --> A72
要检查 CPSW2G 的 MAC 端口是否处于 RMII 模式、请参阅寄存器0x40F04040的值(命令:#devmem2 0x40f04040)。 对于 RMII、其值应为1;对于 RGMII、其值应为2。
[引用 userid="447207" URL"~/support/processors-group/processors/f/processors-forum/1112476/tda4vm-the -driver-development for -RMII-connection-between -main-cpsw9g-port1-and-mcus-sw2g-port1-RMII-for-mac-connections[RM127303]/引用互连模式[RM127303]Mac/MAC#trab/trab_trinates]4RMII 不应存在任何此类限制。 我将在以防万一时予以确认。
您是否可以列出对此所做的更改?
此致、
Tanmay
您好 Tanmay、
发布 MAC2MAC 的硬件设计。
MCU CPSW2G RMII:
2.主 CPSW9G 端口 RMII
此致、
李景春
您好 Tanmay、
更新观察结果:
通过 CPSW9G 端口7与具有 RMII 模式的 PHY 进行通信是正常的。
比较 CPSW9G 和 CPSW2G 之间的主要 RMII 寄存器配置、它们是相同的。
2、RMII 寄存器0x40F04040的值为1
3.当我们尝试使用 RMII 模式从 CPSW2G 发送数据、并进入 ETh ISR (ISR (ETH_TXIrqHdlr_0))时、会触发 TX IRQ。
但在函数 ETH_retrieFreeTxPktQ()中返回 NOK。
触发 ISR (ETH_TXIrqHdlr_0)时、寄存器 CPSW_STAT1_TXGOODFRAMES 的值始终为0。
问题:
您好 Tanmay、
连接寄存器数据转储以进行 CPSW9G 和 CPSW2G 比较。
e2e.ti.com/.../CPSW0_5F00_NUSS_5F00_ALE_5F00_2G.txte2e.ti.com/.../CPSW0_5F00_NUSS_5F00_ALE_5F00_9G.txte2e.ti.com/.../CPSW0_5F00_NUSS_5F00_CONTROL_5F00_2G.txte2e.ti.com/.../CPSW0_5F00_NUSS_5F00_CONTROL_5F00_9G.txte2e.ti.com/.../CPSW0_5F00_NUSS_5F00_CPINT_5F00_2G.txte2e.ti.com/.../CPSW0_5F00_NUSS_5F00_CPINT_5F00_9G.txte2e.ti.com/.../MCU_5F00_CPSW0_5F00_NUSS_5F00_MDIO_5F00_2G.txte2e.ti.com/.../MCU_5F00_CPSW0_5F00_NUSS_5F00_MDIO_5F00_9G.txt
您好!
[引用 userid="447207" URL"~/support/processors-group/processors/f/processors-forum/1112476/tda4vm-the -driver-development for -RMII-connection-between -main-cpsw9g-port1-and-mcus-sw2g-port1-RMII-for-mac-connection-connection-main-cpsw9g-port1-and-mcus-port1-and-mcus-mcus-port1-port1-port2130/256[#MAC/quother]在器件树中、我们需要提到一个固定链路节点、并删除以太网端口节点中的 phy-handle 属性、以启用 MAC2MAC 模式。
参考:
&cpsw_port1 { phy-mode = "rmii"; fixed-link { speed = <100>; full-duplex; }; };
UDMA 用于与 CPSW 的所有数据交互、因此已经进行配置。 没有基于通信模式的特殊配置。
[引用 userid="447207" URL"~/support/processors-group/processors/f/processors-forum/1112476/tda4vm-the -driver-development for -RMII-connection-between -main-cpsw9g-port1-and-mcus-sw2g-port1-RMII-for-mac-mctr-cp128820-Mac-trab-trab-trab-trab-cpsw9g-port1-cp1220]发布 MAC2MAC 的硬件设计。
MCU CPSW2G RMII:
2.主 CPSW9G 端口 RMII
对于任何特定的配置、Mac这些引脚将与硬件设计中的引脚相同(请参阅上图)。
我将研究您提供的寄存器转储、并尝试通过引脚指出问题。
此致、
Tanmay
您好,Jingchun,
您能否确认:
您将哪个 SDK 版本用于 Linux 和 RTOS?
此致、
Tanmay
您好 Tanmay、
[引用 userid="498482 " URL"~/support/processors-group/processors/f/processors-forum/1112476/tda4vm-the -driver-development for -RMII-connection-between -main-cpsw9g-port1-and-mcus-sw2g-port1-RMII-for-mac-16423-mc16423"至16423"我们正在基于 QNX + RTOS 进行开发。 因此、我们无法在此处确认 Linux 的方式。
[引用 userid="498482 " URL"~/support/processors/group/processors/f/processors-forum/1112476/tda4vm-the -driver-development for -RMII-connection-between -main-cpsw9g-port1-and-mcus-sw2g-port1-RMII-for-mac-mce-connection-ma#mc1623]您是否可以尝试在 Mac/trab_mc16223[_quote 上进行通信?硬件设计不支持 RGMII MAC2MAC、我们无法为此测试调整硬件。
我们使用的 SDK 是 SDK R07.03。
您好,Jingchun,
抱歉、您能确认我的理解。
您能不能让我谈谈您评论过的代码部分。 如果您只需将您在注释出已取消队列调用时所做的更改作为 diff 文件发送、那将会有所帮助。
是否还可以确认当在中断处理程序中时数据包中设置了 txConfirmation Flag?
此致、
Tanmay
关于 SW 进入异常问题、它应该是矢量 AUTOSAR 耦合问题。 解耦 AUTOSAR 代码后、软件运行良好、未观察到异常。
2.对于帧 TX 功能验证、测试用例是为 CPSW2G 请求帧发送。 寄存器 CPSW_STAT1_TXGOODFRAMES (0x4603A234)根据帧 TX 请求不断增加。
2.对于帧 RX 功能验证、我们设计了 CPSW2G 和 CPSW9G 相互发送帧的测试用例。
(1)观察结果:CPSW2G (0x4603A234)和 CPSW9G (0x0C03A234)的寄存器 CPSW_STAT1_TXGOODFRAMES 保持增加。
没有发现例外情况。
(2)问题:CPSW2G 和 CPSW9G 均未接收到帧。
对于 CPSW9G 和 CPSW2G、未触发 RX 中断、并且 CPSW_STAT_RXGOODFRAMES 的值不会更新(始终为0)。
(3)没有用于通过电信号监控进行 TX 帧验证的硬件测试点。
3.问题
(1)对于 MAC2MAC 模式、CPSW_STAT1_TXGOODFRAMES 值是否可以指示 TX 功能工作正常?
(2)哪些配置会影响 MAC2MAC 帧的接收?
4.下一个行动
在另一个 E2E QA 中、我们发现 ALE 表将影响 CPSW RX 功能。
AM3358:AM3358 CPSW Rx 中断未触发-处理器论坛-处理器- TI E2E 支持论坛
我们将再次确认 ALE 表的配置。
这两个存储器饺子是 CPSW2G 和 CPSW9G 的 ALE 表。 您能否查看它们并检查是否有任何例外配置?
您好,Jingchun,
我与硬件团队进行了检查、上拉和下拉是可通过软件配置的、因此与您的方式一样、直接连接不会出现问题。
此致、
Tanmay
您好 Tanmay、
感谢您的回答。
CPSW2G 和 CPSW9G 通信已建立。 CPSW2G 和 CPSW9G 可以相互接收帧。
上一个问题是由于为 CPSW9G 配置了错误的端口导致的。
非常感谢您今天的支持。
此致、
李景春
您好,Jingchun,
很高兴能提供帮助。
现在关闭此问题。
此致、
Tanmay