已关闭
[需求]: 支持天池单板CPLD JTAG扫链巡检 #378
changdexing创建于  7月21日关闭于  8月17日
changdexing成员
7月21日 创建

感谢您为社区贡献新需求!请按照以下提示提供详细信息,以便我们更好地理解并跟进。

版本分支

openUBMC main

需求属性

所属版本

openUBMC 26.09

工作量

NA

是否需要编码

是

是否免测试

否

周边依赖

NA

需求来源

NA

需求描述

简要说明

支持天池单板上通过JTAG链路进行CPLD扫链巡检,验证CSR配置的JTAG升级CPLD芯片与实际硬件扫链结果的一致性

系统用户

开发人员、测试人员、运维人员

前置条件

BMC运行正常、各单板CSR配置已下发完成

主成功场景

(1)触发扫链巡检
1. 用户通过Redfish或IPMI接口触发CPLD扫链巡检;
2. 调用新增的RPC接口启动所有单板的CPLD扫链;
(2)计算预期CPLD数量
1. 针对每块单板(基础板、硬盘背板、扩展板、风扇板),获取该单板上已下发CSR中的LogicFirmware对象;
2. 筛选出未配置I2CUpgradeChip属性的LogicFirmware对象个数,即为该单板预期支持JTAG链路升级的CPLD芯片数量;
3. 若LogicFirmware对象同时配置了I2C和JTAG升级能力,则不纳入扫链检查范围;
(3)执行JTAG扫链
1. 对支持安全GPIO升级的CPLD,扫链前先打开JTAG通道;
2. 通过框架提供的接口执行JTAG扫链,获取实际扫链结果;
3. 扫链完成后关闭JTAG通道;
(4)汇总与比对
1. 汇总所有单板的扫链结果;
2. 将每块单板的实际扫链数量与预期CPLD数量进行比对;
3. 若不匹配,设置该单板的扫链检查结果为异常,记录具体差异信息;
4. 返回汇总的扫链巡检结果供Redfish或IPMI接口查询;
(5)操作日志
1. 扫链启动和扫链结果均记录操作日志;

扩展场景(含异常场景)

1、CSR配置的JTAG升级LogicFirmware对象与实际硬件不匹配 记录为硬件CSR配置错误,扫链结果标记异常并返回具体不匹配的单板信息
2、LogicFirmware对象同时配置了I2C和JTAG升级能力,跳过该CPLD,不参与扫链检查
3、单板扫链超时或通信失败,该单板扫链结果标记为失败,记录失败原因,不影响其他单板继续扫链

约束

  1. 支持的单板类型:基础板、硬盘背板、扩展板、风扇板;
  2. 功能验证范围:仅验证openUBMC支持机型,其他产业仅提供机制不验证;
  3. 扫链仅针对JTAG链路,I2C升级的CPLD不参与;

非功能需求

(1)可靠性要求:1、JTAG通道在扫链异常(超时/失败/进程前溃)时必须自动关闭,避免通道长期开放;2、扫链过程不影响BMC其他业务功能正常运行
(2)可维护性要求:扫链结果不匹配时记录各单板的详细结果(预期数量、实际数量、差异描述)
(3)可测试性要求:提供打桩能力,模拟单板实际可JTAG升级的CPLD个数与扫链结果不匹配的场景
(4)性能要求:1、单板扫链超时时间建议不超过30秒:2、全量扫链巡检整体耗时建议不超过5分钟
(5)兼容性要求(和以前版本及周边配套):NA
(6)安全要求:JTAG通道仅在扫链期间短暂打开,扫链完成后(无论成功或失败)必须立即关闭,防止安全风险
(7)韧性要求:单板扫链失败不阻塞其他单板继续执行,最终结果汇总返回所有单板状态(成功/失败/超时)

likedislike
openUBMC-robot
openUBMC-robot成员
7月21日 评论:

注意

此 Issue 需要负责人。 如果没有指派时, WeberChen 是默认的负责人

likedislike
openUBMC-robotopenUBMC-robot成员
7月21日 将 WeberChen 设为负责人
openUBMC-robotopenUBMC-robot成员
7月21日 添加了label:sig/sig-hardware
openUBMC-robot
openUBMC-robot成员
7月21日 评论:

欢迎来到 openUBMC 社区

Hey @changxingOpenUBMC , 感谢你对社区的贡献.

机器人使用手册

有关指令的使用,可以点击 说明文档 或 论坛 查看详情。开发人员可以在每个PR或Issue下方评论特定指令来触发机器人任务。

联系指引

有疑问可以联系 SIG: sig-hardware ,
维护者是: @changxingOpenUBMC, @nathanael, @xiaoxinglxs, @yelvsub ,
优秀贡献者是: @dli_bmc, @huangjiapei, @mao_0v0, @yelmh .

likedislike
openUBMC-robotopenUBMC-robot成员
7月21日 关联了看板:openUBMC 26.09 需求看板
Cchangdexing成员
7月21日 修改了issue 的描述
openUBMC-robot
openUBMC-robot成员
7月21日 评论:

Issue 工作流介绍

社区的需求和缺陷的工作流状态处于纳管中。

类型 上个状态 下个状态 评论命令 谁可以操作
需求 待办的 已接纳 /todo2accepted SIG组: sig-release-management (maintainer)
需求 已接纳 开发中 /accepted2developing 仓库成员角色: Maintainer, Committer, Contributor, Owner
需求 开发中 转测中 /developing2testing 仓库成员角色: Maintainer, Committer, Contributor, Owner
需求 转测中 待验收 /testing2UAT 仓库成员角色: Maintainer, Committer, Contributor, Owner
需求 待验收 已完成 /UAT2done SIG组: sig-QA (maintainer,committer)
需求 待办的 已挂起 /todo2suspended SIG组: sig-release-management (maintainer)
需求 已挂起 已接纳 /suspended2accepted SIG组: sig-release-management (maintainer)
需求 待办的 已拒绝 /todo2rejected SIG组: sig-release-management (maintainer)
需求 已拒绝 已接纳 /rejected2accepted SIG组: sig-release-management (maintainer)
likedislike
wangjian成员
7月25日 评论:

/todo2accepted

likedislike
openUBMC-robotopenUBMC-robot成员
7月25日 issue状态由 待办的 改变为 已接纳
Llisongwei成员
7月27日 关联了pull request:新增UpgradePrepareSignal用于升级前固件检查
zhaotianli成员
7月27日 评论:

PR #658 回顾分析: 新增UpgradePrepareSignal用于升级前固件检查

仓库: openUBMC/mdb_interface
分支: personal/lisongwei_signal_d0727 → main
作者: lisongwei
合并时间: 2026-07-27 16:51:25
合并人: openUBMC-robot

⚠️ 设计链接更正说明:任务最初提供的论坛链接 discuss.openubmc.cn/t/6925 实为「天池单板CPLD JTAG扫链巡检」设计(bmc.kepler.Systems.Board.Diagnose),与本 PR 主题无关。本 PR 描述中实际引用的关联设计为 topic 3596(新增升级前预检查相关资源协作接口方法属性),本次回顾以 3596 为准。

另注:本 Issue #378 在 topic 6925 中登记为「CPLD JTAG扫链巡检」需求,而本 PR 实现的是 topic 3596 的「升级前预检查信号」。两者为不同特性,建议作者确认 PR 与 Issue 的关联是否正确。


1. AI 检视意见追踪

本 PR 收到两类 AI 检视:一致性检视(OpenClaw,@Richardli25)与平台内置代码审查(@gitcode-bot)。

1.1 一致性检视意见(@Richardli25,2026-07-27 14:21)

# 级别 AI 发现 后续处理 说明
1 严重 设计 3596 要求的新增方法 PrepareUpdateCheck 未实现 ⏳ 未响应 AI 评论后无相关 commit,开发者未回复说明
2 严重 设计 3596 要求的新增属性 PrepareUpdateCheckStatus 未实现 ⏳ 未响应 AI 评论后无相关 commit,开发者未回复说明
3 建议 信号 PrepareUpdateSignal 的 description 写作「故障检查」,设计原文为「预检查」,措辞不一致 ⏳ 未响应 合并后 diff 仍为「固件升级前故障检查可选参数字典」,未修改
4 建议 PR 标题为 UpgradePrepareSignal,实际新增信号名为 PrepareUpdateSignal,且与同文件既有信号 UpgradePrepareSignal 高度相似易混淆 ⏳ 未响应 PR 标题未修正

1.2 平台内置代码审查(@gitcode-bot,2026-07-27 11:49)

# 级别 AI 发现 后续处理 说明
5 P3 信号命名一致性:新增 PrepareUpdateSignal 与 PR 标题 UpgradePrepareSignal 及既有信号名称相似,存在混淆风险 ⏳ 未响应 与上表 #4 同类问题,未修改

指标汇总:

指标 结果
AI 意见总数 5
已采纳并修复 0
已回复说明 0
未响应 5

说明:意见 #1、#2 涉及的方法/属性缺失,AI 检视本身已注明「可能计划由后续 PR 交付」,本次按本 PR 范围计为未覆盖、开发者未回复确认。回顾分析不评判意见本身正确性,仅追踪后续处理情况。

2. 人工检视补充

  • 检视人: @L_Ling(lixiaoning)
  • 检视行为: 仅发表了 /lgtm /approve /publish /check-pr 批准命令(2026-07-27 16:51),未提出实质性代码改进意见
  • diff_comment(行内评论): 无(本 PR 全程无任何人工行内评论)
  • 解决状态: 不涉及(无人工意见)

本 PR 人工检视环节以走查批准为主,未对实现细节提出补充意见。

3. 评审贴覆盖情况

评审贴链接:【已评审】新增升级前预检查相关资源协作接口方法属性(topic 3596)

设计 3596 评审结论同意新增 3 个资源协作接口要素,逐项对比本 PR 变更(仅修改 json/intf/mdb/bmc/kepler/UpdateService.json,+7 行):

# 评审点 是否涵盖 说明
1 新增方法 PrepareUpdateCheck(bmc.kepler.UpdateService,权限 BasicSetting,rsp: TaskId:U32) ❌ 未涵盖 UpdateService.json methods 段无此方法
2 新增信号 PrepareUpdateSignal(bmc.kepler.UpdateService,AdditionalOptions: Dictionary/a{ss}) ✅ 已涵盖 signals 下新增,baseType=Dictionary + $ref=#/defs/Object,与设计匹配
3 新增属性 PrepareUpdateCheckStatus(bmc.kepler.UpdateService.FirmwareInfo,String,读写,default=Init,emitsChangedSignal=false,enum Init/Running/Completed) ❌ 未涵盖 FirmwareInfo.json properties 段无此属性

覆盖统计: 1/3

4. 总结

  • AI 意见采纳率:0%。本次共 5 条 AI 检视意见(含平台内置审查 1 条),开发者均未回复、未在合入前修改,全部判为「未响应」。其中 2 条「严重」级别涉及设计要求的方法/属性未实现,可能由后续独立 PR 承载,但开发者未在 PR 中说明拆分计划。
  • 开发者响应态度:PR 作者(@lisongwei)在 AI 检视(14:21)发布后至合入(16:51)期间未作任何回复或代码调整,检视意见未被讨论闭环。
  • 人工检视补充价值:本 PR 人工检视仅完成批准流程(@L_Ling),无行内评论与实质补充,未对 AI 未覆盖维度形成补充。
  • 设计覆盖度:设计 3596 共 3 个评审点,本 PR 仅实现信号 1 项(1/3)。方法 PrepareUpdateCheck 与属性 PrepareUpdateCheckStatus 尚未交付,建议追踪后续 PR 以闭环设计 3596。
  • 值得关注:
    1. 信号 description「故障检查」与设计术语「预检查」不一致,属低成本可修正项,建议在后续提交中统一。
    2. PR 标题与实际信号名不符,易与既有 UpgradePrepareSignal 混淆,建议规范命名。
    3. PR 描述引用了与本 PR 无关的 Issue #378(CPLD JTAG扫链)与可能误导的 topic 6925,建议核实 PR-Issue-设计三方关联。

此回顾分析由 AI (OpenClaw + GLM-5.1) 完成

likedislike
Llisongwei成员
7月27日 关联了pull request:新增固件检查用的信号定义
此处折叠了5条事件消息 查看更多
Llisongwei成员
7月30日 关联了pull request:支持CPLD JTAG扫链巡检
chenkuilin成员
8月7日 评论:

/accepted2developing

likedislike
openUBMC-robotopenUBMC-robot成员
8月7日 issue状态由 已接纳 改变为 开发中
chenkuilin成员
8月7日 评论:

/developing2testing

likedislike
openUBMC-robotopenUBMC-robot成员
8月7日 issue状态由 开发中 改变为 转测中
openUBMC-robotopenUBMC-robot成员
8月14日 issue状态由 转测中 改变为 待验收
yanyajun成员
8月17日 评论:

/UAT2done

likedislike
openUBMC-robotopenUBMC-robot成员
8月17日 issue状态由 待验收 改变为 已完成
openUBMC-robotopenUBMC-robot成员
8月17日 关闭了 issue