鲲鹏模组适配约束FAQ
更新时间: 2025/11/20
在Gitcode上查看源码

硬件适配约束

操作系统及SDK约束

适配需基于openubmc的RTOS操作系统及配套的SDK,具体配套关系可从openUBM官网获取。

硬件发现机制

1、整体流程及app相关流程建议采用社区默认模式,不做修改,如需深度定制请自行研究。 2、整体流程不变的情况下,硬件发现主要根据sr文件配置的信息进行硬件扫描,一般在root.sr中配置载板(或底板)的连接器,然后在载板sr中配置模组板的连接器,此处连接器的“IdentifyMode”可以配置为3,也可以配置为1或2,建议优先考虑配置为3,即自发现模式。 3、服务器启动后,会根据sr配置进行设备扫描加载,扫描到设备信息后,更新对应Connector的“Id”信息,从而加载对应Bom_Id.sr的配置文件(“IdentifyMode”为1加载的配置文件名相同,“IdentifyMode”为2加载的文件名为Bom_Id_AuxId.sr)。

txt
$ mdbctl

**********************************************************************

                             Debug Shell

                          Copyright(C) 2023

**********************************************************************

% lsobj Connector
Connector_A1a_010101
Connector_A1c_010101
Connector_A2a_010101
Connector_A2c_010101
Connector_A3a_010101
Connector_A4a_010101
Connector_B1a_010101
Connector_B2a_010101
Connector_B3a_010101
Connector_B3c_010101
Connector_B4a_010101
Connector_B4c_010101
Connector_BCUExtend_010101
Connector_BCU_1_0101
Connector_C4a_010101
Connector_C5a_010101
Connector_C6a_010101
Connector_C7b_010101
Connector_CLU_1_0101
Connector_D4b_010101
Connector_D5a_010101
Connector_D6a_010101
Connector_D7a_010101
Connector_EXU_1_01
Connector_Fan1DualSensor_010103
Connector_Fan1SingleSensor_010103
Connector_Fan2DualSensor_010103
Connector_Fan2SingleSensor_010103
Connector_Fan3DualSensor_010103
Connector_Fan3SingleSensor_010103
Connector_Fan4DualSensor_010103
Connector_Fan4SingleSensor_010103
Connector_LOM_1_0101
Connector_LOM_2_0101
Connector_Memory_010101
Connector_OCP_1_0101
Connector_OCP_2_0101
Connector_PCIE_SLOT1_01010103
Connector_PCIE_SLOT1_01010109
Connector_PCIE_SLOT2_01010103
Connector_PCIE_SLOT2_01010109
Connector_PCIE_SLOT3_01010103
Connector_PCIE_SLOT3_01010109
Connector_PSR_EEP_0101
Connector_PowerSupply_1_0101
Connector_PowerSupply_2_0101
Connector_PsEvent_010101
Connector_SEU_1_0101
Connector_SEU_2_0101
Connector_SEU_3_0101
Connector_SEU_Inner_1_010102
Connector_SEU_Inner_2_010102
Connector_Sensor_01
Connector_TrustedModule_010101
Connector_UbcConfig_010101

% lsprop Connector_BCU_1_0101
bmc.kepler.Connector
  AuxId=""
  Bom="14060876"
  Buses=["I2c_1","I2c_2","I2c_8","JtagMux_JtagSwitch_1_1_0101","Hisport_0","Hisport_1","Hisport_2","Hisport_3","Hisport_4","Hisport_5","Hisport_6","Hisport_7","Hisport_8","Hisport_9","Hisport_10","Hisport_11","Hisport_12","Hisport_13","Hisport_14","Hisport_15","Hisport_16","Hisport_17","Hisport_18","Hisport_19","Hisport_20","Hisport_21"]
  ChassisId="1"
  GroupId=8
  GroupPosition="010101"
  Id="00000001020302031825"
  IdentifyMode=3
  LoadStatus=0
  ManagerId="1"
  Presence=1
  SilkText="BCU"
  Slot=1
  SystemId=1
  Type="CPUBoard"
bmc.kepler.Object.Properties
  ClassName="Connector"
  ObjectIdentifier=[1,"1","1","0101"]
  ObjectName="Connector_BCU_1_0101"
  TraceSamplingRate=0
Private
  CSRVersion=""
  Chip="Eeprom_3_1_0101"
  Container=""
  IdChipAddr=0
  Position=1

4、适配完模组板连接器后,升级bmc到环境,并在mdbctl命令行下查询模组板的连接器信息,并根据"Id"和、"AuxId"信息及“IdentifyMode”信息配置对应的模组板sr文件名。 5、从社区的sr仓库中获取的模组板sr文件可能和实际的硬件配置存在区别,需自行修改后使用,如社区的sr文件配置是2个CPU,实际只有一个等。 PS: 社区中提供了一些模组板的配置sr,可根据"Id"信息查找对应的模组板sr文件,“Bom”值仅用于参考,社区提供的模组板“Bom”通常为“14100513”和“14060876”,实际适配时需要根据社区已有sr文件进行修改。

适配说明

上下电

上下电需要配置以下几个对象:“FruCtrl”,“PGSignal”,“PowerButton”,“RecordFault”,“ThermTrip”,通常“FruCtrl”在“platform.sr”中,“PGSignal”和“PowerButton”在载板的sr文件中,“RecordFault”和“ThermTrip”在模组板的sr文件中,如果缺少对象则无法操作OS上下电。

常见问题

1、以上对象都配置了,载板或模组板的sr文件加载失败,导致上下电功能不可用; 2、以上对象都配置了,载板或模组板的sr文件正常加载,模组板拓扑信息配置有问题,导致上下电功能不可用; 3、所有配置都正确,cpld命令字不符合预期或cpld提供的上下电功能存在问题,导致上下电功能不可用。

拓扑信息

“ManagementTopology”对象中配置模组板的拓扑信息,需要按照硬件提供的实际拓扑信息配置,缺少配置会导致对应链路的信息无法访问,如有错误信息则可能导致配置文件加载异常,部分甚至全部功能不可用。

建议配置对象

“RecordFault”:上下电依赖; “ThermTrip”:上下电依赖; “Smc”:天池架构推荐使用smc协议与cpld等通信; “CpuBoard”:组件信息中显示cpu板信息; “CPU”:处理器信息中显示cpu的在位、数量及属性信息; “CoolingRequirement”:调速策略; “CoolingArea”:调速策略生效组; “Memory”:内存信息中显示在位,数量及属性信息; “MemorySilk”:内存丝印信息; “MemoryChannel”:内存通道信息; “Bios”:bios信息,包括bdf、bios启动阶段,bios启动项、菜单等配置信息; “Cpld”:cpld chip信息 “LogicFirmware”:cpld升级相关信息; “VrdMgmt”:vrd管理信息; 其余,如Accessor、各种Chip、FRU相关、传感器相关、告警相关、PcieAddrInfo、线缆检测、MCUFirmware、Component、Dft等按需增加。

功能验证

命令查询版本号

txt
mcu:
busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x00018500 7

VRD:
busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x00018501 7
busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x00018502 7
busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x00018503 7
busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x00018504 7
busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x00018505 7
busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x00018506 7
busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x00018507 7
busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Smc/Smc_CpuBrdSMC_010101 bmc.kepler.Chip.BlockIO Read a{ss}uu 0 0x00018508 7

CPLD升级获取芯片信息

多厂商cpld升级时,日志中出现“[cpld]get cpld device info failed”,大概率是ChipInfo获取失败,如果该Chip是挂在Jtag链路上的,一般有以下几种情况:

1、jtag链路没有切过去,在BMC中输入一下命令,看看是否可以获取到版本信息:

busctl --user set-property bmc.kepler.hwproxy /bmc/kepler/Accessor/Accessor_JtagSwitch_010101 bmc.kepler.Accessor Value t _( _ 为对应的链路,当前EXU为0,BCU为1,具体查看LogicFirmware对象的FirmwareRoute属性)

设置后查看信息,value是否改变:

txt
busctl --user introspect bmc.kepler.hwproxy /bmc/kepler/Accessor/Accessor_JtagSwitch_010101
NAME                                TYPE      SIGNATURE   RESULT/VALUE                 FLAGS
bmc.kepler.Accessor                 interface -           -                            -
.Status                             property  y           0                            emits-change
.Value                              property  t           1                            emits-change writable
bmc.kepler.Object.Properties        interface -           -                            -
.GetAllWithContext                  method    a{ss}s      a{sv}                        -
.GetOptions                         method    a{ss}ss     a{ss}                        -
.GetPrivateProperties               method    a{ss}       s                            -
.GetPropertiesByNames               method    a{ss}sas    a{sv}a{sv}                   -
.GetPropertiesByOptions             method    a{ss}sa{ss} as                           -
.GetPropertyDetail                  method    a{ss}ss     s                            -
.GetWithContext                     method    a{ss}ss     v                            -
.SetWithContext                     method    a{ss}ssv    -                            -
.ClassName                          property  s           "Accessor"                   emits-change
.ObjectIdentifier                   property  (ysss)      1 "1" "1" "010101"           emits-change
.ObjectName                         property  s           "Accessor_JtagSwitch_010101" emits-change
.TraceSamplingRate                  property  d           0                            emits-change
org.freedesktop.DBus.Introspectable interface -           -                            -
.Introspect                         method    -           s                            -
org.freedesktop.DBus.ObjectManager  interface -           -                            -
.GetManagedObjects                  method    -           a{oa{sa{sv}}}                -
org.freedesktop.DBus.Peer           interface -           -                            -
.GetMachineId                       method    -           s                            -
.Ping                               method    -           -                            -
org.freedesktop.DBus.Properties     interface -           -                            -
.Get                                method    ss          v                            -
.GetAll                             method    s           a{sv}                        -
.Set                                method    ssv         -                            -
.PropertiesChanged                  signal    sa{sv}as    -                            -

busctl --user call bmc.kepler.hwproxy /bmc/kepler/Chip/Cpld/Cpld_1_0101 bmc.kepler.Chip.JtagTarget GetChipIdcode a{ss} 0(0101为EXU,010101为BCU,具体查看板卡的position)

以基础板为例子,正常获取到chip信息:

txt
busctl --user set-property bmc.kepler.hwproxy /bmc/kepler/Accessor/Accessor_JtagSwitch_010101 bmc.kepler.Accessor Value t 1
busctl --user cal1 bmc.kepler.hwproxy /bmc/kepler/Chip/Cpld/Cpld_1_010101 bmc.kepler.Chip.JtagTarget GetChipIdcode a{ss} 0
au 2 35899 35899

2、cpld扫链失败,输入dmesg驱动日志查看,可能是扩展板CPLD的版本问题,或者BMC测链路未通,未将CPLD和1711选通

3、jtag链路异常,测波形排查Jtag链路

传感器信息

1、可在“系统管理”->“系统信息”->“门限传感器”页面查看; 2、通过命令行输入"ipmcget -t sensor -d list"查看 3、ipmi等接口查看

常见问题

1、传感器信息获取失败,可能是传感器未配置或者传感器配置错误; 2、传感器信息获取到的门限值和实际值存在差异,可能是传感器配置错误或者传感器本身存在问题; 3、传感器无法正确获取读值信息,可能是配置错误或硬件本身不存在对应传感器,如:模组板一般是贴片内存,没有内存温感或配置的数据源数据类型和预期数据类型不匹配。