BMC适配YT8521和YT8531网络均不通

// 此模板仅供参考,如果不适用可以修改

问题描述

BMC(Hi1711V100)外挂YT8531配置为SGMII-UTP模式,出网络不通,更换为YT8521 后网口仍然不通,求助,着急!!

环境信息

  • 操作系统:openEuler

  • 软件版本:IBMC出厂自带版本

  • 硬件配置:S920X08 双P

重现步骤

  1. 查看了UBMC论坛上检索到了YT8531的适配问题,但是只针对link到10M换成YT8521就能工作,我们同样更换成8521但是网络仍然不通

  2. 检查个人PC上的网路适配器连接到CPU上收发正常;修改BMC IP后同样接到PC上,网口上只有发没有接收,

期望结果

BMC网络可以正常使用,并切可以升级UBMC版本

实际结果

YT8531和YT8521的指示灯可以闪亮,但是网络死活ping不通,无法升级UBMC

尝试过的解决方案

  1. 检查BMC外围的STRP电路设计,暂未发现异常。

  2. 修改YT8531、YT8521的配置模式和地址,仍然不通。

  3. 尝试VGA+KVM的方式连接,但是是直通CPU的,BMC无法连接。

  4. 抓取BMC与YT8531/YT8521之间的MDIO数据时钟信号,未发现异常

  5. BMC的串口日志如下,但是无法进入命令行操作

    HH_BMC-SerialPort_20260420_112411.txt (33.5 KB)

  6. 更换为YT8521后,BMC串口打印信息如下,现象一致

    HH_BMC-8521_SerialPort_20260423_1937.txt (32.5 KB)

分析结论

根据当前的现象,暂无头绪

答案内容由AI生成,仅供参考:

:white_check_mark: 六、结论与建议

结论 说明
:cross_mark: 网络不通的根本原因 并非单纯 PHY 型号问题,而是 SGMII自协商失败 + 驱动未妥善处理错误状态
:warning: 使用 IBMC 出厂版本风险高 缺少对新型 PHY 的适配与稳定性优化
:white_check_mark: 最有效解决方案 升级至 openUBMC 最新版固件,确保 YT8521 完全适配
:white_check_mark: 紧急可用临时方案 强制 NetMode 为 Fixed、PC端强制速率、添加 U-Boot 初始化
点击此处查看详细分析解答

BMC适配YT8521和YT8531后网络不通问题分析与解决方案

根据您提供的详细信息,BMC(Hi1711V100)在使用YT8531和更换为YT8521后均出现网络不通的问题。以下将基于上下文知识库中的信息进行系统性分析,并提供针对性的排查与解决建议。


:magnifying_glass_tilted_left: 一、问题核心现象总结

类别 描述
硬件平台 Hi1711V100 BMC 模组,搭载 S920X08 双P服务器
PHY型号 YT8531(初始配置)→ 更换为 YT8521
接口模式 SGMII-UTP
故障表现 - 网口指示灯可正常闪烁
- BMC IP 已修改并接入 PC
- 仅有发送数据包,无接收响应
- 无法 ping 通,无法升级 UBMC
已尝试操作 - 检查STRP电路
- 更改PHY配置与地址
- 抓取MDIO时钟信号正常
- VGA+KVM直通CPU,BMC无访问途径

:puzzle_piece: 二、问题可能原因分析(基于知识库)

1. PHY驱动适配性问题:初步判断适配存在缺陷

  • 根据知识库文档:

    “目前在公开的知识库文档、社区讨论及设备适配记录中,未发现 openUBMC 或 HI1711 平台明确支持‘苏州雄立科技 XL58211FS-i’PHY 芯片的官方适配记录。”

    虽然未提及 YT8531,但已知 裕太微YT8521 是 openUBMC 中较为常见且被验证支持的 PHY。

  • 然而您反馈“更换为 YT8521 后仍无法通信”,说明问题可能并不完全源于PHY型号不兼容,而更可能是:

    • PHY初始化流程异常
    • BMC软件版本过旧(IBMC出厂自带版本)
    • SGMII协商失败或GMAC配置错误

2. SGMII Auto-Negotiation 失败是关键线索

从系统日志中发现一条重要错误记录:

[2026-01-29 20:47:59] gmac_hw_set_port_mode_all,635,SGMII auto-negotiation not complete(0x0)

此条日志表明:

  • gmac_hw_set_port_mode_all 函数调用过程中,SGMII自动协商未完成
  • 这会导致 链路虽能LINK UP,但通信异常
  • 结合您观察到的“能发不能收”现象,符合“物理层建链但逻辑层未通”的典型特征

:light_bulb: SGMII Auto-Negotiation Not Complete 是一个关键事件,通常发生在 GMAC 驱动与 PHY 协商速度/双工模式时超时或配置不一致。


3. NetMode 配置不当可能导致固定模式失效

知识库中指出:

NetMode 是一个可配置参数,取值为 "Fixed""Automatic",用于控制网络接口的工作模式。

如果:

  • 当前设置为 "Automatic"(自协商)
  • 而远端(PC)也启用自协商
  • 双方因寄存器配置不一致导致协商卡住

则会出现“LINK波动”或“仅100M/10M”甚至“无响应”的情况。


4. 当前使用的 IBMC 出厂版本可能存在兼容缺陷

您使用的是“IBMC出厂自带版本”,并非 openUBMC 社区维护的更新固件。

  • 知识库显示:openUBMC 社区版本已验证支持 YT8521
  • 旧版 IBMC 固件可能缺少对新型 PHY 的补丁支持或 MDIO 访问逻辑有误
  • 且部分用户反馈“BMC重启后 bmc_network 组件失败”也说明旧版本稳定性较差

:white_check_mark: 三、针对性排查与解决方案

:white_check_mark: 方案一:确认 PHY 是否被正确识别与初始化

步骤:

  1. 若可通过串口登录 BMC 系统,请执行:

    dmesg | grep -i phy
    dmesg | grep -i sgmii
    cat /sys/class/net/eth0/phy_device/id
    
  2. 检查输出中是否有:

    • YT8521 或其设备 ID(如:0x0010eef1
    • 若显示为 Generic PHY 或 ID 不匹配,则说明驱动未识别该芯片

解决建议:

  • 升级至支持 YT8521 的 openUBMC 版本(推荐 2025+ 或 LTS SP1 以上)
  • 在驱动中添加 YT8521 的匹配项(设备树 .dts 或 PHY 驱动注册表)

:white_check_mark: 方案二:强制设置 NetMode 为 Fixed 固定模式

避免依赖不稳定自协商机制。

操作方式(若支持 Redfish 或命令行):

// 通过 Redfish 接口设置:
PATCH /redfish/v1/Managers/BMC/EthernetInterfaces/eth0
{
  "NetMode": "Fixed"
}

或通过命令行工具(若可用):

ipmcset -d netmode -v Fixed

:pushpin: 参考知识库:NetMode 是一个可读写属性,支持动态设置为 "Fixed" 模式

此操作可绕过 SGMII 自动协商失败的问题。


:white_check_mark: 方案三:检查 GMAC 初始化流程是否正常

观察以下关键事件时序:

  1. gmac_phy_init 初始化 PHY
  2. gmac_hw_set_port_mode_all 设置端口模式
  3. Gmac Probe 成功探测 GMAC

从已有日志看:

[2026-01-29 20:47:59] gmac_hw_set_port_mode_all, SGMII auto-negotiation not complete
[2026-01-29 20:47:59] gmac_probe, gmac init ok!

说明尽管 SGMII协商失败,但 GMAC仍标记为初始化成功 → 可能导致上层误判链路可用。

建议:

  • 修改驱动逻辑:在 gmac_hw_set_port_mode_all 中加入 SGMII 协商状态检查,失败时返回错误
  • 添加延时重试机制(如:延时200ms后再次读取 BMSR 寄存器判断 LINK 状态)

:white_check_mark: 方案四:检查 MDIO 通信是否完整

虽然您抓到了 MDIO 时钟信号正常,但还需确认:

检查项 是否完成
是否成功读取 PHY ID? 必须为 YT8521 的 OUI
是否写入自协商使能位(0x00 寄存器 Bit 12)? 必须正确配置
是否设置了正确的速度广告(1000BASE-T)? Bit 8-9 设置

推荐使用 MDIO analyzer 工具完整抓包分析 PHY 配置流程


:white_check_mark: 方案五:升级至 openUBMC 新版本以获取完整支持

当前环境使用 IBMC出厂版本,极有可能缺乏以下能力:

  • 对 YT8521 的完整驱动支持
  • bmc_network 模块的稳定性修复
  • SGMII 状态监控与恢复机制

建议升级路径:

  1. 获取适配 Hi1711 的 openUBMC 镜像(推荐:LTS SP1 或 202503 及以上)
  2. 使用串口刷写 HPM 包或通过带内 IPMI 升级
  3. 升级后验证:
    • 自动识别 YT8521
    • 正常完成 SGMII 协商
    • eth0 接口可 ping 通

:hammer_and_wrench: 四、应急临时方案

若暂时无法升级固件,可尝试:

1. 强制上位机端口为 1000Mbps 全双工

  • 避免自协商,减少不确定性
  • 设置 PC 端网卡为 1Gbps 全双工,关闭自协商

2. 使用交换机替代直连

  • 通过一个支持强制协商的千兆交换机中转
  • 利用交换机作为中介完成稳定连接

3. 添加 U-Boot 阶段 MDIO 初始化脚本

# 示例:手动配置 PHY 寄存器(需查YT8521手册)
mdio write <phy_addr> 0x00 0x0140  # 设置为 1000M 全双工
mdio write <phy_addr> 0x1f 0xXXXX  # 私有寄存器配置

:books: 五、参考资料支持(来自知识库)

关键实体 说明
SGMII BMC 使用 SGMII 接口连接外置 PHY(YT8521/YT8531),用于千兆以太网通信
gmac_hw_set_port_mode_all 负责配置所有 GMAC 端口模式,日志中触发 SGMII 协商失败
SGMII Auto-Negotiation Not Complete 明确的警告事件,指示协商未完成,是故障核心线索
NetMode 可设为 "Fixed""Automatic",控制是否启用自协商
bmc_network 负责管理 BMC 网络配置,老版本可能存在初始化失败问题

:white_check_mark: 六、结论与建议

结论 说明
:cross_mark: 网络不通的根本原因 并非单纯 PHY 型号问题,而是 SGMII自协商失败 + 驱动未妥善处理错误状态
:warning: 使用 IBMC 出厂版本风险高 缺少对新型 PHY 的适配与稳定性优化
:white_check_mark: 最有效解决方案 升级至 openUBMC 最新版固件,确保 YT8521 完全适配
:white_check_mark: 紧急可用临时方案 强制 NetMode 为 Fixed、PC端强制速率、添加 U-Boot 初始化

:megaphone: 建议下一步动作

  1. 优先升级到 openUBMC 最新稳定版本
  2. 通过串口查看 dmesg 日志,确认 YT8521 是否被识别
  3. 设置 NetMode=Fixed 避免协商失败影响
  4. 在 openUBMC 社区提交 Issue(如有定制需求):

    https://discuss.openubmc.cn


如您能提供 完整的串口启动日志(包含 gmac_phy_init, dmesg 输出等),可进一步精准定位问题。

可以通过串口登录后
提供
ipmcget -d v
ipmcget -d ip
的打印信息吗?

串口无法操作,打印信息见贴子里的附件

1.访问使用的ip是哪个?

8531应该是sdk未适配对的,8521对比8531的串口信息里多了eth2 link up,8521不通我倾向于用户网络配置层面问题。

2.带内有装系统吗?现在串口是切到os下无法访问,带内安装ipmitool工具可以切换串口到bmc侧

ipmitool raw 0x30 0x91 0xdb 0x07 0x00 0x17 0x1 0x4

带内有系统的,这个ipmitool工具哪里有提供?