CSR配置字典之CpldSpaceTest类
更新时间:2025/9/11
在Gitcode上查看源码📋 文档信息
| 项目 | 内容 |
|---|---|
| 文档标题 | CpldSpaceTest类配置字典 |
| 版本 | v1.0 |
| 创建日期 | 2025-09-11 |
| 最后更新 | 2025-09-11 |
| 维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
| 版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
|---|---|---|---|---|---|
| v1.0 | 2025-09-11 | 初始版本 | 创建CpldSpaceTest类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
Cpld 类
| 属性 | 值 |
|---|---|
| 类名称 | CpldSpaceTest |
| 功能描述 | CPLD全检对象,提供对CPLD进行资源全检的能力 |
| 所属SIG组 | hardware |
| 所属组件 | cpld |
| 责任人 | 硬件管理组 |
| 最后更新 | 2025-09-11 |
| 状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|---|---|---|---|---|---|---|---|---|
CpldIndex | U8 | - | U8 | - | CPLD索引值,表示第几片CPLD,从1开始计数 | CPLD全检 | 1 | CSR配置 | 软件 |
Manufacturer | U8 | - | U8 | - | CPLD厂商, 表示当前对象配置的对应厂商, 0:anlu, 1:lattice, 2:pango | CPLD全检 | 0 | CSR配置 | 软件 |
TestFirmwares | String[] | - | String[] | - | CPLD检测固件列表,与hpm包中case固件名称对应 | CPLD全检 | ["anlu_cpld00.svf","anlu_cpld01.svf"] | CSR配置 | 软件 |
RefreshFirmware | String | - | String | - | CPLD恢复固件列表, 与hpm包中refresh固件名称对应 | CPLD全检 | "anlu_valid00.svf" | CSR配置 | 软件 |
RefSmcChip | U8[] | - | U8[] | - | 引用对应的smc对象, 在测试时阻止smc访问 | "#/Smc_CpuBrdSMC" | CSR配置 | 硬件 | |
WaitTime | U32 | - | U32 | - | 检测等待时间, 单位:ms | 30000 | CSR配置 | 软件 | |
RefLogicFirmware | U8[] | - | U8[] | - | 引用CPLD升级对象, 在UID组件匹配, 确定升级使用的Chip, 切换Jtag链路使用 | CPLD全检 | "#/LogicFirmware_BCU_1" | CSR配置 | 软件 |
可选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|---|---|---|---|---|---|---|---|---|
CpldResultRegister | U8 | - | U8 | - | 检测CPLD测试结果的寄存器结果 | CPLD全检 | "#/Accessor_Cpld1_check.Value" | CSR配置 | 硬件 |
RefBusIndex | U8 | - | U8 | - | 获取结果对应Bus的Id,当前支持GPIO | CPLD全检 | 100 | 硬件输出 | 硬件 |
RefMode | String | - | String | - | 获取结果的方式,当前支持GPIO和SMC | CPLD全检 | "SMC" | 硬件输出 | 硬件 |
🔗 动态关联机制
语法规范
使用 #/xxx 格式实现属性间的动态关联:
yaml
# 自检文件写入相关
RefSmcChip: "#/Smc_CpuBrdSMC"
# 结果检查相关
RefLogicFirmware: "#/LogicFirmware_BCU_1"
CpldResultRegister: "#/Accessor_Cpld1_check.Value"关联说明
- RefSmcChip: 关联smc对象,用于传输自检及恢复文件
- RefLogicFirmware: 关联CPLD升级对象,用于匹配UID和Jtag链路切换
- CpldResultRegister:关联Accessor获取检测结果
📂 分类标准
硬件属性
- 定义:与CPLD硬件直接相关的参数
- 特点:用于CPLD硬件管理功能
- 示例:
RefSmcChip,CpldResultRegister,RefBusIndex,RefMode
软件属性
- 定义:用于软件逻辑控制和状态管理的参数
- 特点:CPLD全检依赖的配置项
- 示例:
CpldIndex,Manufacturer,TestFirmwares,RefreshFirmware,WaitTime,RefLogicFirmware
📝 配置示例
通过SMC获取CPLD全检结果配置
json
{
"CpldSpaceTest_BCU_1": {
"TestFirmware": [
"anlu_cpld00.svf",
"anlu_cpld01.svf",
"anlu_cpld02.svf",
"anlu_cpld03.svf",
"anlu_cpld04.svf",
"anlu_cpld05.svf",
"anlu_cpld06.svf"
],
"RefreshFirmware": "anlu_valid00.svf",
"CpldResultRegister": "#/Accessor_Cpld1_check.Value",
"RefMode": "SMC",
"RefSmcChip": "#/Smc_CpuBrdSMC",
"WaitTime": 30000,
"CpldIndex": 1,
"Manufacturer": 0,
"RefLogicFirmware": "#/LogicFirmware_BCU_1"
}
}通过GPIO获取CPLD全检结果配置
json
{
"CpldSpaceTest_EXU_1": {
"TestFirmware": [
"anlu_cpld20.svf",
"anlu_cpld21.svf",
"anlu_cpld22.svf",
"anlu_cpld23.svf",
"anlu_cpld24.svf",
"anlu_cpld25.svf",
"anlu_cpld26.svf"
],
"RefreshFirmware": "anlu_valid20.svf",
"RefBusIndex": 100,
"RefMode": "GPIO",
"RefSmcChip": "#/Smc_ExpBoardSMC",
"WaitTime": 30000,
"CpldIndex": 1,
"Manufacturer": 0,
"RefLogicFirmware": "#/LogicFirmware_EXU_1"
}
}🔧 使用指南
配置步骤
- 设置自检文件:配置TestFirmware指定自检文件目录
- 设置恢复文件:配置RefreshFirmware指定自检恢复文件
- 设置自检对象: 配置RefLogicFirmware、CpldIndex、Manufacturer指定自检对象
- 设置关联Smc: 配置RefSmcChip指定文件传输通道
- 设置检测等待时间:配置WaitTime指定检测等待时间
- 设置自检结果:配置RefMode、RefBusIndex、CpldResultRegister获取自检结果
注意事项
- GPIO与RefBusIndex配套使用:RefMode配置为GPIO时,需配套RefBusIndex指定GPIO索引值
- SMC与CpldResultRegister配套使用: RefMode配置为SMC时,需配套CpldResultRegister获取检测结果
故障排查
- 全检组件不支持:检查Manufacturer厂商信息是否配置正确