CSR配置字典之Chip类
更新时间:2025/7/22
在Gitcode上查看源码

📋 文档信息

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

📋 变更历史记录

文档变更记录

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

🎯 类概览

Chip 类

属性
类名称Chip
功能描述通用芯片访问配置,提供芯片级别的通信和控制功能,支持多种总线协议和汇聚数据访问
所属SIG组hardware
所属组件芯片访问
责任人芯片访问组
最后更新2025-01-27
状态🟢 正常运行

📊 属性定义详表

必选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
OffsetWidthU8-U8-偏移宽度器件访问参数1CSR配置硬件
AddrWidthU8-U8-地址宽度器件访问参数1CSR配置硬件
AddressU32-U32-器件总线地址
十进制,如0xC8的地址对应十进制200
器件访问参数200CSR配置硬件

可选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
BusTypeU80U8-通用Chip访问使用的总线协议
0:默认协议(总线直出场景跟随对应的总线协议)
1:I2C协议
2:I3C协议
使用I3cOverLocalbus进行访问时,使用I2C协议时配置成1,使用I3C协议时配置成2。其他场景可不配0CSR配置硬件
WriteTmoutU32-U32-器件的写超时(目前仅针对canbus chip)使用canbus器件的操作超时时间100CSR配置硬件
ReadTmoutU32-U32-器件的读超时(目前仅针对canbus chip)使用canbus器件的操作超时时间100CSR配置硬件
PowerStatusU8-U8-硬件的上电状态,暂未使用暂未启用1组件更新软件
SelfTestResultU8-U8-自检结果暂未启用1组件更新软件
SupportedBooleanFALSEtrue/false-Chip是否具备汇聚数据访问能力
true:具备能力
false:默认值,不具备能力
FPGA/CPLD将多个BCU模组的硬件信息进行汇聚,BMC通过localbus进行扫描读取TRUECSR配置硬件
BaseOffsetMixed-Mixed-汇聚资源起始偏移/汇聚命令字
SMC场景下为汇聚命令字;其他块设备场景为起始偏移,连续读取一段数据
FPGA/CPLD将多个BCU模组的硬件信息进行汇聚,BMC通过localbus进行扫描读取`"$> expr(128 + $1 * 48)"`CSR配置
LengthU32-U32-汇聚资源总长度,同SmcDfxInfo的SizeFPGA/CPLD将多个BCU模组的硬件信息进行汇聚,BMC通过localbus进行扫描读取48CSR配置硬件
PeriodU32-U32-汇聚资源扫描间隔,单位msFPGA/CPLD将多个BCU模组的硬件信息进行汇聚,BMC通过localbus进行扫描读取100CSR配置硬件
HealthStatusU80U8-硬件的健康状态,暂未使用暂未启用0组件更新软件
WriteRetryTimesU8-U8-写失败重试次数当器件写失败时,进行重试2CSR配置软件
ReadRetryTimesU8-U8-读失败重试次数当器件读失败时,进行重试0CSR配置软件
DrvWriteDelayMixed-Mixed-驱动写延时
Riser卡MCU升级存在帧传输超时,MCU接收错误帧后导致升级失败的问题,在Hisport驱动中写一帧数据后增加1ms延时`"<=/RiserCard_1.MCUVersion> string.sub($1, 1, 4)> expr($1 >= '1.12' ? 0 : 1)"`

🔗 动态关联机制

语法规范

使用多种动态关联语法:

yaml
# 基础配置
OffsetWidth: 1
AddrWidth: 1
Address: 200
BusType: 0

# 汇聚数据访问配置
Supported: true
BaseOffset: "${SystemId} |> expr(128 + $1 * 48)"
Length: 48
Period: 100

# 动态延时控制
DrvWriteDelay: "<=/RiserCard_1.MCUVersion |> string.sub($1, 1, 4) |> expr($1 >= '1.12' ? 0 : 1)"

关联说明

  • 基础访问参数: Address、OffsetWidth、AddrWidth配置芯片的基本访问参数
  • 汇聚数据访问: 通过Supported、BaseOffset、Length、Period配置汇聚数据访问能力
  • 动态延时: DrvWriteDelay支持基于版本的动态延时配置
  • 表达式计算: 支持复杂的表达式计算和条件判断

📂 分类标准

硬件属性

  • 定义:与芯片硬件访问直接相关的参数
  • 特点:控制芯片的通信协议、地址配置和汇聚数据访问
  • 示例OffsetWidth, AddrWidth, Address, BusType, WriteTmout, ReadTmout, Supported, BaseOffset, Length, Period

软件属性

  • 定义:由软件管理和维护的参数
  • 特点:状态监控、重试机制和驱动控制
  • 示例PowerStatus, SelfTestResult, HealthStatus, WriteRetryTimes, ReadRetryTimes, DrvWriteDelay

📝 配置示例

标准芯片访问配置

json
{
  "Chip_MCU1": {
    "OffsetWidth": 1,
    "AddrWidth": 1,
    "Address": 200,
    "BusType": 0,
    "WriteTmout": 100,
    "ReadTmout": 100,
    "PowerStatus": 1,
    "SelfTestResult": 1,
    "HealthStatus": 0,
    "WriteRetryTimes": 2,
    "ReadRetryTimes": 0
  }
}

汇聚数据访问配置

json
{
  "Chip_FPGA1": {
    "OffsetWidth": 1,
    "AddrWidth": 1,
    "Address": 128,
    "BusType": 0,
    "Supported": true,
    "BaseOffset": "${SystemId} |> expr(128 + $1 * 48)",
    "Length": 48,
    "Period": 100,
    "HealthStatus": 0,
    "WriteRetryTimes": 2,
    "ReadRetryTimes": 1
  }
}

I3C协议配置

json
{
  "Chip_I3C1": {
    "OffsetWidth": 1,
    "AddrWidth": 1,
    "Address": 64,
    "BusType": 2,
    "WriteTmout": 50,
    "ReadTmout": 50,
    "HealthStatus": 0,
    "WriteRetryTimes": 3,
    "ReadRetryTimes": 2
  }
}

Riser卡MCU配置

json
{
  "Chip_RiserMCU": {
    "OffsetWidth": 1,
    "AddrWidth": 1,
    "Address": 96,
    "BusType": 0,
    "WriteTmout": 200,
    "ReadTmout": 200,
    "PowerStatus": 1,
    "SelfTestResult": 1,
    "HealthStatus": 0,
    "WriteRetryTimes": 3,
    "ReadRetryTimes": 2,
    "DrvWriteDelay": "<=/RiserCard_1.MCUVersion |> string.sub($1, 1, 4) |> expr($1 >= '1.12' ? 0 : 1)"
  }
}

CAN总线芯片配置

json
{
  "Chip_CAN1": {
    "OffsetWidth": 2,
    "AddrWidth": 2,
    "Address": 256,
    "BusType": 0,
    "WriteTmout": 500,
    "ReadTmout": 500,
    "PowerStatus": 1,
    "SelfTestResult": 1,
    "HealthStatus": 0,
    "WriteRetryTimes": 5,
    "ReadRetryTimes": 3
  }
}

🔧 使用指南

配置步骤

  1. 基础参数配置:设置OffsetWidth、AddrWidth、Address等基本访问参数
  2. 总线协议选择:根据实际硬件选择合适的BusType
  3. 超时参数配置:设置WriteTmout和ReadTmout(主要用于canbus)
  4. 汇聚数据配置:如需汇聚数据访问,配置Supported、BaseOffset等参数
  5. 重试机制配置:设置WriteRetryTimes和ReadRetryTimes
  6. 特殊延时配置:如需要,配置DrvWriteDelay

总线协议说明

  • 默认协议(0):总线直出场景跟随对应的总线协议,如I2C直出时使用I2C协议
  • I2C协议(1):明确指定使用I2C协议,用于I3cOverLocalBus场景
  • I3C协议(2):明确指定使用I3C协议,用于I3cOverLocalBus场景

汇聚数据访问说明

  • 应用场景:FPGA/CPLD将多个BCU模组的硬件信息进行汇聚
  • 访问方式:BMC通过localbus进行扫描读取
  • 配置要求:需要设置Supported为true,并配置BaseOffset、Length、Period

注意事项

  • 地址格式:Address使用十进制配置,如0xC8对应200
  • 汇聚数据:Length与SmcDfxInfo的Size保持一致
  • 版本依赖:DrvWriteDelay支持基于版本的动态配置
  • 协议选择:I3cOverLocalBus场景需要明确指定协议类型

故障排除

  1. 通信失败

    • 检查Address配置是否正确
    • 确认BusType选择是否合适
    • 验证OffsetWidth和AddrWidth配置
  2. 超时错误

    • 调整WriteTmout和ReadTmout参数
    • 检查总线负载和时钟频率
    • 增加重试次数配置
  3. 汇聚数据访问异常

    • 确认Supported配置为true
    • 检查BaseOffset表达式计算
    • 验证Length和Period配置

性能优化

  • 重试机制:合理配置重试次数,避免过度重试
  • 扫描周期:优化Period配置,平衡数据实时性和系统负载
  • 延时控制:根据硬件特性配置合适的延时参数

📚 相关文档