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

📋 文档信息

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

📋 变更历史

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

🎯 类概览

VrdPower类 是BMC固件中用于管理VR电源供电区域的配置类。该类通过继承VrdChip对象,提供了详细的电源供电区域类型、CPU归属和Die区域配置,主要用于新基础板的VRD电源精细化管理。

状态: 🟢 活跃维护中
适用范围: VR电源供电区域管理、新基础板VRD配置
依赖组件: VrdChip、VrdMgmt、新基础板SR配置


📊 属性定义详表

必选属性

属性名类型默认值取值范围动态关联描述使用场景
@Parent软件NANA继承VrdChip对象,指定归属哪个对象。新基础板sr需配置用于主板VRD电源配置
SystemId硬件NAU8此对象归属第几个host,对于单主服务器也不需要配置。新基础板sr需配置用于主板VRD电源配置
CpuId硬件NAU8是进行说明CPU主板的第几个PCU,这个VRD归属cpu1的就配置为1,归属CPU2的就配置为2,以此类推。新基础板sr需配置用于主板VRD电源配置
Type硬件NAU8电源供电区域类型, 0: Core, 1: Uncore, 2: DDr, 3: Nimbus, 4: VDDQ。新基础板sr需配置用于主板VRD电源配置
DieId硬件NAU8电源供电die区域, 0: NA, 1: TA, 2: NB, 3: TB, 255: 不涉及。新基础板sr需配置用于主板VRD电源配置

🔗 动态关联机制

父对象继承

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配置的唯一性

📚 相关文档