鲲鹏920配置直连Atlas 300i duo卡,不显示卡的信息问题

问题描述

因为是没有经过Riser卡,直连300i duo卡,目前根据文档中的QA,准备采用配死PcieAddrInfo的属性的方法来加载对应的卡的信息

环境信息

  • 软件版本:[OpenUBMC2503]

期望结果

能够在web正常显示300i duo 卡的信息,比如温度,内存等

实际结果

web界面显示的扩展信息一场,功率,内存容量,固件版本均为空,应该是加载出了问题

尝试过的解决方案

一:Connector配置
1.在Hisport_5链路下定义了两个Pcie连接器用来连接具体的Pcie卡

"Hisport_5": {
            "Chips":[
            ],
            "Connectors": [
                "Connector_PCIe_1",
                "Connector_PCIe_2"
            ]
        },

2.连接器对象的定义,根据已有的300i duo卡和300i A2卡Auxid 和 id 进行填写
并且都将在位状态Presence手动置为1

"Connector_PCIe_1": {
            "Bom": "14140130",
            "Id": "19e5d500",
            "AuxId": "02000110",
            "Slot": 1,
            "Position": 2,
            "Presence": 1,
            "Buses": [
                "Hisport_5"
            ],
            "SystemId": 1,
            "SilkText": "{Slot}",
            "IdentifyMode": 2,
            "Type": "PCIe"
        },
        "Connector_PCIe_2": {
            "Bom": "14140130", 
            "Id": "19e5d802", 
            "AuxId": "19e54000",
            "Slot": 2, 
            "Position": 3,
            "Presence": 1,
            "Buses": [
                "Hisport_5"
            ],
            "SystemId": 1,
            "SilkText": "{Slot}",
            "IdentifyMode": 2,
            "Type": "PCIe" 
        },

二. PcieAddrInfo对象的定义,用来生成丝印上报给Bios
我这里的Slotid 是我自己定义的,Portid配置为8 根据300i duo现在插在的Hilink7和Hilink8的Serdes_0_7的最低Device 8 来配置的,Socketid 根据他是Cpu1出的线配置为 0 bdf是根据OS下lspci查询到的BIOS识别的的300i duo的卡的BDF来配置的4 0 0

"PcieAddrInfo_NPU_1": {
            "Segment": 0,
            "GroupID": 1,
            "SocketID": 0,
            "SlotID": 1,
            "PortID":8,
            "Bus":4,
            "DeviceID":0,
            "Function":0,
            "Location": "BCU${Slot}",
            "ComponentType": 8,
            "ContainerSlot": "${Slot}",
            "ContainerUnitType": "BCU",
            "GroupPosition": "PcieAddrInfo_NPU_1_${GroupPosition}"
        },
        "PcieAddrInfo_NPU_2": {
            "Segment": 0,
            "GroupID": 1,
            "SocketID": 0,
            "SlotID": 2,
            "PortID":12,
            "Bus":5,
            "DeviceID":0,
            "Function":0,
            "Location": "BCU${Slot}",
            "ComponentType": 8,
            "ContainerSlot": "${Slot}",
            "ContainerUnitType": "BCU",
            "GroupPosition": "PcieAddrInfo_NPU_2_${GroupPosition}"
        },

目前300i duo卡已经插入并且bios上报了他的bdf为 4:00.0 另一张300i A2卡还没有插
os下上报的信息
image

使用dmidecode --type 9 查询BMC上报,可以看到Bus Address为 4:00.0 的Pcie Slot2正在使用中

丝印信息我是在telnet下查询的,所有丝印信息如下

cat /data/opt/bmc/conf/bios/silkconfig.json
{"DiskSilk":[],"NICSilk":[{"SlotId":1,"Silk":"","SocketId":0},{"SlotId":2,"Silk":"","SocketId":1},{"SlotId":5,"Silk":"","SocketId":2}],
"MemSilk":[],
"PCIeSilk":[{"RootPortDeviceId":8,"SocketId":0,"Segment":0,"SlotId":1,"Silk":"","DeviceType":"PCIe"},
{"RootPortDeviceId":12,"SocketId":0,"Segment":0,"SlotId":2,"Silk":"","DeviceType":"PCIe"}],
"Properties":{"Version":1,"Type":"BIOS SILK CFG"}}

分析结论

目前根据已有信息,BIOS已经上报了加速卡,BMC侧也已经生成了丝印文件,但是web界面的信息是残缺的,不清楚是哪里出了问题,应该如何在日志中排查?

温度,功率等信息是通过带外i2c获的。但是你这里配置的hisport看起来不太对,hisport不能同时连接两路pcie,一般都是会经过i2c复用器(PCA9548)。