背景
当前CPLD全检流程为如下图,查询结果在AC之后,因此需要新增CPLD全检结果持久化。
决策点
cpld全检结果持久化方式
方案一
新增cpld检测结果类
类名:CpldTestResultTable
持久化类型:PoweroffPer
tableName:t_cpld_space_test_result
| 属性名称 | 类型 | 属性说明 |
|---|---|---|
| Position | String | 主键;标明cpld位置,如BCU、EXU |
| CheckResult | U8[] |
数组,记录检测结果 |
方案二
在之前类基础上新增属性存储检测结果
类名:CpldSpaceTest
持久化类型:PoweroffPer
tableName:t_cpld_space_test_result
| 属性名称 | 类型 | 属性说明 |
|---|---|---|
| CpldIndex | U8 |
主键;CPLD索引值,表示第几片CPLD,从1开始计数 |
| Manufacturer | U8 |
CPLD厂商,表示当前对象配置的对应厂商,0:anlu,1:lattice,2:pango |
| TestFirmwares | String[] |
CPLD检测固件列表,与hpm包中的case固件名称对应 |
| RefreshFirmware | String |
CPLD恢复固件名称,与hpm包中的refresh固件名称对应 |
| CpldResultRegister | U8 |
检测CPLD测试结果的寄存器 |
| RefSmcChip | U8[] |
引用对应的Smc对象,在测试时阻止Smc访问使用 |
| WaitTime | U32 |
检测等待时间,单位: ms |
| RefLogicFirmware | U8[] |
引用CPLD升级对象,在UID组件匹配,确定升级使用的Chip,切换Jtag链路使用 |
| RefBusIndex | U8 |
获取测试结果对应Bus的参数,当前支持GPIO |
| RefMode | String |
获取测试结果的方式,当前支持GPIO和SMC |
| CpldPosition | U8 |
主键;标明cpld位置,板名+position+cpld+index,如BCU_010101_Cpld1 |
| CheckResult | U8 |
记录检测结果,与ipmi一致,0表示成功,1表示失败,2表示不支持全检,3表示检测中,255是默认值 |
评审结论
- 评审结论:同意方案二,同意在CpldSpaceTest新增属性CheckResult、 CpldPosition(主键)
遗留问题
确认主键能否通过代码内生成:已确认,当前类有多个对象,因此需在CSR配置独特主键,否则会有主键冲突风险
