BIOS 固件升级自动切换通道失败问题分析
更新时间: 2026/05/28
在Gitcode上查看源码问题背景
- 单板类型:NA;
- 软件版本:NA;
- 涉及功能:BIOS固件升级;
- 触发条件: BIOS 固件升级自动切换通道失败。
- 业务表现:预期bios升级成功;实际 BIOS 固件升级自动切换通道失败。
问题复现步骤
在执行 BIOS 固件升级操作时,升级进程中断并报错,导致功能验证失败。
关键日志信息
查看日志,确认报错如下:
text
ERROR: spi_flash.lua(301): [spi]check_device_ready: ready fail定位过程
- 根据错误信息认为问题出在底层 SPI Flash 操作层面。
- 由于是在验证“自动切换通道”功能,作为对比手动切换通道时可以正常检测到设备,bios NOTICE: spi_flash.lua(294): [spi]check_device_ready: device /dev/mtd0 ready,认为是固件通道切换机制问题。
- 手动加载sfc0_drv驱动时候dmesg出现报错:
- 目前发现 MUX 通道的切换逻辑是通过与 bmdfx 工具来实现的。但是Bmcdfx工具是SDK测试、调试、定位问题的一款内部开发使用工具,不交付产品使用。
- 报错是因为硬件上没有把SFC切换的控制信号接到BMC,调整硬件后bios组件的升级流程即可实现通道切换。
问题原因
硬件上没有把SFC切换的控制信号接到BMC。
解决方案
调整硬件把SFC切换的控制信号接到BMC。