CSR配置字典之PhyRegisterWrite类
更新时间: 2026/05/14
在Gitcode上查看源码📋 文档信息
| 项目 | 内容 |
|---|---|
| 文档标题 | PhyRegisterWrite类配置字典 |
| 版本 | v1.0 |
| 创建日期 | 2026-05-14 |
| 最后更新 | 2026-05-14 |
| 维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
| 版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
|---|---|---|---|---|---|
| v1.0 | 2026-05-14 | 新增 | 创建PhyRegisterWrite类配置字典 | 全新文档 | bmc_network组件组 |
🎯 类概览
PhyRegisterWrite 类
| 属性 | 值 |
|---|---|
| 类名称 | PhyRegisterWrite |
| 功能描述 | PHY芯片寄存器写入配置,支持直接写入和先切页再写入两种模式,用于PHY芯片调优和配置 |
| 所属SIG组 | hardware |
| 所属组件 | bmc_network |
| 责任人 | 基础服务组 |
| 最后更新 | 2026-05-14 |
| 状态 | 🟢 正常运行 |
📊 属性定义详表
PhyRegisterWrite 类 - 必选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|---|---|---|---|---|---|---|---|---|
PhyAddr | U32 | - | U32 | - | phy地址 | 配置PHY芯片地址 | 1 | CSR | 硬件 |
ChipIdentify | U32 | - | U32 | - | 器件标识,用于标识PHY芯片型号 | 匹配PHY芯片型号 | 0x03625F01 | CSR | 硬件 |
Priority | U16 | - | U16 | - | 操作优先级,优先级高的先执行操作,小的先执行 | 配置多寄存器操作顺序 | 10 | CSR | 软件 |
WriteType | U8 | - | 0-1 | - | 寄存器写入类型,0:直接写入;1:先切页再写入 | 选择寄存器写入模式 | 1 | CSR | 软件 |
PageSwitchRegAddr | U32 | - | U32 | - | 第一次操作的寄存器地址 YT: ext_addr; RT/MAR: page_addr | 配置切页寄存器地址 | 0x1F | CSR | 硬件 |
PageSwitchTargetValue | U32 | - | U32 | - | 第一次操作写入的值 YT: reg_num; RT/MAR: page | 配置切页目标值 | 0 | CSR | 硬件 |
RegWriteAddr | U32 | - | U32 | - | 第二次操作的寄存器地址 YT: ext_data; RT/MAR: reg_num | 配置目标寄存器地址 | 0x10 | CSR | 硬件 |
RegWriteValue | U32 | - | U32 | - | 第二次操作回读/写入的值,也是从扩展寄存器读到/写入的值 | 配置寄存器写入值 | 0x0100 | CSR | 硬件 |
PhyRegisterWrite 类 - 可选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|---|---|---|---|---|---|---|---|---|
RegWriteMask | U32 | 4294967295 | U32 | - | 第二次操作回读/写入的值掩码,默认为全1(0xFFFFFFFF)表示所有位有效 | 掩码控制写入哪些位 | 0xFFFFFF00 | CSR | 软件 |
WriteCompleteDelayMs | U32 | 0 | U32 | - | 写入成功后的延时(单位:毫秒) | 控制写入后等待时间 | 100 | CSR | 软件 |
📝 配置示例
PHY芯片直接写入配置
json
{
"PhyRegisterWrite": {
"PhyAddr": 1,
"ChipIdentify": 56713217,
"Priority": 5,
"WriteType": 0,
"RegWriteAddr": 16,
"RegWriteValue": 256,
"RegWriteMask": 4294967295,
"WriteCompleteDelayMs": 50
}
}PHY芯片切页写入配置
json
{
"PhyRegisterWrite": {
"PhyAddr": 1,
"ChipIdentify": 56713217,
"Priority": 10,
"WriteType": 1,
"PageSwitchRegAddr": 31,
"PageSwitchTargetValue": 1,
"RegWriteAddr": 16,
"RegWriteValue": 512,
"RegWriteMask": 4294967295,
"WriteCompleteDelayMs": 100
}
}🔧 使用指南
配置步骤
- 配置PHY地址:设置PhyAddr确定目标PHY芯片
- 配置芯片标识:设置ChipIdentify匹配PHY芯片型号
- 设置操作优先级:通过Priority控制多配置项执行顺序
- 选择写入模式:根据WriteType选择直接写入(0)或切页写入(1)
- 配置寄存器地址与值:设置PageSwitchRegAddr/PageSwitchTargetValue(如需切页)和RegWriteAddr/RegWriteValue
注意事项
- ChipIdentify匹配:ChipIdentify必须与实际PHY芯片型号匹配才能生效
- Priority唯一性:同PHY芯片下建议各配置的Priority值互不冲突
- WriteType选择:复杂PHY芯片(如Marvell YT系列)需使用切页写入模式(WriteType=1)
- RegWriteMask:默认全1掩码,所有位均写入;可设置掩码仅写入部分位
故障排查
- 写入无效:检查ChipIdentify是否与PHY芯片匹配
- 操作顺序混乱:检查Priority配置是否合理
- 写入后值不正确:检查RegWriteMask掩码配置
- 切页模式失败:确认WriteType=1时PageSwitchRegAddr和PageSwitchTargetValue配置正确