CSR配置字典之CpldSpaceTest类
更新时间:2025/9/11
在Gitcode上查看源码

📋 文档信息

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

📋 变更历史记录

文档变更记录

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

🎯 类概览

Cpld 类

属性
类名称CpldSpaceTest
功能描述CPLD全检对象,提供对CPLD进行资源全检的能力
所属SIG组hardware
所属组件cpld
责任人硬件管理组
最后更新2025-09-11
状态🟢 正常运行

📊 属性定义详表

必选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
CpldIndexU8-U8-CPLD索引值,表示第几片CPLD,从1开始计数CPLD全检1CSR配置软件
ManufacturerU8-U8-CPLD厂商, 表示当前对象配置的对应厂商, 0:anlu, 1:lattice, 2:pangoCPLD全检0CSR配置软件
TestFirmwaresString[]-String[]-CPLD检测固件列表,与hpm包中case固件名称对应CPLD全检["anlu_cpld00.svf","anlu_cpld01.svf"]CSR配置软件
RefreshFirmwareString-String-CPLD恢复固件列表, 与hpm包中refresh固件名称对应CPLD全检"anlu_valid00.svf"CSR配置软件
RefSmcChipU8[]-U8[]-引用对应的smc对象, 在测试时阻止smc访问"#/Smc_CpuBrdSMC"CSR配置硬件
WaitTimeU32-U32-检测等待时间, 单位:ms30000CSR配置软件
RefLogicFirmwareU8[]-U8[]-引用CPLD升级对象, 在UID组件匹配, 确定升级使用的Chip, 切换Jtag链路使用CPLD全检"#/LogicFirmware_BCU_1"CSR配置软件

可选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
CpldResultRegisterU8-U8-检测CPLD测试结果的寄存器结果CPLD全检"#/Accessor_Cpld1_check.Value"CSR配置硬件
RefBusIndexU8-U8-获取结果对应Bus的Id,当前支持GPIOCPLD全检100硬件输出硬件
RefModeString-String-获取结果的方式,当前支持GPIO和SMCCPLD全检"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"
  }
}

🔧 使用指南

配置步骤

  1. 设置自检文件:配置TestFirmware指定自检文件目录
  2. 设置恢复文件:配置RefreshFirmware指定自检恢复文件
  3. 设置自检对象: 配置RefLogicFirmware、CpldIndex、Manufacturer指定自检对象
  4. 设置关联Smc: 配置RefSmcChip指定文件传输通道
  5. 设置检测等待时间:配置WaitTime指定检测等待时间
  6. 设置自检结果:配置RefMode、RefBusIndex、CpldResultRegister获取自检结果

注意事项

  • GPIO与RefBusIndex配套使用:RefMode配置为GPIO时,需配套RefBusIndex指定GPIO索引值
  • SMC与CpldResultRegister配套使用: RefMode配置为SMC时,需配套CpldResultRegister获取检测结果

故障排查

  • 全检组件不支持:检查Manufacturer厂商信息是否配置正确