bmc_soc
更新时间: 2026/02/27
在Gitcode上查看源码

bmc_soc

1 功能简介

BMC SOC管理为BMC基本功能特性,主要提供BMC片上资源的管理和监控功能,包括UART串口管理、串口连接管理、NAND Flash健康管理、SOC状态监控、生产自检等功能。

2 关键特性

2.1 UART串口管理

支持BMC多个UART串口的配置和管理,包括串口参数配置(波特率、数据位、校验位、停止位)和串口连接管理。支持串口数据的监听和日志记录功能。

2.2 串口连接管理

提供串口源和目的地的动态连接管理,支持串口连接的持久化策略(掉电保留/复位保留),支持面板串口SwitchCMD命令切换。

2.3 NAND Flash健康管理

对BMC的NAND Flash存储介质进行健康度监控,包括寿命监控、擦写次数统计、坏块管理、写保护等功能,支持Flash健康度告警。

2.4 SOC状态监控

监控SOC芯片的工作状态,包括温度监控、黑匣子功能、PCIe控制器使能、DDR自检结果、启动时间等关键指标。

3 资源协作接口

3.1 SOC串口端口资源协作接口

资源协作接口:

path: /bmc/kepler/Managers/${ManagerId}/UartPorts/${Id}interface: bmc.kepler.Managers.UartPortproperties

属性名数据类型只读emitsChangedSignal描述示例值
IdU8false端口ID0
BusTypeStringfalse串口协议类型,取值如下:
- Uart: Uart通用端口
- UartOverHisport: 基于Hisport通道的Uart端口
- UartOverEspi: 基于ESPI通道的Uart端口
Uart
UartConnectionU8-UART连接编号-
PortConnectionU8-端口连接编号-
BaudRateU32-波特率115200
DataBitU8-数据位8
ParityBitU8-校验位-
StopBitU8-停止位1
SerialSwitchU8-串口切换开关-

methods

方法名权限描述请求参数响应参数
ResetBasicSetting打开启动Uart设备,并对设备进行参数设置等初始化

3.2 SOC串口数据配置资源协作接口

path:/bmc/kepler/Managers/${ManagerId}/UartDatainterface: bmc.kepler.Managers.UartDataproperties

属性名数据类型只读emitsChangedSignal描述示例值
EnabledBoolean-设置SOL使能状态true
SystemLogSizeU32-系统串口日志大小2097152
IdU8-UART数据ID-
SerialListenSwitchEnabledBoolean-面板串口SwitchCMD命令使能false
UartIdforSerialListenU8-监听SwitchCMD命令的串口0

methods

方法名权限描述请求参数响应参数
ExportDiagnoseMgmt导出串口日志Type: String - 导出数据的类型,可选值:SYS COM/ALL
FilePath: String - 导出数据的文件路径
TaskId: U32 - 任务标识

3.3 SOC串口互联配置资源协作接口

path:/bmc/kepler/Managers/${ManagerId}/SerialManagementinterface: bmc.kepler.Managers.SerialManagement.Configmethods

方法名权限描述请求参数响应参数
ResetBasicSetting恢复串口管理配置

3.4 SOC串口互联关系资源协作接口

path:/bmc/kepler/Managers/${ManagerId}/SerialManagement/${Id}interface: bmc.kepler.Managers.SerialManagementproperties

属性名数据类型只读emitsChangedSignal描述示例值
IdU8false串口链路的ID3
AvailabilityU8false串口链路的可用性1
CurrentConnectStatusU8-当前串口连接状态,0:未连接,1:已连接0
SourceStringfalse链路关系源端PANEL COM
DestinationStringfalse链路关系对端openUBMC COM
SrcSerialU8false源Uart或Port口,其中取值大于16是Port,否则是Uart18
DestSerialU8false目的Uart或Port口,其中取值大于16是Port,否则是Uart2
SourceIdU8-源ID-
DestinationIdU8-目的ID-
RetainedPolicyU8-串口的持久化方案,取值:0-掉电保留,1-复位保留-
ConnectStatusU8-掉电保留的串口连接状态-
ConnectStatusResetPerU8-复位保留的串口连接状态-
SystemIdU8-复位后自动恢复的多host串口连接状态0
CPLDValueU8-切换串口方向寄存器的值255
ConnectModeU8-串口连接方式0
ListenSwitchCmdEnabledBoolean-面板串口SwitchCMD命令使能false
ListenSwitchCmdString-面板串口SwitchCMD命令-

methods

方法名权限描述请求参数响应参数
SetConnectStatusBasicSetting设置串口链路状态NeedSaved: Boolean - 此次串口连接方向是否持久化

3.5 SOC Flash资源协作接口

path:/bmc/kepler/Managers/:ManagerId/NandFlashinterface: bmc.kepler.Managers.NandFlashproperties

属性名数据类型只读emitsChangedSignal描述示例值
VendorString-nand厂商Hynix
WriteProtectionU8falseNand Flash写保护状态,写入与否:0(允许)/1(禁止)0
LifeTimeU8-剩余寿命百分比,支持Nand Flash已用寿命超限严重告警99
LifeTimeThresholdU8-寿命阈值10
PreEOLU8-(end of life)Nand Flash的PreEOL信息(通过平均预留块来反映设备寿命)1
OverWriteU8-写入量是否超过门限,1:超过/0:未超过0
WriteThresholdU8falseNand Flash写入量,单位GB12
RWTestStateU8-读写测试状态0
MaxEraseCountS32false最大擦除次数(非JPR型号海力士支持),不支持厂商置-13000
RemainingEraseCountS32false剩余擦除次数(非JPR型号海力士支持),不支持厂商置-12917
EraseCountPerDaysS32[]false最近15天每天擦除次数(非国产海力士支持),不支持或无数据为空[1, 0]
TotalWriteAmountDoublefalse开机至今总写入量,单位GB0.112
TotalWriteAmountIn15DaysDoublefalse最近15天总写入量,单位GB0.112
WriteAmountPerDayDouble[]false最近15天每天写入量,无数据时为空,单位GB[1, 0.112]
ReservedBlocksS32false剩余预留块(非JPR型号海力士支持),不支持厂商置-181
RuntimeBadBlocksS32false坏块数量(非JPR型号海力士支持),不支持厂商置-10
IdU8-NAND Flash ID-
WriteAmountOver800mOneDayU8-单日写入量超过800MB标志-
FlashRecoverPolicyU8-用于配置连续读写测试失败后是否支持自愈。取值,0:不采取动作;1:重启BMC-
FlashRecoveredU8-用于标记BMC是否重启修复过。取值,0:未重启修复过;1:重启修复过-

methods

方法名权限描述请求参数响应参数
ClearStatisticsBasicSetting清除写入量统计

3.6 SOC 资源协作接口

path:/bmc/kepler/Managers/:ManagerId/SOCinterface: bmc.kepler.Managers.SOCproperties

属性名数据类型只读emitsChangedSignal描述示例值
BlackBoxEnabledBoolean-设置黑匣子使能开关状态,false(关闭)/true(打开)false
PCIeControllerEnabledBoolean-设置PCIe接口使能开关状态,false(关闭)/true(打开)false
TemperatureU16-BMC核心温度43
TemperatureThresholdU16-BMC核心温度告警阈值105
NameStringfalse芯片名字SocNameExample
VersionStringfalse芯片版本,如V100100
DesignatorStringfalse芯片位置,如U82U82
DIEIDStringfalseDIE(裸片)ID(标识)12345678 90ABCDEF
ResetTypeU8falseBMC复位原因,0 AC复位,2 软复位2
DDRSelfTestResultU8-DDR自检结果,BMC启动检查一次,1 自检成功 0 自检失败1
DDRSingleBitECCStatisticsU32falseDDR ECC错误检查,1小时例测一次单bit结果0
DDRMultiBitECCStatisticsU32falseDDR ECC错误检查,1小时例测一次多bit结果0
StartupDurationU16falseBMC启动时间规格160
LastResetTimeStringfalse表征BMC上一次重启时间2025-10-10T07:39:59+00:00
BootStatusU8true加载状态,1:表示BMC已启动;0为默认值,表示未完成启动-
BmcHardResetFlagU8-BMC硬复位标志0
ProcessRestartFlagU8-进程重启标志0
CoreEnableTempU8[]-开核的温度,有3个值,分别代表开第一个,第二个,第三个从核开核的芯片温度-
CoreDisableTempU8-高温关核温度-
CoreDisablePowerOffTimeU8-下电关核的超时时间,为0表示下电不关核-
DCAEnableU8-动态开关核功能使能 1使能 0关闭-

4 CSR配置介绍

4.1 SerialManagement 对象配置介绍

此对象用于配置串口链路连接管理,表名:t_serial_management

属性名数据类型只读emitsChangedSignal描述示例值
IdU8false串口链路ID(主键)-
Availability-false串口链路的可用性-
Source-false链路关系源端-
Destination-false链路关系对端-
SrcSerial-false源Uart或Port口,其中取值大于16是Port,否则是Uart-
DestSerial-false目的Uart或Port口,其中取值大于16是Port,否则是Uart-
SourceIdU8false源ID-
DestinationIdU8false目的ID-
RetainedPolicyU8false串口的持久化方案,取值:0-掉电保留,1-复位保留-
ConnectStatusU8false掉电保留的串口连接状态-
ConnectStatusResetPerU8false复位保留的串口连接状态-
SystemIdU8false复位后自动恢复的多host串口连接状态0
CPLDValueU8false切换串口方向寄存器的值255
ConnectModeU8false串口连接方式0
ListenSwitchCmdEnabledBooleanfalse面板串口SwitchCMD命令使能false
ListenSwitchCmdStringfalse面板串口SwitchCMD命令-

4.2 UartCircularLog对象配置介绍

此对象用于配置UART循环日志功能

属性名数据类型只读emitsChangedSignal描述示例值
IdU8falseUART日志ID-
LogDirectionU8false日志方向-
RxSizeU8false接收缓冲区大小-
TxSizeU8false发送缓冲区大小-
IsSysComU8false是否系统串口-
LogEnableU8false日志使能-
AutoCollectU8false自动收集-
LastOffsetU32false上次偏移量-
SystemIdU8false系统ID255
LogFileNameStringfalse日志文件名-

4.3 NandInfo对象配置介绍

此对象用于配置NAND Flash的基本信息

属性名数据类型只读emitsChangedSignal描述示例值
VIDU8false厂商ID-
VendorStringfalse厂商名称-
LifeThresholdU8false寿命阈值-
WriteThresholdU8false写阈值-
DftLifeThresholdU8false默认寿命阈值-
ProductNameStringfalse产品名称``
MaxWriteTimesS16false最大写入次数-1
LifeInfoOffsetU16false寿命信息偏移量269

4.4 BMCFileSystemCheck对象配置介绍

此对象用于配置BMC文件系统健康检查功能

属性名数据类型只读emitsChangedSignal描述示例值
IdU8false文件系统检查ID-
EnabledU8false文件系统健康检查使能,状态定义0:禁止;1:使能-
MountTypeU8false数据分区挂载方式,0:Read-Write;1:Read-Only-

4.5 SerialSwitchAction对象配置介绍

此对象用于配置串口切换动作的寄存器关联

属性名数据类型只读emitsChangedSignal描述示例值
SerialSwitchAccessorU8false串口切换关联第一级寄存器, CPLDValue对应的寄存器255
RemoteAccessorU8false串口切换关联第二级寄存器255

4.6 McuLog对象配置介绍

此对象用于配置MCU日志相关参数

属性名数据类型只读emitsChangedSignal描述示例值
SystemIdU8false系统ID-
ValidSlotBooleanfalse有效Mcu片-
BoardLogChipU8[]false板载日志芯片-
GetLenthCmdU32false读取flash长度命令-
SetStartPosCmdU32false设置读取flash起点命令-

4.7 UartDynamicConfig对象配置介绍

此对象用于配置支持动态配置的串口参数

属性名数据类型只读emitsChangedSignal描述示例值
SysComIdU8false支持动态配置的输入端口Id, Uart:0~15,Port:16~31-
RawConfigDataU64false从cpld获取到的原始串口配置数据0
BaudRateU32false从cpld获取到的串口波特率配置115200
DataBitU8false从cpld获取到的串口数据位长配置8
ParityBitU8false从cpld获取到的串口校验开关配置78
StopBitU8false从cpld获取到的串口停止位配置1
FlowControlU8false从cpld获取到的串口控制流配置0

4.8 NandFlashRecord对象配置介绍

此对象用于记录NAND Flash的历史数据,表类型为PoweroffPer

属性名数据类型只读emitsChangedSignal描述示例值
RecordIdU32false记录ID(主键)-
TimeU32false该条数据记录时的时间戳-
WriteAmountStringfalsenandflash写入量-
RemainingLifeU32falsenandflash剩余寿命-
ReservedBlocksS32false剩余预留块-
BadBlocksS32false坏块数量-
EraseCountS32false擦除次数-

5 高频常见问题与关键日志介绍

5.1 NAND Flash寿命监控告警

关键日志: NAND Flash寿命低于阈值时,系统会产生告警信息。

处理方法:

  • 检查 NandInfo 对象中的 LifeThreshold 配置
  • 查看 NandFlash 资源协作接口的 LifeTimePreEOL 属性
  • 关注 NandFlashRecord 表中的历史数据记录

5.2 SOC温度过高

关键日志: SOC温度超过 TemperatureThreshold 阈值时触发告警。

处理方法:

  • 检查SOC资源协作接口的 TemperatureTemperatureThreshold 属性
  • 根据需要调整 CoreEnableTempCoreDisableTemp 配置
  • 当温度过高时,SOC可能自动关闭部分核心以降低温度

5.3 串口连接状态异常

关键日志: 串口连接状态与预期不符时产生告警。

处理方法:

  • 检查 SerialManagement 资源协作接口的连接状态
  • 验证 RetainedPolicy 配置(掉电保留/复位保留)
  • 检查 CPLDValueConnectMode 配置是否正确