CSR配置字典之Chip类
更新时间:2025/7/22
在Gitcode上查看源码📋 文档信息
项目 | 内容 |
---|---|
文档标题 | Chip类配置字典 |
版本 | v1.0 |
创建日期 | 2025-01-27 |
最后更新 | 2025-01-27 |
维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
---|---|---|---|---|---|
v1.0 | 2025-01-27 | 初始版本 | 创建Chip类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
Chip 类
属性 | 值 |
---|---|
类名称 | Chip |
功能描述 | 通用芯片访问配置,提供芯片级别的通信和控制功能,支持多种总线协议和汇聚数据访问 |
所属SIG组 | hardware |
所属组件 | 芯片访问 |
责任人 | 芯片访问组 |
最后更新 | 2025-01-27 |
状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
OffsetWidth | U8 | - | U8 | - | 偏移宽度 | 器件访问参数 | 1 | CSR配置 | 硬件 |
AddrWidth | U8 | - | U8 | - | 地址宽度 | 器件访问参数 | 1 | CSR配置 | 硬件 |
Address | U32 | - | U32 | - | 器件总线地址 十进制,如0xC8的地址对应十进制200 | 器件访问参数 | 200 | CSR配置 | 硬件 |
可选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
BusType | U8 | 0 | U8 | - | 通用Chip访问使用的总线协议 0:默认协议(总线直出场景跟随对应的总线协议) 1:I2C协议 2:I3C协议 | 使用I3cOverLocalbus进行访问时,使用I2C协议时配置成1,使用I3C协议时配置成2。其他场景可不配 | 0 | CSR配置 | 硬件 |
WriteTmout | U32 | - | U32 | - | 器件的写超时(目前仅针对canbus chip) | 使用canbus器件的操作超时时间 | 100 | CSR配置 | 硬件 |
ReadTmout | U32 | - | U32 | - | 器件的读超时(目前仅针对canbus chip) | 使用canbus器件的操作超时时间 | 100 | CSR配置 | 硬件 |
PowerStatus | U8 | - | U8 | - | 硬件的上电状态,暂未使用 | 暂未启用 | 1 | 组件更新 | 软件 |
SelfTestResult | U8 | - | U8 | - | 自检结果 | 暂未启用 | 1 | 组件更新 | 软件 |
Supported | Boolean | FALSE | true/false | - | Chip是否具备汇聚数据访问能力 true:具备能力 false:默认值,不具备能力 | FPGA/CPLD将多个BCU模组的硬件信息进行汇聚,BMC通过localbus进行扫描读取 | TRUE | CSR配置 | 硬件 |
BaseOffset | Mixed | - | Mixed | - | 汇聚资源起始偏移/汇聚命令字 SMC场景下为汇聚命令字;其他块设备场景为起始偏移,连续读取一段数据 | FPGA/CPLD将多个BCU模组的硬件信息进行汇聚,BMC通过localbus进行扫描读取 | `"$ | > expr(128 + $1 * 48)"` | CSR配置 |
Length | U32 | - | U32 | - | 汇聚资源总长度,同SmcDfxInfo的Size | FPGA/CPLD将多个BCU模组的硬件信息进行汇聚,BMC通过localbus进行扫描读取 | 48 | CSR配置 | 硬件 |
Period | U32 | - | U32 | - | 汇聚资源扫描间隔,单位ms | FPGA/CPLD将多个BCU模组的硬件信息进行汇聚,BMC通过localbus进行扫描读取 | 100 | CSR配置 | 硬件 |
HealthStatus | U8 | 0 | U8 | - | 硬件的健康状态,暂未使用 | 暂未启用 | 0 | 组件更新 | 软件 |
WriteRetryTimes | U8 | - | U8 | - | 写失败重试次数 | 当器件写失败时,进行重试 | 2 | CSR配置 | 软件 |
ReadRetryTimes | U8 | - | U8 | - | 读失败重试次数 | 当器件读失败时,进行重试 | 0 | CSR配置 | 软件 |
DrvWriteDelay | Mixed | - | 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
}
}
🔧 使用指南
配置步骤
- 基础参数配置:设置OffsetWidth、AddrWidth、Address等基本访问参数
- 总线协议选择:根据实际硬件选择合适的BusType
- 超时参数配置:设置WriteTmout和ReadTmout(主要用于canbus)
- 汇聚数据配置:如需汇聚数据访问,配置Supported、BaseOffset等参数
- 重试机制配置:设置WriteRetryTimes和ReadRetryTimes
- 特殊延时配置:如需要,配置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场景需要明确指定协议类型
故障排除
通信失败:
- 检查Address配置是否正确
- 确认BusType选择是否合适
- 验证OffsetWidth和AddrWidth配置
超时错误:
- 调整WriteTmout和ReadTmout参数
- 检查总线负载和时钟频率
- 增加重试次数配置
汇聚数据访问异常:
- 确认Supported配置为true
- 检查BaseOffset表达式计算
- 验证Length和Period配置
性能优化
- 重试机制:合理配置重试次数,避免过度重试
- 扫描周期:优化Period配置,平衡数据实时性和系统负载
- 延时控制:根据硬件特性配置合适的延时参数