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

📋 文档信息

项目内容
文档标题ThermTrip类配置字典
版本v1.0
创建日期2025-01-27
最后更新2025-01-27
维护状态✅ 活跃维护

📋 变更历史记录

文档变更记录

版本发布日期变更类型变更内容影响范围维护人员
v1.02025-01-27初始版本创建ThermTrip类配置字典全新文档系统管理员

🎯 类概览

ThermTrip 类

属性
类名称ThermTrip
功能描述CPU过热保护管理,提供CPU过温信号检测、清除和自动上电控制功能,防止高温场景反复上下电
所属SIG组thermal
所属组件thermtrip
责任人热管理组
最后更新2025-01-27
状态🟢 正常运行

📊 属性定义详表

必选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
GetThermTripMixed-0或1Scanner_Cpu1ThermalTripAccessor获取cpu1的过温信号获取cpu1的过温信号"<=/Scanner_Cpu1ThermalTripAccessor.Value"硬件提供硬件
SetThermTripString-0Accessor_Cpu1ClearThermalTripAccessor清除cpu1的过温信号清除cpu1的过温信号"#/Accessor_Cpu1ClearThermalTripAccessor.Value"组件更新硬件
GetThermTrip2Mixed-0或1Scanner_Cpu2ThermalTripAccessor获取cpu2的过温信号获取cpu2的过温信号"<=/Scanner_Cpu2ThermalTripAccessor.Value"硬件提供硬件
SetThermTrip2String-0Accessor_Cpu2ClearThermalTripAccessor清除cpu2的过温信号清除cpu2的过温信号"#/Accessor_Cpu2ClearThermalTripAccessor.Value"组件更新硬件

可选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
FruIDU80U8-FRUID类型用来区分操作域,当前配置成00CSR硬件
ActionsU810或1-1表示高温下电后需要bmc上电;0表示不需要
场景:防止高温场景反复上下电
1表示高温下电后需要bmc上电;0表示不需要1CSR硬件
TimeDelaySecondsU32300U32-高温下电后等待对应时间后再上电,单位为秒高温下电后等待对应时间后再上电,单位为秒300CSR硬件
IsValidMixedtrueBoolean-布尔值,用来区分主片对象和还是从片对象,只支持操作主片布尔值,用来区分主片对象和还是从片对象,只支持操作主片`"$> expr($1 == 1 ? true : false)"`CSR

🔗 动态关联机制

语法规范

使用 <=/xxx#/xxx 格式实现动态关联:

yaml
# 过温信号获取
GetThermTrip: "<=/Scanner_Cpu1ThermalTripAccessor.Value"
GetThermTrip2: "<=/Scanner_Cpu2ThermalTripAccessor.Value"

# 过温信号清除
SetThermTrip: "#/Accessor_Cpu1ClearThermalTripAccessor.Value"
SetThermTrip2: "#/Accessor_Cpu2ClearThermalTripAccessor.Value"

# 槽位判断表达式
IsValid: "${Slot} |> expr($1 == 1 ? true : false)"

关联说明

  • GetThermTrip/GetThermTrip2: 关联Scanner获取CPU过温信号状态
  • SetThermTrip/SetThermTrip2: 关联Accessor实现过温信号清除操作
  • IsValid: 通过表达式判断当前对象是否为主片,仅主片支持操作

📂 分类标准

硬件属性

  • 定义:与CPU过热保护硬件功能直接相关的参数
  • 特点:通常与硬件过温检测和控制机制对应
  • 示例FruID, GetThermTrip, SetThermTrip, GetThermTrip2, SetThermTrip2, Actions, TimeDelaySeconds, IsValid

软件属性

  • 定义:用于逻辑控制和软件管理的参数
  • 特点:由CSR配置管理,用于过热保护逻辑控制
  • 示例:本类中所有属性均为硬件相关,无纯软件属性

📝 配置示例

标准双CPU过热保护配置

json
{
  "ThermTrip": {
    "FruID": 0,
    "GetThermTrip": "<=/Scanner_Cpu1ThermalTripAccessor.Value",
    "SetThermTrip": "#/Accessor_Cpu1ClearThermalTripAccessor.Value",
    "GetThermTrip2": "<=/Scanner_Cpu2ThermalTripAccessor.Value",
    "SetThermTrip2": "#/Accessor_Cpu2ClearThermalTripAccessor.Value",
    "Actions": 1,
    "TimeDelaySeconds": 300,
    "IsValid": "${Slot} |> expr($1 == 1 ? true : false)"
  }
}

单CPU过热保护配置

json
{
  "ThermTrip": {
    "FruID": 0,
    "GetThermTrip": "<=/Scanner_Cpu1ThermalTripAccessor.Value",
    "SetThermTrip": "#/Accessor_Cpu1ClearThermalTripAccessor.Value",
    "GetThermTrip2": "<=/Scanner_Cpu1ThermalTripAccessor.Value",
    "SetThermTrip2": "#/Accessor_Cpu1ClearThermalTripAccessor.Value",
    "Actions": 1,
    "TimeDelaySeconds": 300,
    "IsValid": true
  }
}

快速恢复配置

json
{
  "ThermTrip": {
    "FruID": 0,
    "GetThermTrip": "<=/Scanner_Cpu1ThermalTripAccessor.Value",
    "SetThermTrip": "#/Accessor_Cpu1ClearThermalTripAccessor.Value",
    "GetThermTrip2": "<=/Scanner_Cpu2ThermalTripAccessor.Value",
    "SetThermTrip2": "#/Accessor_Cpu2ClearThermalTripAccessor.Value",
    "Actions": 1,
    "TimeDelaySeconds": 60,
    "IsValid": "${Slot} |> expr($1 == 1 ? true : false)"
  }
}

手动恢复配置

json
{
  "ThermTrip": {
    "FruID": 0,
    "GetThermTrip": "<=/Scanner_Cpu1ThermalTripAccessor.Value",
    "SetThermTrip": "#/Accessor_Cpu1ClearThermalTripAccessor.Value",
    "GetThermTrip2": "<=/Scanner_Cpu2ThermalTripAccessor.Value",
    "SetThermTrip2": "#/Accessor_Cpu2ClearThermalTripAccessor.Value",
    "Actions": 0,
    "TimeDelaySeconds": 300,
    "IsValid": "${Slot} |> expr($1 == 1 ? true : false)"
  }
}

🔧 使用指南

配置步骤

  1. 设置FruID:配置FRUID类型,当前统一配置为0
  2. 关联过温检测:通过GetThermTrip和GetThermTrip2关联CPU过温信号Scanner
  3. 关联清除操作:通过SetThermTrip和SetThermTrip2关联过温信号清除Accessor
  4. 配置自动上电:设置Actions决定是否需要自动上电
  5. 设置延迟时间:配置TimeDelaySeconds控制上电延迟时间
  6. 主从片判断:通过IsValid表达式区分主片和从片
  7. 验证配置:确保Scanner和Accessor对象已正确定义

注意事项

  • 主从片区分:IsValid用于区分主片和从片,只有主片支持操作
  • Scanner关联:GetThermTrip和GetThermTrip2必须关联有效的Scanner对象
  • Accessor关联:SetThermTrip和SetThermTrip2必须关联有效的Accessor对象
  • Actions设置:Actions=1时会自动上电,Actions=0时需要手动上电
  • 延迟时间:TimeDelaySeconds应根据散热需求合理设置,避免过短导致反复触发
  • 表达式语法:IsValid表达式中需要确保Slot变量已定义

性能建议

  • 合理设置延迟:TimeDelaySeconds建议设置为300秒以上,确保充分散热
  • 监控频率:过温信号检测频率不宜过高,避免影响系统性能
  • 故障恢复:建议启用Actions自动上电功能,提高系统可用性
  • 日志记录:建议配合事件系统记录过温事件,便于故障分析

故障排查

  • 过温信号异常:检查GetThermTrip和GetThermTrip2关联的Scanner状态
  • 清除操作失败:检查SetThermTrip和SetThermTrip2关联的Accessor配置
  • 自动上电失败:检查Actions配置和TimeDelaySeconds设置
  • 主从片识别错误:检查IsValid表达式和Slot变量定义
  • 重复触发:检查TimeDelaySeconds设置是否过短,散热是否充分
  • 配置不生效:检查IsValid是否为true,确保当前为主片对象

安全考虑

  • 过温保护:过温信号触发后应立即下电,避免硬件损坏
  • 散热确认:自动上电前应确保散热条件已恢复正常
  • 监控告警:建议配合传感器和事件系统实现过温告警
  • 手动干预:关键场景可设置Actions=0,需要人工确认后再上电