代码仓
中
CSR配置字典之HotUpgradeHandShake类
更新时间: 2026/11/09
在AtomGit上查看源码

📋 文档信息 ​

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

📋 变更历史记录 ​

文档变更记录 ​

版本发布日期变更类型变更内容影响范围维护人员
v1.02026-11-09新增创建HotUpgradeHandShake类配置字典全新文档系统管理员

🎯 类概览 ​

HotUpgradeHandShake 类 ​

属性值
类名称HotUpgradeHandShake
功能描述交换芯片无感升级握手对象:无感升级过程中,lsw例行巡检时轮询HotUpgradeSignal监听LogicFirmware(CPLD)下发的无感升级信号(0x55升级中/0xAA升级完成),并通过HotUpgradeAck先清零再回写应答;检测到任一CPLD处于升级中时,lsw暂停所有交换芯片例行测试,全部CPLD升级完成后自动恢复
所属SIG组hardware
所属组件lsw
责任人单板管理组
最后更新2026-11-09
状态🟢 正常运行

📊 属性定义详表 ​

必选属性 ​

无必选属性,HotUpgradeSignal与HotUpgradeAck均为可选属性。


可选属性 ​

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
HotUpgradeSignalU800-255(0x55升级中,0xAA升级完成,其他值不触发状态迁移)关联CPLD无感升级信号寄存器Accessor的Value无感升级过程中,lsw监听LogicFirmware下发的无感升级信号(0x55升级中/0xAA升级完成);lsw例行巡检时轮询该信号,检测到0x55暂停所有交换芯片例行测试,检测到0xAA恢复例行测试无感升级状态监听"#/Accessor_HotUpgradeSignal.Value"CSR配置硬件
HotUpgradeAckU800-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"
  }
}

🔧 使用指南 ​

配置步骤 ​

  1. 确定握手寄存器:确认CPLD无感升级信号/应答寄存器的访问方式,并在CSR中预先配置对应的Accessor对象
  2. 配置握手对象:为每片需要握手的CPLD配置一个HotUpgradeHandShake_N实例,将HotUpgradeSignal、HotUpgradeAck分别关联到对应Accessor的Value
  3. 加载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无感升级,升级期间交换芯片例行测试不会被暂停

无感升级握手流程说明 ​

  1. 空闲:信号非0x55/0xAA,lsw正常执行交换芯片例行测试
  2. 升级开始:轮询到0x55,记录该CPLD进入升级态,应答清零后回写0x55,暂停所有交换芯片例行测试
  3. 升级完成:轮询到0xAA,应答清零后回写0xAA,该CPLD退出升级态;全部CPLD退出升级态后恢复例行测试