general_hardware
更新时间: 2025/12/31
在Gitcode上查看源码

功能简介

general_hardware是 openUBMC 系统中负责通用硬件管理的核心组件,主要用于管理天池板卡以及板卡中的各种固件。该组件为新手提供了完整的硬件抽象层,让开发者能够轻松理解和操作各种硬件设备,具体管理的功能有:

  • 天池板卡管理:管理符合天池规范的各类板卡(ExpBoard、CpuBoard、NPUBoard等)
  • 固件升级管理:支持 MCU、VRD、CPLD、FPGA、Retimer、安全模块等固件升级
  • DPU卡管理:专门管理 DPU 智能网卡的硬件属性
  • GPU、NPU管理:提供 GPU、NPU (神经网络处理单元) 设备的完整管理能力
  • 制造测试接口:为生产环境提供硬件测试和验证功能

🏗️ 架构设计

shell
general_hardware
├── 服务层 (Service Layer)
   ├── main.lua - 服务入口点
   └── general_hardware_app.lua - 主应用逻辑
├── 管理层 (Management Layer)  
   ├── unit_manager/ - 天池板卡管理
   ├── dpu_service/ - DPU卡管理
   ├── gpu_service/ - GPU管理
   ├── mcu/ - MCU固件管理
   └── sr_upg_service/ - 硬件自描述信息升级服务
└── 协议层 (Protocol Layer)
    ├── protocol/ - 通信协议实现
    └── hardware_config/ - 硬件配置

📁 核心目录结构

shell
src/
├── lualib/                              # 核心业务逻辑库
   ├── general_hardware_app.lua         # 主应用入口
   ├── unit_manager/                   # 天池板卡管理
   ├── unit_manager.lua            # 板卡对象管理器 (对象的增加、删除)
   └── class/                      # 板卡类定义
       ├── unit/                   # 基础板卡类
   ├── unit.lua            # 组件基类 (继承unit类)
   ├── bcu/               # BCU基础计算单元
   └── cpu_board.lua   # CPU基础板,对bcu类的继承
   ├── exu/               # EXU扩展单元  
   ├── acu/               # ACU加速计算单元
   ├── clu/               # CLU类型板卡
   ├── ieu/               # IEU IO扩展单元
   ├── peu/               # PEU类型板卡
   ├── psu/               # PSU类型板卡
   └── seu/               # SEU类型板卡
       └── logic_fw/              # CPLD和FPGA逻辑固件管理
           ├── fw_init.lua         # CPLD固件信息初始化
           ├── cpld_chip.lua       # CPLD芯片管理
           ├── signal.lua          # 逻辑固件升级信号处理
           ├── comm_defs.lua       # 公共定义
           ├── upgrade/            # CPLD升级相关
   ├── fw_upgrade.lua  # 对cpld升级各阶段流程的处理
   ├── process.lua     # 对cpld升级主流程的处理(jtag链路)
   ├── iic_process.lua # 对cpld升级主流程的处理(iic链路)
   ├── drivers_api.lua # 对cpld版本信息的处理
   ├── fw_cfgs.lua     # 对升级包cfgs文件的处理,升级初始化阶段使用
   └── valid.lua       # 升级生效流程
           └── fpga/               # FPGA管理
               ├── fpga_package.lua    # 对fpga升级包的处理
               ├── fpga_process.lua    # 对fpga升级主流程的处理
               ├── fpga_self_test.lua  # 对fpga自检的处理(用来检测fpga在位状态)
               ├── fpga_signal.lua     # 对fpga升级信号交互流程的处理
               └── fpga_upgrade.lua    # 对启动阶段fpga自加载的处理
   ├── dpu_service/                   # DPU卡管理
   ├── dpu_service.lua            # dpu卡对象的管理
   ├── dpu_object.lua             # 管理dpu卡的对象
   ├── dpu_upgrade_object.lua     # dpu卡相关mcu、cpld、vrd的升级
   ├── dpu_ipmi.lua              # dpu相关IPMI的接口
   ├── dpu_enums.lua             # 存放dpu相关的常量
   └── utils.lua                 # dpu卡相关的通用函数
   ├── gpu_service/                   # GPU管理
   ├── gpu_service.lua            # gpu整体的管理
   ├── gpu_object.lua             # 管理gpu的对象
   ├── gpu_ipmi.lua              # gpu相关IPMI的接口
   └── fructl_handler.lua        # 上下电相关接口
   ├── mcu/                          # MCU固件管理
   ├── upgrade/
   ├── mcu_upg_exe.lua       # 升级最上层接口,管理总体升级流程,包括并行升级、mutihost升级
   ├── mcu_upg_service.lua   # 主升级任务
   ├── smbus_interface.lua   # 基于SMBUS协议实现升级接口
   └── smc_interface.lua     # 基于SMC协议实现升级接口
   ├── mcu_object.lua            # 实现MCU固件对象的基本类型
   ├── smbus_mcu_object.lua      # 基于smbus协议通信的MCU固件对象
   ├── smc_mcu_object.lua        # 基于smc协议通信的MCU固件对象
   └── mcu_service.lua           # 管理MCU固件对象
   ├── sr_upg_service/               # 硬件自描述信息升级服务
   ├── class/
   ├── sr_upgrade.lua        # 基于升级对象提供基础能力
   └── sr_upgrade_with_protect_chip.lua # 继承sr_upgrade,使用smbus进行eeprom的开关写保护
   └── sr_upg_service.lua        # SR升级主任务
   ├── vrd/                          # VRD管理 (依赖MCU的VRD)
   ├── vrd_manager.lua           # vrd管理对象的增加、删除
   ├── vrd_mgmt_obj.lua          # 更新vrd_mgmt的信息
   └── vrd_object.lua            # 从imu获取vrd的信息
   ├── independent_vrd/              # 独立VRD管理 (不依赖MCU)
   ├── ind_vrd_service.lua       # 独立VRD管理服务
   └── chip/
       ├── vrd_upgrade.lua       # 独立VRD升级实现
       └── mp2882.lua           # MP2882芯片支持
   ├── retimer/                      # Retimer管理
   ├── agent/                    # 实现器件访问的代理能力,封装属性读取及解析,提供定时任务刷新Retimer对象属性
   ├── retimer_agent_5902l.lua     # Retimer对象管理,收到Retimer后关联器件访问代理,启动定时任务
   └── retimer_agent_M88RT51632.lua # retimer agent对象,关联chip器件访问,提供定时任务刷新Retimer对象属性
   └── upgrade/                  # Retimer升级功能实现
       ├── retimer_upg_5902l.lua # 5902L Retimer升级
       └── retimer_upg_service.lua # Retimer升级公共服务入口
   ├── security_module/              # 安全模块管理
   ├── security_object.lua       # 提供安全模块对象属性的获取和设置接口
   └── security_service.lua      # 对象的增加、删除,用于接收上报的信息,并向外提供IPMI接口
   ├── protocol/                     # 实现和封装器件访问相关的协议,对外提供读写接口
   ├── smbus_5902.lua           # 实现5902L器件访问的SMBUS协议,包括读写接口及芯片Idle状态等待
   └── smbus_M88RT51632.lua     # 实现M88RT51632器件访问的SMBUS协议,包括读取温度、版本信息等接口
   └── hardware_config/              # 硬件配置
       └── Tesla_T4.lua             # smbus_postbox协议
└── service/
    └── main.lua                     # 服务启动入口
manufacture/                         # 装备测试接口
├── general_hardware_manufacture_app.lua # 装备测试总服务
├── hw_channel_test.lua              # 硬件链路测试
├── jtag_test.lua                    # jtag链路测试
├── vrd_upgrade_sim.lua              # 模拟vrd升级接口
├── chipv1/                          # 芯片V1版本相关
   └── eye_diagram.lua              # 眼图测试
└── chipv2/                          # 芯片V2版本相关
    └── eye_diagram.lua              # 眼图测试

关键特性

天池板卡管理

该特性主要是天池板卡各种属性的显示以及BMC与板卡逻辑之间的交互,src目录下天池组件管理主要代码位置及实现功能如下:

shell
Unit (基类)
├── BCU (Basic Computing Unit)
   └── CpuBoard - CPU基础板
├── EXU (Extension Unit)  
   └── ExpBoard - 扩展板卡
├── ACU (Acceleration Unit)
   └── NpuBoard - NPU神经网络处理板
├── IEU (IO Extension Unit)
   └── RiserCard - IO组件/转接卡
└── ...其他板卡类型

板卡基类提供了所有天池板卡的统一管理功能:

核心功能:

  • 版本管理:PCB版本自动识别转换 (PcbID转PcbVersion)
  • 逻辑版本更新:Logic版本ID格式化处理 (高4位.低4位)
  • MCU版本监控:定时获取和更新MCU固件版本
  • CPLD自检:通过写入0x55/0xaa回读确定CPLD通信状态
  • 固件监听:监听firmware版本变化并同步更新属性
  • 对象引用管理:管理MCU和SMC芯片对象引用

关键特性:

  • 统一接口:为所有板卡类型提供统一的属性和方法接口
  • 版本转换:自动将硬件ID转换为人类可读的版本格式
  • 状态监控:实时监控板卡硬件状态和通信健康度
  • 容错机制:包含超时重试和错误处理逻辑

固件管理

固件升级管理

固件升级管理是 general_hardware 的另一个核心功能,提供完整的固件升级生命周期管理。

升级架构

shell
Platform firmware_mgmt (统一管理层)
├── RPC接口
├── 升级包传输与解压
├── 升级阶段信号广播
└── general_hardware (具体执行层)
    ├── MCU 升级
    ├── VRD 升级  
    ├── CPLD 升级
    ├── CSR 升级
    ├── FPGA 升级
    └── Retimer 升级

支持的固件类型

固件类型描述升级协议
MCU微控制器固件SMC/SMBUS
VRD电压调节器固件SMC
CPLD复杂可编程逻辑器件JTAG/IIC
CSR硬件自描述信息EEPROM
FPGA现场可编程门阵列专用协议
Retimer信号调理芯片SMBUS

CSR升级

CSR (Self-Description Record) 升级是硬件自描述信息的升级过程:

shell
sr_upg_service/
├── class/
   ├── sr_upgrade.lua                    # CSR升级基础类
   └── sr_upgrade_with_protect_chip.lua # 带写保护的CSR升级
└── sr_upg_service.lua                   # CSR升级主服务
  • 对应了sr文件中的SRUpgrade对象,其中UID对应V2的BoardID,根据UID进行升级的匹配;StorageChip负责具体数据的写入;WriteProtect负责写保护的开关

    "SRUpgrade_1": {
                "UID": "00000001020302031825",
                "Type": "BCU",
                "Version": "1.39",
                "StorageChip": "#/Eeprom_BCU",
                "SoftwareId": "HWSR-BC83AMDA",
                "WriteProtect": "#/Accessor_BCUWP.Value"
            },
  • SR升级时会遍历环境上的SR升级对象,每个升级对象都会根据UID到升级文件目录下寻找是否有对应的升级文件(UID.sr文件),如果有则启动升级,将升级文件写到对应eeprom中,升级流程图如下:

  • 具体升级流程:
  1. 匹配检查 - 根据 UID 查找对应的升级文件
  2. 写保护关闭 - 解除 EEPROM 写保护
  3. 头文件写入 - 写入升级文件头信息
  4. 数据写入 - 按偏移写入具体升级数据
  5. 写保护开启 - 重新启用写保护

MCU升级

src目录下MCU管理主要代码位置及实现功能如下:

shell
mcu/
├── upgrade/
   ├── mcu_upg_exe.lua         # 升级执行器 (并行/多主机升级)
   ├── mcu_upg_service.lua     # 升级主服务
   ├── smbus_interface.lua     # SMBUS协议升级接口
   └── smc_interface.lua       # SMC协议升级接口
├── mcu_object.lua              # MCU对象基类
├── smbus_mcu_object.lua        # SMBUS协议MCU对象
├── smc_mcu_object.lua          # SMC协议MCU对象
└── mcu_service.lua             # MCU管理服务

类继承关系:

shell
McuObject (基类)
├── SmbusMcuObject  - SMBUS协议通信
└── SmcMcuObject     - SMC协议通信
  • MCU类图:

    升级主任务流程:

    1. 状态检查 - 确认MCU处于空闲或升级失败状态
    2. 通道初始化 - 建立升级通信通道
    3. 文件传输 - 发送升级固件文件
    4. 启动升级 - 触发MCU内部升级过程
    5. 状态轮询 - 定期查询升级进度
    6. 完成确认 - 发送升级结束命令
    7. 版本更新 - 更新固件版本信息
  • MCU升级流程图

VRD升级

VRD (Voltage Regulator Device) 升级支持两种不同的升级方式:

1. 依赖MCU的VRD升级

升级特点:

  • 协议复用:使用与MCU相同的SMC协议和命令字
  • 代理升级:通过MCU代理执行VRD固件升级
  • 延迟生效:支持缓存升级,系统下电后生效

升级时序:

系统运行时:
1. 接收升级请求
2. 缓存升级文件到内存
3. 注册生效信号到firmware_mgmt

系统下电时:
4. firmware_mgmt发送生效通知
5. 从缓存读取升级文件
6. 通过MCU执行VRD升级
7. 完成升级并更新版本

2. 独立VRD升级 (independent_vrd)

代码结构:

shell
independent_vrd/
├── ind_vrd_service.lua          # 独立VRD管理服务
└── chip/
    ├── vrd_upgrade.lua          # 独立VRD升级实现
    └── mp2882.lua              # MP2882芯片支持

升级特点:

  • 通过CPLD升级:使用CPLD进行VRD固件升级
  • SMC协议:保持相同的SMC协议
  • 延迟生效:与VRD升级一样,支持缓存升级,系统下电后生效
  • 独立管理:拥有独立的升级服务和对象管理,但升级逻辑保持一致

注意事项:

  • 同样作为二级电源控制器,系统运行时不能直接升级
  • 主要区别在于管理方式的独立性,而非升级机制的改变
  • 升级过程中需要确保电源稳定性

CPLD和FPGA升级

src目录下天池组件管理主要代码位置及实现功能如下:

shell
logic_fw/
├── fw_init.lua              # CPLD固件信息初始化
├── cpld_chip.lua            # CPLD芯片管理
├── signal.lua               # 逻辑固件升级信号处理
├── upgrade/                 # CPLD升级实现
   ├── fw_upgrade.lua       # CPLD升级各阶段流程处理
   ├── process.lua          # CPLD升级主流程 (JTAG链路)
   ├── iic_process.lua      # CPLD升级主流程 (IIC链路)
   ├── drivers_api.lua      # CPLD版本信息处理
   ├── fw_cfgs.lua          # 升级包配置文件处理
   └── valid.lua            # 升级生效流程
└── fpga/                    # FPGA管理
    ├── fpga_package.lua     # FPGA升级包处理
    ├── fpga_process.lua     # FPGA升级主流程处理
    ├── fpga_self_test.lua   # FPGA自检处理 (检测在位状态)
    ├── fpga_signal.lua      # FPGA升级信号交互流程
    └── fpga_upgrade.lua     # FPGA启动阶段自加载处理

CPLD升级特点:

  • 双链路支持:支持JTAG和IIC两种升级链路
  • 分阶段处理:升级准备、文件传输、生效验证等阶段化管理
  • 版本管理:自动获取和更新CPLD版本信息
  • 固件注册:将CPLD固件信息注册到系统固件清单

FPGA升级特点:

  • 包管理:处理FPGA升级包的解析和验证
  • 自检机制:检测FPGA在位状态和功能正常性
  • 自加载:支持系统启动时FPGA固件自动加载
  • 信号交互:处理FPGA升级过程中的信号通信

固件基本管理

VRD管理

VRD基础管理主要负责电源相关信息的监控:

功能特性:

  • 电源监控:实时电源状态获取
  • 电压监控:电压值实时监测
  • 温度监控:温度传感器数据获取
  • 告警支持:异常状态告警上报

代码结构:

shell
vrd/
├── vrd_manager.lua      # VRD管理器 (对象增删)
├── vrd_mgmt_obj.lua     # VRD管理对象 (信息更新)
└── vrd_object.lua       # VRD对象 (IMU数据获取)

数据获取方式:

  • 通过IPMI协议从IMU (Intelligent Management Unit) 获取VRD相关信息
  • 支持传感器数据的实时更新和告警处理

Retimer管理

Retimer (信号调理芯片) 管理提供高速信号链路的管理功能:

支持的Retimer类型:

  • SD5902L
  • M88RT51632

代码结构:

shell
retimer/
├── agent/                          # Retimer代理管理
   ├── retimer_agent_5902l.lua     # SD5902L代理
   ├── retimer_agent_M88RT51632.lua # M88RT51632代理
   └── retimer_agent_M88RT51632_utils.lua # M88RT51632工具函数
├── upgrade/                        # Retimer升级功能
   ├── retimer_upg_5902l.lua       # SD5902L升级
   └── retimer_upg_service.lua     # 升级服务入口
└── retimer_M88RT51632.lua          # M88RT51632对象管理

protocol/
├── smbus_5902.lua                  # SD5902L SMBUS协议
└── smbus_M88RT51632.lua            # M88RT51632 SMBUS协议

工作流程:

  1. 硬件发现 - BMC启动后等待硬件自发现
  2. 对象创建 - 创建Retimer对象并启动属性刷新任务
  3. 状态监控 - 监控SmBiosStatus状态变化
  4. 属性更新 - 更新DieId、版本、温度等信息
  5. 数据访问 - 通过SMBUS协议读写Retimer器件数据

安全模块管理

安全模块管理提供可信计算模块的管理功能:

代码结构:

shell
security_module/
├── security_object.lua    # 安全模块对象 (属性获取和设置)
└── security_service.lua   # 安全模块服务 (对象管理和IPMI接口)

工作流程:

  1. 初始化阶段

    • 向ipmi_core注册IPMI命令"Report Trusted Module Info"
    • 等待BIOS上报安全模块信息
  2. 对象管理阶段

    • 从硬件自发现获取安全模块对象信息
    • 恢复持久化属性,无数据时使用默认值
    • 将对象信息同步到资源协作接口
  3. 信息更新阶段

    • 接收ipmi_core传递的Trusted Module信息
    • 更新安全模块对象属性
    • 同步更新资源协作接口信息
  4. 服务提供阶段

    • 对外提供安全模块对象查询能力
    • 支持IPMI接口访问

流程图如下:

  • 启动阶段,硬件自发现将包含安全模块对象的数据以ObjectGroup分组上树;general_hardware向ipmi_core注册IPMI命令Report Trusted Module Info,等待BIOS上报安全模块信息
  • general_hardware从硬件自发现获取组件对象信息,对安全模块对象数据恢复持久化属性,无持久化数据时使用默认值,并上资源协作接口
  • general_hardware收到ipmi_core传递的Trusted Module info信息,更新到安全模块对象属性,同步资源协作接口
  • general_hardware上树安全模块对象后,对外提供安全模块对象查询能力

DPU卡管理

DPU (Data Processing Unit) 卡管理提供智能网卡的硬件管理功能:

功能特性

  • 基本属性管理:DPU卡硬件信息获取和更新
  • 固件升级:MCU、CPLD、VRD等逻辑单元升级
  • 日志管理:MRC日志、MCU日志、UEFI日志收集
  • 串口管理:串口切换和录音功能
  • 告警上报:硬件状态异常告警

代码结构:

shell
dpu_service/
├── dpu_service.lua         # DPU管理主服务
├── dpu_object.lua          # DPU对象管理
├── dpu_upgrade_object.lua  # DPU升级对象
├── dpu_ipmi.lua           # DPU IPMI接口
├── dpu_enums.lua          # DPU相关常量
└── utils.lua              # DPU工具函数
  • CPLD升级流程图:

GPU管理

src目录GPU信息管理主要代码位置及实现功能如下:

shell
gpu_service/
├── gpu_service.lua         # GPU管理主服务
├── gpu_object.lua          # GPU对象管理
├── gpu_ipmi.lua           # GPU IPMI接口
└── fructl_handler.lua     # 电源控制接口

hardware_config/
└── Tesla_T4.lua           # Tesla T4硬件配置

当前GPU管理仅支持smbus_postbox协议(主要是Tesla_T4卡),通过smbus_postbox协议从硬件获取信息,通过IPMI命令从IMU获取相关信息

SMBPBI协议实现的基本流程如上图。某些命令字(opcode)可能需要先写入数据寄存器,再写入命令寄存器。执行结果可能既需要从数据寄存器取出,又要从另外一个数据寄存器取出。

制造测试接口

制造测试接口为生产环境提供硬件验证功能:

shell
manufacture/
├── general_hardware_manufacture_app.lua  # 装备测试总服务
├── hw_channel_test.lua                   # 硬件链路测试
├── jtag_test.lua                         # jtag链路测试
├── vrd_upgrade_sim.lua                   # 模拟vrd升级接口
├── chipv1/                              # 芯片V1版本相关
   └── eye_diagram.lua                  # 眼图测试
└── chipv2/                              # 芯片V2版本相关
    └── eye_diagram.lua                  # 眼图测试

在sr对象中会配置对应的dft测试对象,对象分发后存储在app中,当前支持以下几种:

lua
local DFT_SWITCH = {
    ['DftMemoryVolt'] = 1,    -- 内存电压测试
    ['Dft12V0Vlot'] = 1,      -- 12V电压测试
    ['Dft5V0Vlot'] = 1,       -- 5V电压测试
    ['Dft3V3Vlot'] = 1,       -- 3.3V电压测试
    ['DftCardPresence'] = 1,  -- 板卡在位测试
    ['DftButtonCell'] = 1,    -- 纽扣电池测试
    ['DftFlash'] = 1,         -- Flash存储测试
    ['DftJTAG'] = 1,          -- JTAG链路测试
    ['DftCpld'] = 1,          -- CPLD测试
    ['DftIOTest'] = 1,        -- IO功能测试
    ['DftHwChannel'] = 1      -- 硬件通道测试
}

测试流程:

  1. Start - 启动指定类型的DFT测试
  2. Stop - 停止正在进行的测试
  3. Result - 获取测试结果

对外接口

资源协作接口

shell
DPUCardSetDpuNmi                    # 设置SDI卡的NMI中断 
DPUCardReset                        # DPU卡重启
DPUCardSetPowerState                # 设置DPU卡系统上下电状态
NpuBoardsSetNpuPowerCap             # 设置模组功耗封顶
NpuBoardReset                       # NPU卡重启
DPUCardSetBootOption                # 设置DPU卡SD100启动项

IPMI接口

IPMI接口按功能分类组织,提供标准的硬件管理协议支持:

系统信息管理 (NetFn: 06h)

  • SetSystemInfoParameters (0x58) - 设置系统信息参数
  • GetSystemInfoParameters (0x59) - 获取系统信息参数

硬件管理接口 (NetFn: 30h)

制造测试接口 (Cmd: 90h)

  • SetCpldChannel - 设置CPLD通信通道(制造测试)
  • GetCpldDeviceidInfo - 获取CPLD设备ID和厂家信息(制造测试)
  • GetEyeDiagram - 眼图测试接口(制造测试)
  • GetPCIeEyeDiagram - PCIe眼图测试接口(制造测试)

安全模块管理 (Cmd: 92h)

  • ReportTrustedModuleInfo - BIOS上报可信模块信息
  • GetSecurityModuleInfo - 获取安全模块信息

设备管理接口 (Cmd: 93h)

DPU管理功能:

  • SetDpuBootOption / GetDpuBootOption - DPU启动选项管理
  • SetDpuPowerState - 设置DPU卡电源状态
  • SetDpuNMI - 设置DPU卡NMI中断
  • RestSDI - 重启SDI卡
  • SetDpuResetLinkage / GetDpuResetLinkage - DPU复位联动策略管理
  • SetDpuPxeOption / GetDpuPxeOption - DPU PXE选项管理
  • SetDpuSecureBoot / GetDpuSecureBoot - DPU安全启动管理
  • SetDpuIp / GetDpuStorageIP - DPU存储网络IP配置
  • GetDpuSystemStatus - 查询DPU系统启动状态
  • GetAllDpuEPInitStatus - 获取所有DPU EP初始化状态
  • SetDpuSolSwitch / GetDpuSolSwitch - DPU串口切换管理
  • SetDpuBiosLogLevel / GetDpuBiosLogLevel - DPU BIOS日志等级管理
  • SetHttpsEnable / GetHttpsEnable - DPU HTTPS功能开关管理

GPU管理功能:

  • GetGpuChipInfo - 获取GPU芯片类型信息

CPU管理功能:

  • GetCpuModulePower - 获取CPU模块功耗信息

通用设备功能:

  • SetDeviceAction - 设备操作控制

资源协作接口

1.ExpBoard

路径名:"/bmc/kepler/Systems/${SystemId}/Boards/ExpBoard/${Id}"
接口:"bmc.kepler.Systems.Board"

属性:

字段说明约束单位互斥关系依赖关系格式样例唯一性要求兼容性要求
Slot槽位号--------U8----
Number逻辑编号--------U8----
Position容器信息(如:chassis)--------String----
Name单板名--------String----
ProductName产品名--------String----
SilkText槽位丝印--------String----
Manufacturer厂商--------String----
Description单板描述--------String----
BoardID单板ID--------U16----
PartNumber部件编码--------String----
PcbVersionPCB版本号--------String----
LogicVersion逻辑版本号(cpld)--------String----
SRVersionSR版本号--------String----
MCUVersionMCU版本号--------String----
PSIPVersion封装电源版本号--------String----
LogicUnit逻辑位号(U位号)--------U32----
PowerWatts功率--------U32----
RunningStatus监控cpld和mcu的运行状态--------U8----
FruID关联Fru对象的FruID属性--------U8----
DeviceName板卡丝印信息(如:PCIe Riser1)--------String----
BoardType单板类型--------String----
NodeId资源id,由容器信息Position和设备丝印名称DeviceName拼接而成,如:chassisPCIeRiser1--------String----
RefComponent引用到Component对象--------String----
RefFru引用到Fru对象--------String----
SerialNumber序列号--------String----
CpldStatusCpld状态--------U8----
MultiLogicVersion单板所有逻辑版本号,key:cpld名,value:逻辑版本号--------Dictionary----
MultiLogicUnit单板所有逻辑位号,key:cpld名,value:逻辑位号--------Dictionary----
接口 "bmc.kepler.Systems.Board.Unit"

属性:

字段说明约束单位互斥关系依赖关系格式样例唯一性要求兼容性要求
UID组件唯一标识--------String----
Type组件类型(枚举值:EXU,BCU,SEU,CLU,SEU)--------String----
HWSRVersion天池组件Eeprom中的sr版本号--------String----
CurrentUpgradeStatus当前升级状态,0表示未在升级,1:mcu正在升级,2cpld正在升级--------String----

2.CpuBoard

路径名:"/bmc/kepler/Systems/${SystemId}/Boards/CpuBoard/${Id}"
接口:"bmc.kepler.Systems.Board"

属性同ExpBoard对象

接口:"bmc.kepler.Systems.Board.Unit"

属性同ExpBoard对象

接口:"bmc.kepler.Systems.Board.CpuBoard"

属性:

字段说明约束单位互斥关系依赖关系格式样例唯一性要求兼容性要求
Platform所属平台类型UID--------U8----
BIOSVersionBIOS版本号,一host对应多个bcu的场景下只有主bcu显示--------String----

3.PsuBoard

路径名:"/bmc/kepler/Systems/${SystemId}/Boards/NpuBoard/${Id}"
接口:"bmc.kepler.Systems.Board"

属性同ExpBoard对象

接口:"bmc.kepler.Systems.Board.Unit"

属性同ExpBoard对象

4.PeuBoard

路径名:"/bmc/kepler/Systems/${SystemId}/Boards/PeuBoard/${Id}"
接口:"bmc.kepler.Systems.Board"

属性同ExpBoard对象

接口:"bmc.kepler.Systems.Board.Unit"

属性同ExpBoard对象

5.HddBackplane

路径名:"/bmc/kepler/Systems/${SystemId}/Boards/HddBackplane/${Id}"
接口:"bmc.kepler.Systems.Board"

属性同ExpBoard对象

接口:"bmc.kepler.Systems.Board.Unit"

属性同ExpBoard对象

接口:"bmc.kepler.Systems.HddBackplane"

属性:

字段说明约束单位互斥关系依赖关系格式样例唯一性要求兼容性要求
StartSlot指定硬盘起始槽位号--------U8----

6.FanBoard

路径名:"/bmc/kepler/Systems/${SystemId}/Boards/FanBoard/${Id}"
接口:"bmc.kepler.Systems.Board"

属性同ExpBoard对象

接口:"bmc.kepler.Systems.Board.Unit"

属性同ExpBoard对象

7.Boards

路径名:"/bmc/kepler/Systems/${SystemId}/Boards"
接口:"bmc.kepler.Manufacture.Simulate"
字段说明约束单位互斥关系依赖关系格式样例唯一性要求兼容性要求
VrdUpgradeSimulated模拟VRD升级功能(0:正常升级,1:模拟升级)--------U8----
接口:"bmc.kepler.Systems.Board"

属性同ExpBoard对象

8.RiserCard

路径名:"/bmc/kepler/Systems/${SystemId}/Boards/RiserCard/${Id}"
接口:"bmc.kepler.Systems.Board"

属性同ExpBoard对象

接口:"bmc.kepler.Systems.Board.Unit"

属性同ExpBoard对象

9.M2TransferCard

路径名:"/bmc/kepler/Systems/${SystemId}/Boards/M2TransferCard/${Id}"
接口:"bmc.kepler.Systems.Board"

属性同ExpBoard对象

接口:"bmc.kepler.Systems.Board.Unit"

属性同ExpBoard对象

接口:"bmc.kepler.Systems.HddBackplane"

属性同HddBackplane对象

接口:"bmc.kepler.Systems.Board.M2"

属性:

字段说明约束单位互斥关系依赖关系格式样例唯一性要求兼容性要求
M2SlotPresenceM.2盘在位情况,每个bit表示一个槽位,bit0表示SSD1在位,bit1表示SSD2在位--------U8----
M2SlotMaxCountM.2盘的上限--------U8----

10.BoardNICCard

路径名:"/bmc/kepler/Systems/${SystemId}/Boards/NICCard/${Id}"
接口:"bmc.kepler.Systems.Board"

属性同ExpBoard对象

接口:"bmc.kepler.Systems.Board.Unit"

属性同ExpBoard对象

接口:"bmc.kepler.Systems.NetworkAdapter"

属性:

字段说明约束单位互斥关系依赖关系格式样例唯一性要求兼容性要求
ID网卡ID--------String----
SystemID系统ID--------String----
Name网卡型号名称--------String----
DisplayName网卡显示名称--------String----
Manufacturer厂商名称--------String----
Description网卡描述--------String----
Position网卡容器信息--------String----
DeviceLocator网卡丝印信息--------String----
Type网卡类型--------U8----
NetworkPortCount网口个数--------U8----
Model芯片型号--------String----
ChipVendor芯片供应商--------String----
ModelDescription芯片型号描述--------String----
ChipManufacturer芯片制造商--------String----
DriverName驱动名称--------String----
DriverVersion驱动版本--------String----
SlotNumber槽位号--------U8----
NetDevFuncCapabilities网卡支持的协议,0:Disabled 1:Ethernet 2:FC 4:iSCSI 8:FCoE 16:OPA 32:IB--------U8----
RootBDF网卡BDF信息--------String----
FirmwareVersion固件版本--------U16----
VendorID厂商ID--------String----
DeviceID设备ID--------String----
SubsystemVendorID子系统厂商ID--------String----
SubsystemDeviceID子系统设备ID--------String----
BoardID单板ID--------U16----
BoardName单板名称--------String----
BoardIDHex十六进制单板ID--------String----
ComponentUniqueID组件唯一标识--------String----
PCBVersionPCB版本--------String----
AssociatedResource网卡资源归属--------String----
SupportedMctp网卡BDF信息--------Boolean----
HotPluggable网卡是否支持热插拔--------Boolean----
ReadyToRemove热拔出是否已准备好--------Boolean----
AttentionHotPlugState热插拔状态:0 - 不可操作;1 - 可拔出;2 - 可插入;其他 - 未知--------Boolean----
SerialNumber序列号--------String----
PreviousSerialNumber更换前的序列号--------String----
TemperatureCelsius芯片温度--------S16----
TemperatureStatus芯片温度状态:0 - 正常;1 - 失效--------U8----
MaxOperatingTemperatureCelsius序列号--------U16----
LLDPSupported网卡是否支持LLDP--------Boolean----
FruId网卡电子标签--------U8----
PredictiveFault预测故障标志位--------U16----
DiagnosticFault故障诊断定位标志位--------U8----
ReplacedFlag网卡更换标志位--------U8----
SupportedLLDP网卡是否支持LLDP--------Boolean----
ParentCardSlotId关联上一级卡的槽位号--------U8----
PfMacInfoPhysical Function Mac信息--------Array----
BandwidthThresholdPercent网络带宽占用率门限--------U16----
NodeId网卡NodeId--------String----

11.BoardPCIeCard

路径名:"/bmc/kepler/Systems/${SystemId}/Boards/PCIeCard/${Id}"
接口:"bmc.kepler.Systems.Board"

属性同ExpBoard对象

接口:"bmc.kepler.Systems.Board.Unit"

属性同ExpBoard对象

接口:"bmc.kepler.Systems.NetworkAdapter"

属性同BoardNICCard对象

接口:"bmc.kepler.Systems.NetworkAdapter.NetworkAdapterMetrics"

属性:

字段说明约束单位互斥关系依赖关系格式样例唯一性要求兼容性要求
LinkWidthCapability网卡支持的最大带宽能力--------String----
LinkSpeedCapability网卡支持的最大速率能力--------String----
LinkWidth网卡实际带宽--------String----
LinkSpeed网卡实际速率--------String----
SFPMaxTemperatureCelsius光模块最大温度,用于调速,单位:摄氏度--------S16----

12.ChassisBMC

路径名:"/bmc/kepler/Systems/${SystemId}/Boards/ChassisBMC/${Id}"
接口:"bmc.kepler.Systems.Board"

属性同ExpBoard对象

接口:"bmc.kepler.Systems.Board.Unit"

属性同ExpBoard对象

13.VrdMgmt

路径名:"/bmc/kepler/Systems/${SystemId}/VrdMgmt/${Id}"
接口:"bmc.kepler.Systems.VrdMgmt"

属性:

字段说明约束单位互斥关系依赖关系格式样例唯一性要求兼容性要求
SystemId系统ID号--------U8----
CpuId所关联的CPU id--------U8----
Cpu0v9TACoreVrd供电信息,供电区域类型为CORE,DieId为1--------Double----
Cpu0v9TACoreVrd供电信息,供电区域类型为CORE,DieId为1--------Double----
Cpu0v75DDRVDDVrd供电信息,供电区域类型为DDR,无DieId--------Double----
Cpu0v9TBCoreVrd供电信息,供电区域类型为CORE,DieId为3--------Double----
Cpu0v9UncoreVrd供电信息,供电区域类型为UNCORE,无DieId--------Double----
Cpu0v8NADVDDVrd供电信息,供电区域类型为Nimbus,DieId为0--------Double----
Cpu0v8NBDVDDVrd供电信息,供电区域类型为Nimbus,DieId为2--------Double----
Cpu1v1DDRVddqVrd供电信息,供电区域类型为VDDQ,无DieId--------Double----
CpuTACoreTemp临时Vrd供电信息,供电区域类型为CORE,DieId为1--------Double----
CpuDDRVDDTemp临时Vrd供电信息,供电区域类型为DDR,无DieId--------Double----
CpuTBCoreTemp临时Vrd供电信息,供电区域类型为CORE,DieId为3--------Double----
CpuUncoreTemp临时Vrd供电信息,供电区域类型为UNCORE,无DieId--------Double----
CpuNADVDDTemp临时Vrd供电信息,供电区域类型为Nimbus,DieId为0--------Double----
CpuNBDVDDTemp临时Vrd供电信息,供电区域类型为Nimbus,DieId为2--------Double----
CpuDDRVddqTemp临时Vrd供电信息,供电区域类型为VDDQ,无DieId--------Double----
VrdTemperatureCelsiusVrd温度,用作调速--------Double----
Health健康状态--------U8----
Watts功率--------Double----
StatusVrdMgmt状态值,Vrd值为无效值时,Status置为0,有效值时,置位为1--------U8----
接口:"bmc.kepler.Metric"

14.VrdChip

parent:"VrdMgmt"
路径名:":parent/VrdChips/${Id}"
接口:"bmc.kepler.Systems.VrdChip"

属性:

字段说明约束单位互斥关系依赖关系格式样例唯一性要求兼容性要求
Name芯片名称 Type+No--------String----
Vendor芯片厂商--------String----
Type芯片类型--------String----
FirmwareVersion固件版本--------String----

15.VrdPower

路径名:":parent/VrdPowers/${Id}"
接口:"bmc.kepler.Systems.VrdPower"

属性:

字段说明约束单位互斥关系依赖关系格式样例唯一性要求兼容性要求
SystemId系统id--------U8----
CpuIdcpuid,cpu index取值范围为0 ~ n--------U8----
Type电源供电区域类型, 0: Core, 1: Uncore, 2: DDr, 3: Nimbus, 4: VDDQ--------U8----
DieId电源供电die区域, 0: NA, 1: TA, 2: NB, 3: TB, 255: 不涉及--------U8----
Voltage电源电压,单位 V--------Double----
CurrentAmps电源电流,单位 A--------Double----
TemperatureCelsius电源温度,单位℃--------Double----

16.SecurityModule

路径名:"/bmc/kepler/Systems/${SystemId}/SecurityModule/${Id}"
接口:"bmc.kepler.Systems.SecurityModule"

属性:

字段说明约束单位互斥关系依赖关系格式样例唯一性要求兼容性要求
Presence在位状态--------U8----
Health故障状态--------U8----
Protocol控制协议--------String----
Manufacturer厂商名称--------String----
ProtocolVersion协议版本--------String----
FirmwareVersion固件版本--------String----

配置介绍

general_hardware不涉及配置项