AC测试时出现BIOS启动超时重启。

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

AC测试时BIOS启动超时重启问题分析

问题概述

在执行AC(上电/下电)测试过程中,系统出现BIOS启动失败,导致操作系统未能正常启动。约一小时后系统自动重启并恢复正常。该问题为概率性故障,目前已知仅出现一次。


故障现象

  • AC测试过程中BIOS启动失败
  • 出现BTC(Bridge to Controller)通信超时错误
  • 最终触发HISI系统复位
  • 约一小时后系统自动重启恢复

环境信息

项目 信息
操作系统 openEuler 22.03 (LTS-SP4)
软件版本 openUBMC 25.12 基线
硬件配置 S920X20 主板(920 7270Z)
固件版本 BCU CPLD 7.08, BIOS 21.52

:warning: 注:提问中提到的"欧拉2204 sp4"应为笔误,根据上下文及知识库内容实际使用的是 openEuler 22.03 (LTS-SP4)


错误日志分析

BTC通信失败日志

BMC or Cpld did not raise the B2H_ATN interrupt, bt ctrl:0x0
Read data: Time out
...
Btc Communicate try 3 time.
Btc communication: Time out. btWriteData.seq:0x4E, btWriteData.cmd:0x92...
Ipmi Execute fail:Time out
  • 关键问题:BTC通道通信异常,BMC或CPLD未触发B2H_ATN中断
  • 根本原因指向:BMC侧或CPLD未能及时响应BTC通信请求

BIOS重启日志

No silk data, use default.
Imp config has been changed and will take effect after System Cold Reset…
ERROR:   HISI System Reset…
  • 表明因配置变更需要冷重启
  • "No silk data"提示丝印信息丢失或未及时加载
  • 最终由HISI芯片触发强制系统复位

根本原因分析

1. BTC通信失败可能原因

根据知识库中相关案例(如文档ID 3755),BTC通信失败常见原因包括:

  • CPLD硬件问题:在类似案例中已确认是"硬件CPLD问题"导致BTC通信异常
  • BMC初始化延迟:AC上电时,BMC服务启动慢于BIOS,导致BIOS尝试通信时BMC尚未就绪
  • 中断信号未正确触发B2H_ATN中断未被正确拉高,说明CPLD与BMC之间的控制信号异常

2. 定时重启恢复机制

约1小时后自动重启,推测为以下机制之一:

  • BMC看门狗超时重启
  • 系统ACPI S5状态超时后由管理策略强制重启
  • 固件层面的自愈机制触发冷重启

相关技术支持参考

类似问题解决案例

  1. 论坛讨论参考

  2. 已知修复方案

    • 在gitcode PR #62 中通过提前获取丝印信息、减少超时解决了内存等加载问题,与此类问题逻辑相似

解决建议

:hammer_and_wrench: 短期应对措施

  1. 复现测试验证

    • 使用bmcgo gen -r openubmc_dev生成最新IPMI接口代码进行验证
    • 增加AC测试循环次数以提高问题复现概率
  2. 日志收集

    • 在下次问题发生时立即执行一键日志收集
    • 重点检查:bmc.kepler资源树、IPMI Core日志、BTC驱动状态

:wrench: 长期解决方案

措施 说明
升级CPLD固件 尝试升级至更新版本(如>7.08)排除已知硬件逻辑缺陷
优化BMC启动时序 fructrl组件中增加延迟机制,确保BMC服务完全启动后再允许BIOS通信
增强错误处理机制 修改BIOS重试策略,避免无限等待BTC响应导致启动阻塞
持久化配置管理 确保"丝印数据"等关键信息可靠存储,防止"No silk data"问题

预防性配置建议

# 检查BMC电源状态
ipmcget -d powerstate

# 验证IPMI Core是否正常运行
systemctl status ipmi_core

# 检查BTC服务状态
ps aux | grep btc

:light_bulb: 最佳实践:对于关键生产环境,建议在AC测试前确保所有固件版本处于推荐稳定版本,并关闭非必要的自启动服务以降低初始化竞争风险。


结论

该问题主要原因极可能是CPLD硬件或固件缺陷导致BTC通信中断,结合BIOS端无有效降级处理机制,最终引发系统级重启。虽然当前为偶发问题,但存在较大稳定性隐患。

建议优先排查并升级BCU CPLD固件版本,同时参考openUBMC社区已知修复方案进行预防性优化。

相关链接:

  1. AC后与BIOS交互的信息概率性获取不到
  2. web查询传感器,部分传感器数值显示为空
  3. BIOS启动失败,BTC is busy ,BTC bt ctrl:0x80
  4. X20 AC 测试过程中 产生core dump 导致bmc 重启
  5. bios | 文档中心 | openUBMC