CSR配置字典之VrdPower类
更新时间: 2025/07/22
在Gitcode上查看源码

📋 文档信息

字段
文档标题CSR配置指导之VrdPower类
创建日期2024-01-XX
最后更新2024-01-XX
文档版本v1.0
维护人员BMC开发团队
审核状态✅ 已审核

📋 变更历史

版本日期变更内容变更人审核人备注
v1.02024-01-XX初始版本创建开发团队技术负责人首次发布

🎯 类概览

VrdPower 类

属性
类名称VrdPower
功能描述BMC固件中用于管理VR电源供电区域的配置类,通过继承VrdChip对象,提供详细的电源供电区域类型、CPU归属和Die区域配置,主要用于新基础板的VRD电源精细化管理
所属SIG组hardware
所属组件general_hardware
责任人单板管理组
最后更新2024-01-XX
状态🟢 正常运行

📊 属性定义详表

必选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
@ParentString-String-继承VrdChip对象,指定归属哪个对象。新基础板sr需配置主板VRD电源配置"VrdChip_U9"CSR配置软件
SystemIdU8-U8-系统id主板VRD电源配置1CSR配置硬件
CpuIdU8-U8-cpu index取值范围为0 ~ n主板VRD电源配置2CSR配置硬件
TypeU8-U8-电源供电区域类型, 0: Core, 1: Uncore, 2: DDr, 3: Nimbus, 4: VDDQ主板VRD电源配置0CSR配置硬件
DieIdU8-U8-电源供电die区域, 0: NA, 1: TA, 2: NB, 3: TB, 255: 不涉及主板VRD电源配置3CSR配置硬件
VoltageDouble-Double-电源电压,单位 V传感器显示和告警1.03BMC内部设置软件
CurrentAmpsDouble-Double-电源电流,单位 A传感器显示和告警3.25BMC内部设置软件
TemperatureCelsiusDouble-Double-电源温度,单位℃传感器显示和告警41BMC内部设置软件

🔗 动态关联机制

父对象继承

json
{
  "@Parent": "VrdChip_U9"
}

关联说明:

  • @Parent: 指定继承的VrdChip对象
  • 通过父对象继承获取VR芯片管理功能
  • 支持多个VrdPower对象关联同一个VrdChip

供电区域类型映射

json
{
  "Type": 0,  // Core
  "DieId": 1  // TA
}

类型说明:

  • Type 0 (Core): 核心供电区域
  • Type 1 (Uncore): 非核心供电区域
  • Type 2 (DDR): 内存供电区域
  • Type 3 (Nimbus): Nimbus供电区域
  • Type 4 (VDDQ): VDDQ供电区域

DieId说明:

  • 0: NA(不适用)
  • 1: TA(TA区域)
  • 2: NB(NB区域)
  • 3: TB(TB区域)
  • 255: 不涉及

📂 分类标准

软件属性

  • @Parent: 父对象继承关系

硬件属性

  • SystemId: Host系统编号
  • CpuId: CPU物理编号
  • Type: 电源供电区域类型
  • DieId: 电源供电Die区域

📝 配置示例

基础配置

json
{
  "VrdPower_Core": {
    "@Parent": "VrdChip_U9",
    "SystemId": 1,
    "CpuId": 1,
    "Type": 0,
    "DieId": 1
  }
}

多供电区域配置

json
{
  "VrdPower_Core": {
    "@Parent": "VrdChip_U9",
    "SystemId": 1,
    "CpuId": 1,
    "Type": 0,
    "DieId": 1
  },
  "VrdPower_Uncore": {
    "@Parent": "VrdChip_U9",
    "SystemId": 1,
    "CpuId": 1,
    "Type": 1,
    "DieId": 2
  },
  "VrdPower_DDR": {
    "@Parent": "VrdChip_U10",
    "SystemId": 1,
    "CpuId": 1,
    "Type": 2,
    "DieId": 255
  }
}

双CPU配置

json
{
  "VrdPower_CPU1_Core": {
    "@Parent": "VrdChip_CPU1_U9",
    "SystemId": 1,
    "CpuId": 1,
    "Type": 0,
    "DieId": 1
  },
  "VrdPower_CPU2_Core": {
    "@Parent": "VrdChip_CPU2_U10",
    "SystemId": 1,
    "CpuId": 2,
    "Type": 0,
    "DieId": 1
  }
}

完整层级配置

json
{
  "VrdMgmt_1": {
    "SystemId": 1,
    "CpuId": 1
  },
  "VrdChip_U9": {
    "@Parent": "VrdMgmt_1",
    "Name": "VrdChip0"
  },
  "VrdPower_Core": {
    "@Parent": "VrdChip_U9",
    "SystemId": 1,
    "CpuId": 1,
    "Type": 0,
    "DieId": 1
  },
  "VrdPower_Uncore": {
    "@Parent": "VrdChip_U9",
    "SystemId": 1,
    "CpuId": 1,
    "Type": 1,
    "DieId": 2
  }
}

🔧 使用指南

配置步骤

  1. 创建VrdChip对象: 先配置父级VrdChip对象
  2. 设置继承关系: 配置@Parent属性指向VrdChip对象
  3. 配置系统信息: 设置SystemId和CpuId
  4. 配置供电区域: 设置Type和DieId参数
  5. 验证配置: 确保配置与硬件拓扑匹配

最佳实践

  • 新基础板SR必须配置此类
  • 按照硬件供电区域划分配置Type
  • 根据Die物理位置配置DieId
  • 保持配置的层次结构完整性

注意事项

  • 仅适用于新基础板配置
  • 必须先配置VrdChip父对象
  • Type和DieId配置必须与硬件匹配
  • 多CPU系统需要正确配置CpuId

故障排除

  • 继承失败: 检查@Parent指向的VrdChip对象是否存在
  • 供电区域识别错误: 验证Type和DieId配置正确性
  • CPU归属错误: 确认CpuId配置与物理CPU匹配
  • 系统识别错误: 检查SystemId配置的唯一性

📚 相关文档