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 | 描述 | 示例值 |
|---|---|---|---|---|---|
| Id | U8 | ✓ | false | 端口ID | 0 |
| BusType | String | ✓ | false | 串口协议类型,取值如下: - Uart: Uart通用端口- UartOverHisport: 基于Hisport通道的Uart端口- UartOverEspi: 基于ESPI通道的Uart端口 | Uart |
| UartConnection | U8 | ✓ | - | UART连接编号 | - |
| PortConnection | U8 | ✓ | - | 端口连接编号 | - |
| BaudRate | U32 | ✗ | - | 波特率 | 115200 |
| DataBit | U8 | ✗ | - | 数据位 | 8 |
| ParityBit | U8 | ✗ | - | 校验位 | - |
| StopBit | U8 | ✗ | - | 停止位 | 1 |
| SerialSwitch | U8 | ✗ | - | 串口切换开关 | - |
methods
| 方法名 | 权限 | 描述 | 请求参数 | 响应参数 |
|---|---|---|---|---|
| Reset | BasicSetting | 打开启动Uart设备,并对设备进行参数设置等初始化 | 无 | 无 |
3.2 SOC串口数据配置资源协作接口
path:/bmc/kepler/Managers/${ManagerId}/UartDatainterface: bmc.kepler.Managers.UartDataproperties
| 属性名 | 数据类型 | 只读 | emitsChangedSignal | 描述 | 示例值 |
|---|---|---|---|---|---|
| Enabled | Boolean | ✗ | - | 设置SOL使能状态 | true |
| SystemLogSize | U32 | ✓ | - | 系统串口日志大小 | 2097152 |
| Id | U8 | ✓ | - | UART数据ID | - |
| SerialListenSwitchEnabled | Boolean | ✗ | - | 面板串口SwitchCMD命令使能 | false |
| UartIdforSerialListen | U8 | ✗ | - | 监听SwitchCMD命令的串口 | 0 |
methods
| 方法名 | 权限 | 描述 | 请求参数 | 响应参数 |
|---|---|---|---|---|
| Export | DiagnoseMgmt | 导出串口日志 | Type: String - 导出数据的类型,可选值:SYS COM/ALLFilePath: String - 导出数据的文件路径 | TaskId: U32 - 任务标识 |
3.3 SOC串口互联配置资源协作接口
path:/bmc/kepler/Managers/${ManagerId}/SerialManagementinterface: bmc.kepler.Managers.SerialManagement.Configmethods
| 方法名 | 权限 | 描述 | 请求参数 | 响应参数 |
|---|---|---|---|---|
| Reset | BasicSetting | 恢复串口管理配置 | 无 | 无 |
3.4 SOC串口互联关系资源协作接口
path:/bmc/kepler/Managers/${ManagerId}/SerialManagement/${Id}interface: bmc.kepler.Managers.SerialManagementproperties
| 属性名 | 数据类型 | 只读 | emitsChangedSignal | 描述 | 示例值 |
|---|---|---|---|---|---|
| Id | U8 | ✓ | false | 串口链路的ID | 3 |
| Availability | U8 | ✓ | false | 串口链路的可用性 | 1 |
| CurrentConnectStatus | U8 | ✓ | - | 当前串口连接状态,0:未连接,1:已连接 | 0 |
| Source | String | ✓ | false | 链路关系源端 | PANEL COM |
| Destination | String | ✓ | false | 链路关系对端 | openUBMC COM |
| SrcSerial | U8 | ✓ | false | 源Uart或Port口,其中取值大于16是Port,否则是Uart | 18 |
| DestSerial | U8 | ✓ | false | 目的Uart或Port口,其中取值大于16是Port,否则是Uart | 2 |
| SourceId | U8 | ✗ | - | 源ID | - |
| DestinationId | U8 | ✗ | - | 目的ID | - |
| RetainedPolicy | U8 | ✗ | - | 串口的持久化方案,取值:0-掉电保留,1-复位保留 | - |
| ConnectStatus | U8 | ✗ | - | 掉电保留的串口连接状态 | - |
| ConnectStatusResetPer | U8 | ✗ | - | 复位保留的串口连接状态 | - |
| SystemId | U8 | ✓ | - | 复位后自动恢复的多host串口连接状态 | 0 |
| CPLDValue | U8 | ✓ | - | 切换串口方向寄存器的值 | 255 |
| ConnectMode | U8 | ✓ | - | 串口连接方式 | 0 |
| ListenSwitchCmdEnabled | Boolean | ✗ | - | 面板串口SwitchCMD命令使能 | false |
| ListenSwitchCmd | String | ✗ | - | 面板串口SwitchCMD命令 | - |
methods
| 方法名 | 权限 | 描述 | 请求参数 | 响应参数 |
|---|---|---|---|---|
| SetConnectStatus | BasicSetting | 设置串口链路状态 | NeedSaved: Boolean - 此次串口连接方向是否持久化 | 无 |
3.5 SOC Flash资源协作接口
path:/bmc/kepler/Managers/:ManagerId/NandFlashinterface: bmc.kepler.Managers.NandFlashproperties
| 属性名 | 数据类型 | 只读 | emitsChangedSignal | 描述 | 示例值 |
|---|---|---|---|---|---|
| Vendor | String | ✓ | - | nand厂商 | Hynix |
| WriteProtection | U8 | ✗ | false | Nand Flash写保护状态,写入与否:0(允许)/1(禁止) | 0 |
| LifeTime | U8 | ✓ | - | 剩余寿命百分比,支持Nand Flash已用寿命超限严重告警 | 99 |
| LifeTimeThreshold | U8 | ✓ | - | 寿命阈值 | 10 |
| PreEOL | U8 | ✓ | - | (end of life)Nand Flash的PreEOL信息(通过平均预留块来反映设备寿命) | 1 |
| OverWrite | U8 | ✓ | - | 写入量是否超过门限,1:超过/0:未超过 | 0 |
| WriteThreshold | U8 | ✓ | false | Nand Flash写入量,单位GB | 12 |
| RWTestState | U8 | ✓ | - | 读写测试状态 | 0 |
| MaxEraseCount | S32 | ✓ | false | 最大擦除次数(非JPR型号海力士支持),不支持厂商置-1 | 3000 |
| RemainingEraseCount | S32 | ✓ | false | 剩余擦除次数(非JPR型号海力士支持),不支持厂商置-1 | 2917 |
| EraseCountPerDays | S32[] | ✓ | false | 最近15天每天擦除次数(非国产海力士支持),不支持或无数据为空 | [1, 0] |
| TotalWriteAmount | Double | ✓ | false | 开机至今总写入量,单位GB | 0.112 |
| TotalWriteAmountIn15Days | Double | ✓ | false | 最近15天总写入量,单位GB | 0.112 |
| WriteAmountPerDay | Double[] | ✓ | false | 最近15天每天写入量,无数据时为空,单位GB | [1, 0.112] |
| ReservedBlocks | S32 | ✓ | false | 剩余预留块(非JPR型号海力士支持),不支持厂商置-1 | 81 |
| RuntimeBadBlocks | S32 | ✓ | false | 坏块数量(非JPR型号海力士支持),不支持厂商置-1 | 0 |
| Id | U8 | ✓ | - | NAND Flash ID | - |
| WriteAmountOver800mOneDay | U8 | ✗ | - | 单日写入量超过800MB标志 | - |
| FlashRecoverPolicy | U8 | ✗ | - | 用于配置连续读写测试失败后是否支持自愈。取值,0:不采取动作;1:重启BMC | - |
| FlashRecovered | U8 | ✗ | - | 用于标记BMC是否重启修复过。取值,0:未重启修复过;1:重启修复过 | - |
methods
| 方法名 | 权限 | 描述 | 请求参数 | 响应参数 |
|---|---|---|---|---|
| ClearStatistics | BasicSetting | 清除写入量统计 | 无 | 无 |
3.6 SOC 资源协作接口
path:/bmc/kepler/Managers/:ManagerId/SOCinterface: bmc.kepler.Managers.SOCproperties
| 属性名 | 数据类型 | 只读 | emitsChangedSignal | 描述 | 示例值 |
|---|---|---|---|---|---|
| BlackBoxEnabled | Boolean | ✗ | - | 设置黑匣子使能开关状态,false(关闭)/true(打开) | false |
| PCIeControllerEnabled | Boolean | ✗ | - | 设置PCIe接口使能开关状态,false(关闭)/true(打开) | false |
| Temperature | U16 | ✓ | - | BMC核心温度 | 43 |
| TemperatureThreshold | U16 | ✓ | - | BMC核心温度告警阈值 | 105 |
| Name | String | ✓ | false | 芯片名字 | SocNameExample |
| Version | String | ✓ | false | 芯片版本,如V100 | 100 |
| Designator | String | ✓ | false | 芯片位置,如U82 | U82 |
| DIEID | String | ✓ | false | DIE(裸片)ID(标识) | 12345678 90ABCDEF |
| ResetType | U8 | ✓ | false | BMC复位原因,0 AC复位,2 软复位 | 2 |
| DDRSelfTestResult | U8 | ✓ | - | DDR自检结果,BMC启动检查一次,1 自检成功 0 自检失败 | 1 |
| DDRSingleBitECCStatistics | U32 | ✓ | false | DDR ECC错误检查,1小时例测一次单bit结果 | 0 |
| DDRMultiBitECCStatistics | U32 | ✓ | false | DDR ECC错误检查,1小时例测一次多bit结果 | 0 |
| StartupDuration | U16 | ✓ | false | BMC启动时间规格 | 160 |
| LastResetTime | String | ✓ | false | 表征BMC上一次重启时间 | 2025-10-10T07:39:59+00:00 |
| BootStatus | U8 | ✓ | true | 加载状态,1:表示BMC已启动;0为默认值,表示未完成启动 | - |
| BmcHardResetFlag | U8 | ✗ | - | BMC硬复位标志 | 0 |
| ProcessRestartFlag | U8 | ✗ | - | 进程重启标志 | 0 |
| CoreEnableTemp | U8[] | ✗ | - | 开核的温度,有3个值,分别代表开第一个,第二个,第三个从核开核的芯片温度 | - |
| CoreDisableTemp | U8 | ✗ | - | 高温关核温度 | - |
| CoreDisablePowerOffTime | U8 | ✗ | - | 下电关核的超时时间,为0表示下电不关核 | - |
| DCAEnable | U8 | ✗ | - | 动态开关核功能使能 1使能 0关闭 | - |
4 CSR配置介绍
4.1 SerialManagement 对象配置介绍
此对象用于配置串口链路连接管理,表名:t_serial_management
| 属性名 | 数据类型 | 只读 | emitsChangedSignal | 描述 | 示例值 |
|---|---|---|---|---|---|
| Id | U8 | ✓ | false | 串口链路ID(主键) | - |
| Availability | - | ✓ | false | 串口链路的可用性 | - |
| Source | - | ✓ | false | 链路关系源端 | - |
| Destination | - | ✓ | false | 链路关系对端 | - |
| SrcSerial | - | ✓ | false | 源Uart或Port口,其中取值大于16是Port,否则是Uart | - |
| DestSerial | - | ✓ | false | 目的Uart或Port口,其中取值大于16是Port,否则是Uart | - |
| SourceId | U8 | ✗ | false | 源ID | - |
| DestinationId | U8 | ✗ | false | 目的ID | - |
| RetainedPolicy | U8 | ✗ | false | 串口的持久化方案,取值:0-掉电保留,1-复位保留 | - |
| ConnectStatus | U8 | ✗ | false | 掉电保留的串口连接状态 | - |
| ConnectStatusResetPer | U8 | ✗ | false | 复位保留的串口连接状态 | - |
| SystemId | U8 | ✓ | false | 复位后自动恢复的多host串口连接状态 | 0 |
| CPLDValue | U8 | ✓ | false | 切换串口方向寄存器的值 | 255 |
| ConnectMode | U8 | ✓ | false | 串口连接方式 | 0 |
| ListenSwitchCmdEnabled | Boolean | ✗ | false | 面板串口SwitchCMD命令使能 | false |
| ListenSwitchCmd | String | ✗ | false | 面板串口SwitchCMD命令 | - |
4.2 UartCircularLog对象配置介绍
此对象用于配置UART循环日志功能
| 属性名 | 数据类型 | 只读 | emitsChangedSignal | 描述 | 示例值 |
|---|---|---|---|---|---|
| Id | U8 | ✓ | false | UART日志ID | - |
| LogDirection | U8 | ✗ | false | 日志方向 | - |
| RxSize | U8 | ✗ | false | 接收缓冲区大小 | - |
| TxSize | U8 | ✗ | false | 发送缓冲区大小 | - |
| IsSysCom | U8 | ✗ | false | 是否系统串口 | - |
| LogEnable | U8 | ✗ | false | 日志使能 | - |
| AutoCollect | U8 | ✗ | false | 自动收集 | - |
| LastOffset | U32 | ✗ | false | 上次偏移量 | - |
| SystemId | U8 | ✓ | false | 系统ID | 255 |
| LogFileName | String | ✗ | false | 日志文件名 | - |
4.3 NandInfo对象配置介绍
此对象用于配置NAND Flash的基本信息
| 属性名 | 数据类型 | 只读 | emitsChangedSignal | 描述 | 示例值 |
|---|---|---|---|---|---|
| VID | U8 | ✓ | false | 厂商ID | - |
| Vendor | String | ✓ | false | 厂商名称 | - |
| LifeThreshold | U8 | ✓ | false | 寿命阈值 | - |
| WriteThreshold | U8 | ✓ | false | 写阈值 | - |
| DftLifeThreshold | U8 | ✓ | false | 默认寿命阈值 | - |
| ProductName | String | ✓ | false | 产品名称 | `` |
| MaxWriteTimes | S16 | ✓ | false | 最大写入次数 | -1 |
| LifeInfoOffset | U16 | ✓ | false | 寿命信息偏移量 | 269 |
4.4 BMCFileSystemCheck对象配置介绍
此对象用于配置BMC文件系统健康检查功能
| 属性名 | 数据类型 | 只读 | emitsChangedSignal | 描述 | 示例值 |
|---|---|---|---|---|---|
| Id | U8 | ✓ | false | 文件系统检查ID | - |
| Enabled | U8 | ✗ | false | 文件系统健康检查使能,状态定义0:禁止;1:使能 | - |
| MountType | U8 | ✗ | false | 数据分区挂载方式,0:Read-Write;1:Read-Only | - |
4.5 SerialSwitchAction对象配置介绍
此对象用于配置串口切换动作的寄存器关联
| 属性名 | 数据类型 | 只读 | emitsChangedSignal | 描述 | 示例值 |
|---|---|---|---|---|---|
| SerialSwitchAccessor | U8 | ✓ | false | 串口切换关联第一级寄存器, CPLDValue对应的寄存器 | 255 |
| RemoteAccessor | U8 | ✓ | false | 串口切换关联第二级寄存器 | 255 |
4.6 McuLog对象配置介绍
此对象用于配置MCU日志相关参数
| 属性名 | 数据类型 | 只读 | emitsChangedSignal | 描述 | 示例值 |
|---|---|---|---|---|---|
| SystemId | U8 | ✓ | false | 系统ID | - |
| ValidSlot | Boolean | ✓ | false | 有效Mcu片 | - |
| BoardLogChip | U8[] | ✓ | false | 板载日志芯片 | - |
| GetLenthCmd | U32 | ✗ | false | 读取flash长度命令 | - |
| SetStartPosCmd | U32 | ✗ | false | 设置读取flash起点命令 | - |
4.7 UartDynamicConfig对象配置介绍
此对象用于配置支持动态配置的串口参数
| 属性名 | 数据类型 | 只读 | emitsChangedSignal | 描述 | 示例值 |
|---|---|---|---|---|---|
| SysComId | U8 | ✗ | false | 支持动态配置的输入端口Id, Uart:0~15,Port:16~31 | - |
| RawConfigData | U64 | ✗ | false | 从cpld获取到的原始串口配置数据 | 0 |
| BaudRate | U32 | ✗ | false | 从cpld获取到的串口波特率配置 | 115200 |
| DataBit | U8 | ✗ | false | 从cpld获取到的串口数据位长配置 | 8 |
| ParityBit | U8 | ✗ | false | 从cpld获取到的串口校验开关配置 | 78 |
| StopBit | U8 | ✗ | false | 从cpld获取到的串口停止位配置 | 1 |
| FlowControl | U8 | ✗ | false | 从cpld获取到的串口控制流配置 | 0 |
4.8 NandFlashRecord对象配置介绍
此对象用于记录NAND Flash的历史数据,表类型为PoweroffPer
| 属性名 | 数据类型 | 只读 | emitsChangedSignal | 描述 | 示例值 |
|---|---|---|---|---|---|
| RecordId | U32 | ✓ | false | 记录ID(主键) | - |
| Time | U32 | ✓ | false | 该条数据记录时的时间戳 | - |
| WriteAmount | String | ✓ | false | nandflash写入量 | - |
| RemainingLife | U32 | ✓ | false | nandflash剩余寿命 | - |
| ReservedBlocks | S32 | ✓ | false | 剩余预留块 | - |
| BadBlocks | S32 | ✓ | false | 坏块数量 | - |
| EraseCount | S32 | ✓ | false | 擦除次数 | - |
5 高频常见问题与关键日志介绍
5.1 NAND Flash寿命监控告警
关键日志: NAND Flash寿命低于阈值时,系统会产生告警信息。
处理方法:
- 检查
NandInfo对象中的LifeThreshold配置 - 查看
NandFlash资源协作接口的LifeTime和PreEOL属性 - 关注
NandFlashRecord表中的历史数据记录
5.2 SOC温度过高
关键日志: SOC温度超过 TemperatureThreshold 阈值时触发告警。
处理方法:
- 检查SOC资源协作接口的
Temperature和TemperatureThreshold属性 - 根据需要调整
CoreEnableTemp和CoreDisableTemp配置 - 当温度过高时,SOC可能自动关闭部分核心以降低温度
5.3 串口连接状态异常
关键日志: 串口连接状态与预期不符时产生告警。
处理方法:
- 检查
SerialManagement资源协作接口的连接状态 - 验证
RetainedPolicy配置(掉电保留/复位保留) - 检查
CPLDValue和ConnectMode配置是否正确