AM335x Linux以太网移植与RMII丢包解决方案

需积分: 49 30 下载量 159 浏览量 更新于2024-09-09 收藏 39KB DOC 举报
本文主要介绍了在Linux环境下针对AM335x处理器进行以太网移植的步骤,特别是针对RMII模式丢包问题的解决方法。使用的kernel版本为4.14.97,并基于TI官网提供的SDK进行配置。 在Linux内核配置中,针对AM335x的以太网支持需要进行以下设置: 1. 打开“Device Drivers”选项,进入“Network device support”,然后启用“Network core driver support”。 2. 在“Ethernet drivers support”下,选择TI设备相关的支持,包括: - TIDaVinci MDIO Support - TIDaVinci CPDMA Support - TICPSW ALE Support - TICPSW Switch Support - TI Common Platform Time Sync (CPTS) Support 3. 针对SMC(SMSC)/Western Digital设备,选择相应的以太网驱动支持,如SMC91C9x/91C1xxxsupport等。 在DTS(Device Tree Source)配置方面,重点关注双网口的RMII形式: 1. RMII(Reduced Media Independent Interface)是一种低引脚数的以太网接口,适用于节省硬件资源。在DTS中,需要确保两个网口都被配置为RMII模式。 2. DTS文件通常位于`arch/arm/boot/dts/`目录下,需对相关GPIO进行配置,以适应RMII工作模式,例如设置GPIO为输入或输出,以及相应的模式。 在IO配置中,示例代码展示了如何配置ECAP2(Enhanced Capture)和CPSW(Common Packet Switching Architecture)相关的GPIO引脚,用于RMII接口的信号传输。例如,配置GMII1的接收错误信号和传输使能信号。 为解决RMII丢包问题,可以考虑以下策略: 1. 检查硬件连接,确保所有RMII信号线正确连接且无损坏。 2. 调整网络堆栈参数,如TCP/IP缓冲区大小、中断处理频率等,以适应更高的数据吞吐量。 3. 检查并优化中断处理程序的效率,减少中断延迟。 4. 分析系统日志,查找可能的错误源,如帧校验错误或冲突检测。 5. 如果是PHY层问题,检查PHY芯片的配置,如速率、自动协商设置等。 6. 调整kernel中的以太网驱动参数,例如增加RX队列深度,优化流控设置。 移植和优化AM335x的Linux以太网功能,尤其是解决RMII丢包问题,需要深入理解硬件接口、内核驱动以及网络协议栈。通过细致的配置和调试,可以有效提高系统的网络性能和稳定性。