CSR配置字典之HotUpgradeHandShake类
更新时间: 2026/11/09
在AtomGit上查看源码📋 文档信息
| 项目 | 内容 |
|---|---|
| 文档标题 | HotUpgradeHandShake类配置字典 |
| 版本 | v1.0 |
| 创建日期 | 2026-11-09 |
| 最后更新 | 2026-11-09 |
| 维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
| 版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
|---|---|---|---|---|---|
| v1.0 | 2026-11-09 | 新增 | 创建HotUpgradeHandShake类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
HotUpgradeHandShake 类
| 属性 | 值 |
|---|---|
| 类名称 | HotUpgradeHandShake |
| 功能描述 | 交换芯片无感升级握手对象:无感升级过程中,lsw例行巡检时轮询HotUpgradeSignal监听LogicFirmware(CPLD)下发的无感升级信号(0x55升级中/0xAA升级完成),并通过HotUpgradeAck先清零再回写应答;检测到任一CPLD处于升级中时,lsw暂停所有交换芯片例行测试,全部CPLD升级完成后自动恢复 |
| 所属SIG组 | hardware |
| 所属组件 | lsw |
| 责任人 | 单板管理组 |
| 最后更新 | 2026-11-09 |
| 状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
无必选属性,HotUpgradeSignal与HotUpgradeAck均为可选属性。
可选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|---|---|---|---|---|---|---|---|---|
HotUpgradeSignal | U8 | 0 | 0-255(0x55升级中,0xAA升级完成,其他值不触发状态迁移) | 关联CPLD无感升级信号寄存器Accessor的Value | 无感升级过程中,lsw监听LogicFirmware下发的无感升级信号(0x55升级中/0xAA升级完成);lsw例行巡检时轮询该信号,检测到0x55暂停所有交换芯片例行测试,检测到0xAA恢复例行测试 | 无感升级状态监听 | "#/Accessor_HotUpgradeSignal.Value" | CSR配置 | 硬件 |
HotUpgradeAck | U8 | 0 | 0-255(lsw仅回写0、0x55、0xAA) | 关联CPLD无感升级应答寄存器Accessor的Value | 无感升级应答寄存器:lsw收到握手信号后先写0清零,再回写0x55(确认升级中)或0xAA(确认升级完成);LogicFirmware仅接受0x55/0xAA应答,其他中间值lsw不回写 | 无感升级应答回写 | "#/Accessor_HotUpgradeAck.Value" | CSR配置 | 硬件 |
🔗 动态关联机制
语法规范
使用 #/xxx 格式实现属性间的动态关联:
yaml
# 语法格式
属性名: "#/目标类.属性名"
# 实际示例
HotUpgradeSignal: "#/Accessor_HotUpgradeSignal.Value" # 关联CPLD无感升级信号寄存器
HotUpgradeAck: "#/Accessor_HotUpgradeAck.Value" # 关联CPLD无感升级应答寄存器关联说明
- HotUpgradeSignal:关联CPLD无感升级信号寄存器对应的Accessor,lsw轮询读取该属性时实时读取CPLD寄存器当前值
- HotUpgradeAck:关联CPLD无感升级应答寄存器对应的Accessor,lsw写入该属性时将应答值写入CPLD寄存器
📂 分类标准
硬件属性
- 定义:与CPLD无感升级握手寄存器直接相关的参数
- 特点:信号值由CPLD逻辑(LogicFirmware)写入,应答值由lsw回写,均通过Accessor访问CPLD寄存器
- 示例:
HotUpgradeSignal,HotUpgradeAck
软件属性
- 无软件属性:HotUpgradeHandShake类属性均为与CPLD握手寄存器绑定的硬件属性
📝 配置示例
每片参与无感升级握手的CPLD配置一个
HotUpgradeHandShake_N实例,两个属性分别通过#/关联到该CPLD信号/应答寄存器对应的Accessor。
json
{
"HotUpgradeHandShake_1": {
"HotUpgradeSignal": "#/Accessor_HotUpgradeSignal.Value",
"HotUpgradeAck": "#/Accessor_HotUpgradeAck.Value"
}
}🔧 使用指南
配置步骤
- 确定握手寄存器:确认CPLD无感升级信号/应答寄存器的访问方式,并在CSR中预先配置对应的Accessor对象
- 配置握手对象:为每片需要握手的CPLD配置一个
HotUpgradeHandShake_N实例,将HotUpgradeSignal、HotUpgradeAck分别关联到对应Accessor的Value - 加载CSR:将对象配置入CSR并由硬件自发现加载,lsw自动收集握手对象并在例行巡检中轮询信号
注意事项
- 先清零再应答:lsw回写应答时先写0清零,再写0x55或0xAA;LogicFirmware仅接受0x55/0xAA应答,其他中间值lsw不回写
- 全局暂停策略:任一CPLD处于升级中(信号0x55)时,lsw暂停所有交换芯片例行测试;全部CPLD升级完成(信号0xAA)后自动恢复
- 多实例:单板存在多片CPLD时可配置多个实例(如
HotUpgradeHandShake_1、HotUpgradeHandShake_2),lsw逐一轮询 - 读写容错:握手对象属性读写异常时,lsw保持当前升级状态继续巡检,不中断例行测试流程
- 未配置的后果:未配置该对象或未关联Accessor时,lsw无法感知CPLD无感升级,升级期间交换芯片例行测试不会被暂停
无感升级握手流程说明
- 空闲:信号非0x55/0xAA,lsw正常执行交换芯片例行测试
- 升级开始:轮询到0x55,记录该CPLD进入升级态,应答清零后回写0x55,暂停所有交换芯片例行测试
- 升级完成:轮询到0xAA,应答清零后回写0xAA,该CPLD退出升级态;全部CPLD退出升级态后恢复例行测试