内核与驱动
检查驱动加载 :使用 dmesg | grep -i gmac或 dmesg | grep -i eth查看启动日志,确认GMAC驱动已成功探测到设备,并分配了网络接口(如eth0)。
查看设备树 :设备树( DTS )配置是S32G平台网络正常工作的关键。重点检查:
compatible属性是否正确。
reg地址是否与芯片手册一致。
phy-mode属性(如“rgmii-id”、“sgmii”)是否与实际硬件连接匹配。
phy-handle是否指向正确的PHY节点。
max-speed属性是否设置。
clock-names和 clocks属性是否正确引用系统时钟和RGMII/SGMII时钟。
示例 设备树 片段 :
&gmac0 { status = "okay"; phy-mode = "rgmii-id"; phy-handle = <ðphy0>; max-speed = <1000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gmac0>; // 确保引脚控制配置正确 };
网络接口状态
使用ip/ ifconfig 命令 :
ip link show eth0 # 或 ifconfig eth0
观察 :接口是否处于UP状态?如果没有,使用 sudo ip link set eth0 up启动它。观察是否有LOWER_UP标志(表示物理层已连接)。
PHY链路协商
使用 ethtool检查并强制协商模式:
ethtool eth0 # 查看当前速度和双工模式 ethtool -s eth0 speed 1000 duplex full autoneg on # 尝试强制设置为千兆全双工
观察PHY的状态寄存器,确认协商是否完成(BMSR的ANEG_COMPLETE位)。
全部评论