CSR配置字典之ThermTrip类
更新时间:2025/7/22
在Gitcode上查看源码📋 文档信息
项目 | 内容 |
---|---|
文档标题 | ThermTrip类配置字典 |
版本 | v1.0 |
创建日期 | 2025-01-27 |
最后更新 | 2025-01-27 |
维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
---|---|---|---|---|---|
v1.0 | 2025-01-27 | 初始版本 | 创建ThermTrip类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
ThermTrip 类
属性 | 值 |
---|---|
类名称 | ThermTrip |
功能描述 | CPU过热保护管理,提供CPU过温信号检测、清除和自动上电控制功能,防止高温场景反复上下电 |
所属SIG组 | thermal |
所属组件 | thermtrip |
责任人 | 热管理组 |
最后更新 | 2025-01-27 |
状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
GetThermTrip | Mixed | - | 0或1 | Scanner_Cpu1ThermalTripAccessor | 获取cpu1的过温信号 | 获取cpu1的过温信号 | "<=/Scanner_Cpu1ThermalTripAccessor.Value" | 硬件提供 | 硬件 |
SetThermTrip | String | - | 0 | Accessor_Cpu1ClearThermalTripAccessor | 清除cpu1的过温信号 | 清除cpu1的过温信号 | "#/Accessor_Cpu1ClearThermalTripAccessor.Value" | 组件更新 | 硬件 |
GetThermTrip2 | Mixed | - | 0或1 | Scanner_Cpu2ThermalTripAccessor | 获取cpu2的过温信号 | 获取cpu2的过温信号 | "<=/Scanner_Cpu2ThermalTripAccessor.Value" | 硬件提供 | 硬件 |
SetThermTrip2 | String | - | 0 | Accessor_Cpu2ClearThermalTripAccessor | 清除cpu2的过温信号 | 清除cpu2的过温信号 | "#/Accessor_Cpu2ClearThermalTripAccessor.Value" | 组件更新 | 硬件 |
可选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
FruID | U8 | 0 | U8 | - | FRUID类型 | 用来区分操作域,当前配置成0 | 0 | CSR | 硬件 |
Actions | U8 | 1 | 0或1 | - | 1表示高温下电后需要bmc上电;0表示不需要 场景:防止高温场景反复上下电 | 1表示高温下电后需要bmc上电;0表示不需要 | 1 | CSR | 硬件 |
TimeDelaySeconds | U32 | 300 | U32 | - | 高温下电后等待对应时间后再上电,单位为秒 | 高温下电后等待对应时间后再上电,单位为秒 | 300 | CSR | 硬件 |
IsValid | Mixed | true | Boolean | - | 布尔值,用来区分主片对象和还是从片对象,只支持操作主片 | 布尔值,用来区分主片对象和还是从片对象,只支持操作主片 | `"$ | > 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)"
}
}
🔧 使用指南
配置步骤
- 设置FruID:配置FRUID类型,当前统一配置为0
- 关联过温检测:通过GetThermTrip和GetThermTrip2关联CPU过温信号Scanner
- 关联清除操作:通过SetThermTrip和SetThermTrip2关联过温信号清除Accessor
- 配置自动上电:设置Actions决定是否需要自动上电
- 设置延迟时间:配置TimeDelaySeconds控制上电延迟时间
- 主从片判断:通过IsValid表达式区分主片和从片
- 验证配置:确保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,需要人工确认后再上电