点击此处查看详细分析解答
IEU板两个X4口连接BCU板一个UBC口的配置说明
在处理IEU板上两个X4端口连接到BCU板一个X8 UBC口的拓扑结构时,PSR和IEU的CSR配置需要精确对应实际硬件连接关系。以下是对该配置的详细分析和建议。
一、整体连接关系概述
- BCU侧:提供一个X8宽度的UBC(User Bus Connector)接口,例如
C7b口,支持8通道PCIe信号。
- IEU侧:接收该X8信号,并将其拆分为两个独立的X4通道,分别连接两个下游PCIe设备(如扩展卡)。
- 关键配置点:
- BCU侧使用
BusinessConnector_CPU2UBCDDx 配置上游资源(SerDes)与物理端口映射。
- IEU侧通过
BusinessConnector 和 UnitConfiguration 建立端口ID与物理槽位的对应关系。
- PSR中需定义
UnitConfiguration_IEUx 来描述线缆连接白名单。
二、IEU侧CSR配置分析
您提供的配置基本符合逻辑,但存在关键问题:端口ID重复使用。
"Ports": [
{
"Name": "Down_1",
"ID": 17,
"Offset": 0,
"Width": 4
},
{
"Name": "Down_2",
"ID": 17,
"Offset": 4,
"Width": 4
}
]
问题:Down_1 和 Down_2 的 ID 均为 17,违反了 PortID 应唯一标识一个逻辑端点的原则。
虽然这两个端口共享同一个上游TargetPortID(即PSR中定义的TargetPortID=17),但在IEU内部,每个下游BusinessConnector必须对应唯一的端口资源,因此两个X4端口应在IEU CSR中使用不同的Port ID进行映射,或通过其他机制区分。
三、正确配置方式建议
推荐配置方案(逻辑合理且符合规范)
1. IEU CSR 配置修正
"BusinessConnector_1": {
"Name": "Up_1",
"Direction": "Upstream",
"Slot": 1,
"LinkWidth": "X8",
"MaxLinkRate": "PCIe 4.0",
"ConnectorType": "UBC",
"Ports": [
{
"Name": "PortA",
"ID": 17,
"Offset": 0,
"Width": 8
}
]
},
"BusinessConnector_2": {
"Name": "Down_1",
"Direction": "Downstream",
"Slot": 2,
"LinkWidth": "X4",
"MaxLinkRate": "PCIe 4.0",
"ConnectorType": "PCIe CEM",
"UpstreamResources": [
{
"Name": "Up_1",
"Offset": 0,
"Width": 4
}
],
"RefMgmtConnector": "#/Connector_PCIE_1",
"RefPCIeAddrInfo": "#/PcieAddrInfo_1"
},
"BusinessConnector_3": {
"Name": "Down_2",
"Direction": "Downstream",
"Slot": 3,
"LinkWidth": "X4",
"MaxLinkRate": "PCIe 4.0",
"ConnectorType": "PCIe CEM",
"UpstreamResources": [
{
"Name": "Up_1",
"Offset": 4,
"Width": 4
}
],
"RefMgmtConnector": "#/Connector_PCIE_2",
"RefPCIeAddrInfo": "#/PcieAddrInfo_2"
}
说明:
BusinessConnector_1 表示上行连接,ID=17 是从 PSR UnitConfiguration 中定义的 TargetPortID 映射而来。
Offset 和 Width 精确划分了X8通道为两个X4部分。
- 下游两个BusinessConnector分别绑定不同的Slot和PCIeAddrInfo,形成独立路径。
四、PSR 配置要求
在 PSR.sr 文件中,必须正确定义 UnitConfiguration_IEUx 来匹配此连接关系。
"UnitConfiguration_IEU1": {
"Configurations": [
{
"UID": "IEU_riser_card",
"SrcPortName": "C7b",
"TargetPortID": 17,
"Slot": 2,
"Index": 0,
"BCUIndex": 1,
"default": false
}
]
}
关键字段说明:
SrcPortName: BCU侧的物理端口名(如C7b)——需与BCU的Port Name一致。
TargetPortID: IEU侧识别的上行端口ID,即BusinessConnector_1中Port的ID。
Slot: 下游设备全局槽位号,用于Redfish/BMC识别。
五、BCU侧配置要求
在 BCU.sr 中应配置对应SerDes资源:
"BusinessConnector_CPU2UBCDD1": {
"Name": "CPU2 UBCDD1",
"Direction": "Downstream",
"LinkWidth": "X16",
"MaxLinkRate": "PCIe 4.0",
"ConnectorType": "UBCDD",
"Ports": [
{
"Name": "C7b",
"ID": 7,
"Offset": 8,
"Width": 8
}
],
"UpstreamResources": ["SerDes_1_7", "SerDes_1_8"]
}
并通过SerDes绑定到PCIeRootPort(via PcieAddrInfo.PortId)建立完整路径。
六、结论与建议
| 检查项 |
是否合规 |
说明 |
Ports[].ID 是否唯一 |
否 |
原始配置中两个Port的ID均为17,虽指向相同上游,但应视为同一逻辑端口,不可重复定义 |
Offset与Width划分是否正确 |
是 |
0-4 和 4-8 划分X8成两个X4合理 |
| 下游BusinessConnector数量 |
是 |
两个X4设备需两个独立的Downstream Connector |
| RefPCIeAddrInfo是否独立 |
是 |
每个Slot需独立PCIe地址信息 |
| PSR UnitConfiguration是否配置TargetPortID=17 |
是 |
必须匹配IEU的上行Port ID |
正确做法总结
- 保持上行Port ID唯一:一个
TargetPortID对应一个BusinessConnector_Upstream的Port.ID。
- 使用Offset/Width分段处理X8→2×X4:在
UpstreamResources中通过Offset定位子通道。
- 每个下行设备配置独立的BusinessConnector:映射到不同Slot和PCIeAddrInfo。
- PSR中定义SrcPortName与TargetPortID一对一映射:用于线缆检测与拓扑校验。
工具建议:可通过 pcie_device 组件的日志检查链路匹配是否成功,并验证是否触发 Cable.UBIncorrectConnection 等告警。