Set FDM Info
更新时间: 2025/06/26
在Gitcode上查看源码

17h-设置故障诊断特性辅助信息(Set-FDM-Info)

修订记录

openUBMC版本号修订日期修订内容
25.062025/06/26初稿,新增命令详情

基本信息

功能说明

设置故障诊断特性辅助信息。

权限

DiagnoseMgnt

命令信息

请求信息

字节顺序域取值说明
NetFn30h
CMD92h
1:3Manufacturer ID,LS Byte first。长度固定3个字节,例如,某厂家ID是2011,对应十六进制为0x0007DB,则字节序为第1个字节为DBh、第2个字节为07h、第3个字节为00h。
4Sub command,子命令=17h
5FDM Configuration Parameter,见 表1 。
6写入数据长度
7:N写入的数据

响应信息

字节顺序域取值说明
1Completion Code
2:4Manufacturer ID,LS Byte first。长度固定3个字节,例如,某厂家ID是2011,对应十六进制为0x0007DB,则字节序为第1个字节为DBh、第2个字节为07h、第3个字节为00h。

命令样例

设置bus size

请求:

ipmicmd -k "0f 00 30 92 db 07 00 17 00 01 00" smi 0

响应:

0f 31 00 92 c1

附表1 FDM configuration parameters

ParameterParameter Data#(10进制)
CPU BusNO.
(write only)
data1: CPU Count (一个平台支持的最大CPU个数)
data2:N Bus Start Address
(按顺序上报每个CPU的Bus0 ,下
CPU0Bus0, CPU1Bus0, CPU2Bus0, CPU3Bus0…...)

dataN+1:2N-1 Bus Size
(按顺序上报每个CPU分配的bus数目),在现有bus均分模式下,256个bus都分配掉时,对4P来说这些字段都是0x40,8P都是0x20。
1
Setup Status
(read write)
data1- FDM Enable 0:Disable 1:Enable 0xff:NA
data2-EMCA/EMCA2 0:Disable 1:Enable 0xff:NA
data3-IOMCA 0:Disable 1:Enable 0xff:NA
data4-Viral 0:Disable 1:Enable 0xff:NA
data5-CDC 0:Disable 1:Enable 0xff:NA
data6-System Error 0:Disable 1:Enable 0xff:NA
data7:8-Reserved Default value 0xFF
2
PlatForm
(write only)
data1
0: Unknow
1: Sandy Brige
2: Ivy Brige
3: HasWell
6: icelake
3
MCE RegVal
(write only)
data1:2-RegNo 寄存器地址,mce部分寄存器无法通过ME获取,只能由BIOS上报
data3:10 RegVal 寄存器值
……
(以寄存器地址和寄存器值的格式排列循环)
MaxLength 240Bytes
4
PCIE Addr Info
(write only)
data1:1-状态码
data2:n-数据,详见 表2 。
5
Memory Addr Info
(write only)
data1:1-状态码
data2:1-类型:
Purley之前:1-SAD,2-TAD,3 – RIR
Purley(包含cooplake):0x10、0x11、0x12、0x13-SAD,0x20-TAD,0x30、0x31、0x32 – RIR
Whitley(IceLake):0x40、0x41、0x42、0x43、0x44-SAD,0x50、0x51-TAD,0x60、0x61 – RIR,0x70 – Platform
ARM(1620):0x80-HHA_INTLV,0x81-DDRC_INTLV

data3:n-数据,详见 表3 。
6
FDM Version
(read only)
data1:1-FDM版本的主版本,1-FDM 1.0,2-FDM2.0,以此类推
data2:1-FDM版本的次版本,从0开始
7
IERR Statusdata1:1-是否发生过IERR,当发生IERR时,会手动或自动热复位系统,然后BIOS收集故障数据并上报给BMC,但发生IERR故障时,BIOS需要将系统冷复位一次,才能确保初始化彻底;该参数就是告诉BIOS最近发生过IERR,BIOS上报完故障数据后,再将系统冷复位
0-未发生过IERR
1-发生过IERR
8
CPU Threads Infodata1:1-socket_id
data2:n-对应socket的线程信息
9
Address Space Infodata1:1-地址类型:
1:TF地址段
data2:8-起始地址,低字节在前
data10:8-地址范围,低字节在前
10
CPU Threads Info
(whitley-icelake)
data1:1-socket_id
data2:1-core count
data3:1-Hyper Thread //是否使能
data4:n-ThreadsID[cores] //cores范围 0~core count-1;上报值参考MSR:0x53,只上报Thread0 Id信息。
11
Reg Report Versiondata1:1-sub_cmd 0x21
data2:1-支持上报ARM寄存器的版本号(2021.8.12,VERSION_1: 支持DDRC_V2)
13
Integrated PCIe Addr Info
(write only)
上报Socket内集成的PCIe化控制器(Integrated PCIe Controller)的BDF信息:
data1:1-Socket:CPU的逻辑Id, 从0开始取值
data2:1-Report Controller Count:上报PCIe化控制器信息个数,按命令实际上报个数填写
data3:1-Integrated Controller Type:PCIe化控制器类型;0:PCIeCore,1:PCIe化Nic控制器,2:PCIe化NIC控制器,3:PCIe化SAS控制器,4:PCIe化SATA控制器,5:PCIe化ZIP控制器,6:PCIe化SEC控制器;
data4:1-Integrated Controller Index:表示data3类型的索引,取值[0,1,2...n]
data5:1-Bus
data6:1-Device
data7:1-Function
data8:12-格式与data3:7一致,表示为第2个控制器信息
datan:n+4-格式与data3:7一致,表示为第n个控制器信息
14
Device Health Status
(read only)
NPU设备健康状态查询
data1:1-查询dev_type的数量;
data2:n-待查dev_type列表,NPU (0),XPU_CARRIER_BOARD (1)
响应:
data1:1-查询到的设备数量
data2:1-设备dev_type
data3:1-设备id
data4:1-健康状态;0:Good,1:Degrade,2:Fail,255:Unknow
data5:1-预留字段
data6:4-格式与data2:5一致,表示为第2个查询设备的健康状态
datan:n+4-格式与data2:5一致,表示为第n个查询设备的健康状态
16
Memory Controller Configuration
(write only)
内存配置信息上报
data1:1-Platform Id:用来区分不同平台对应不同的CPU Id
data2:1-Memory Controller Type:用来指示CPU内存控制器类型;0:DDRC,1:HBMC
data3:1-状态码;1:开始,2:上报中,3:结束,4:热插拔更新内存地址结束;
data4:1-类型:1:内存控制器交织配置信息
data5:n-数据,详见表9-4。
17
MultiSystem Memory Space Info
(write only)
支持多系统的内存配置参数上报
data1:1-Global System Id:全局系统编号
data2:1-Local System Id:局部系统编号
data3:1-Soc Id:用于区分不同的芯片平台代次
data4:1-Memory Controller Type:内存控制器类型;0:DDRC,1:HBMC
data5:1-State:状态码;1:开始上报,2:上报过程中,3:结束上报
data6:1-Data Type:数据类型;详见 表4
data7:n-Data:数据;详见 表4
18
MultiSystem Address Config Info
(write only)
支持多系统的系统地址空间配置上报
data1:1-Global System Id:全局系统编号
data2:1-Local System Id:局部系统编号
data3:1-Address Type:地址类型;详见 表5
data4:n-Data:数据;详见 表5
19
MultiSystem PCIe Addr Info
(write only)
支持多系统的PCIe配置资源上报
data1:1-Global System Id:全局系统编号
data2:1-Local System Id:局部系统编号
data3:n-Data:数据;详见 表2
20
Bios Report Memory RAS Resource上报内存容错资源信息
data1:1 – Source Type:表示不同资源的类型;0-ACLS资源数量,1-sPPR资源粒度
data2:1 – Global System Id:全局系统编号
data3:1 – Local System Id:局部系统编号
data4:n – 数据,详情见 表6
21

附表2 PCIE Address Parameter

状态数据状态码
开始1
传输data1:1 – Segment //9032等8路产品以上时需要区分不同的4P,1 based, 0表示不涉及
data2:1 – Socket Id //CPU的逻辑Id,从0开始编号
data3:1-Bus //与PCIE Slot一一对应的 root port BDF
data4:1-Device
data5:1-Function
data6:1-Component Type //在上报PCIE SWITCH下的PCIE Slot地址信息时需要上报该PCIE Slot支持的部件类型,对未挂在PCIE SWITCH下的PCIE Slot上报时填0xff , 目前只有部分OSCA单板的MEZZ卡和PCIE标卡接到PCIE SWITCH上。
data7:1-Group Id //产品存在Slot Id重复时,使用Group Id区分,从1开始,目前只有X6800的单板上PCIE有多个Group,其他产品填1,在上报PCIE SWITCH下的PCIE Slot地址信息时需要上报该PCIE Slot所属group id,对未挂在PCIE SWITCH下的PCIE Slot上报时填0xff。
data8:1-Slot Id //在上报PCIE SWITCH下的PCIE Slot地址信息时需要上报该PCIE Slot的slot id,对未挂在PCIE SWITCH下的PCIE Slot上报时填0xff。
data9:2 – Vendor Id
data11:2 – Device Id
data13:1 – SecBus //Secondary Bus Number
data14:1 – SubBus; //Subordinate Bus Number
data15:1 – BDF No. //BDF序号,一个部件可能有一个或多个BDF,都按序号上报,0 based
data16:1 – Reserved //预留字节,BIOS上报时填0。
data17:4 – PciCfg Low Base Addr Start //PCI的内存地址空间低地址开始,小字节序,下同。
data21:4 – PciCfg Low Base Addr Start //PCI的内存地址空间低地址结束,小字节序,下同。
data25:8 – PciCfg High Base Addr Start //PCI的内存地址空间高地址开始,小字节序,下同。
data33:8 – PciCfg High Base Addr End //PCI的内存地址空间高地址结束,小字节序,下同。
data41:3-reserved //预留字节,BIOS上报时填0。
data44:1 – MMIO Addr Range Count
data45:8-MMIO Addr Range0 Base //LS-byte first,小字节序,下同。
data53:8-MMIO Addr Range0 Len
......
2
启动阶段上报PCIE地址信息结束3
运行过程中PCIE地址信息更新结束4

附表3 Memory Address Parameter

状态类型数据状态码
开始1
传输






SAD(1)
data1:1-socket
data2:1 – resv
data3:2-node
data5:4-TOLM
data9:80-dram_rule[20]
data89:80-interleave_list[20]
2
TAD(2)
data1:1-socket
data2:1-resv
data3:2-ha
data5:4 – HaSYSDEFAULTURE
data9:4 – HaSYSDEFAULTURE2
data13:48 – TadWayness[12]
data61:4 – MacMtr
-
RIR(3)
data1:1-socket
data2:1-channel
data3:2-imc
data5:20 – imcRIRWaynessLimit[5]
data25:160 – imcRIRIlv0Offset[5][8]
data185:48 – imcTADChnIlvOffset[12]
-
SAD_REG_PURLEY_COMM
(0x10,PURLEY)
data1:1-socket
data2:1-resv
data3:2 – imcInterBitmap
data5:4-tolm
data9:128-mcRouteTable[4][8]
data137:48-reserved
-
SAD_REG_PURLEY_CHA
(0x11,PURLEY)
data1:1-socket
data2:3-resv
data5:96-cboDramRule[24]
data101:128-CHAInterleaveListCfg[24];
-
SAD_REG_PURLEY_MC
(0x12,PURLEY)
data1:1-socket
data2:3-resv
data5:96-mcFMDramRule[24]
data101:128-MCInterleaveListCfg[24];
-
SAD_REG_PURLEY_NM
(0x13,PURLEY)
data1:1-socket
data2:3-resv
data5:96-mcNMDramRule[24]
data101:128-MCNMInterleaveListCfg[24];
-
TAD_REG_PURLEY
(0x20,PURLEY)
data1:1 – socket
data2:1-resv
data3:2-imc
data5:32 – tadWayness
data37:32 – tadbase
data69:4 – mcMtr
data73:4 – modeM2mem
data77:4 – mirrorChnls
data81:4 – mirrorFailover
data85:48-reserved
-
MEM_RIR_REG_PURLEY_COMM
(0x30,PURLER)
data1:1 – socket
data2:1-channel
data3:2-imc
data5:16 – imcRIRWaynessLimit[4]
data21:128 – imcRIRIlv0Offset[4][8]
data149:32 – imcTADChnIlvOffset[8]
data181:12-dimmmtr[3]
data193:24-reserved
-
RIR_REG_PURLEY_FM
(0x31,PURLER)
data1:1 – socket
data2:1-channel
data3:2-imc
data5:16 – imcFMRIRWaynessLimit[4]
data21:32 – imcFMRIRIlvOffset[4][2]
data53:32 – fmTADChnIlvoffset[8]
-
ADDDC_REG_PURLEY
(0x32,PURLER)
data1:1 – socket
data2:1-channel
data3:2-imc
data5:4-sparing_control
data9:4-mcMtr
data13:16 – adddc_region_control[4]
data29:48 – reserved
-
0x40-SAD COMMdata1:1-socket
data2:3-reserved
data5:4-tolm
data9:4-BLOCK_DECODER_ADDR_N0_CHABC_SAD1_REG
data13:4-BLOCK_DECODER_ADDR_N1_CHABC_SAD1_REG
data17:[82]-BLOCK_DECODER_EN_CFG_CHABC_SAD1_REG[8] //CFG_0~CFG_7
data33:[14
4] mRemoteDramRuleCfgN0[14]
data89:[14*4]-mRemoteDramRuleCfgN1[14]
data145:48-reserved
-
0X41-SAD CHAdata1:1-socket
data2:3-reserved
data5:[164] mDramRuleCfgCha[16]
data69:[16
4] mInterleaveListCfgCha[16]
data133:48-reserved
-
0X42-SAD MCdata1:1-socket
data2:3-reserved
data5:4-DRAM_MC_TARGET_CHABC_SAD_REG
data9:4-DRAM_MC_CHANNEL_CHABC_SAD_REG
data13:4-DRAM_GLOBAL_INTERLEAVE_CHABC_SAD_REG
data17:[224]-mDramRt0ModeOffset[2][2]
data33:[224]-mDramRt1ModeOffset[2][2]
data49:[2*4]-mDramRt2ModeOffset[2]
data57:104-reserved
-
0x43-SAD SNCdata1:1-Socket
data2:3-reserved
data5:4-CHA_SNC_CONFIG_CHA_PMA_REG
data9:4-UMA_CLUSTER_CONFIG_IIO_VTD_REG
data13:4-SNC_UPPER_BASE_IIO_VTD_REG
data17:[54]-mIioSncBaseRegisterOffset[5]
data37:[2
424]-mDramTgtRouteTable[cluster][4][2] //cluster=2,当前配置只有一个cluster时,未使用的cluster数组填0。
data101:[2324]-mDramChRouteTable[cluster][3][2] //cluster=2,当前配置只有一个cluster时,未使用的cluster数组填0。
data101:[2
324]-mDramChRouteTable[cluster][3][2] //cluster==2,当前配置只有一个cluster时,未使用的cluster数组填0;
data149:48-Reserved data149:48-Reserved
-
0x44-SAD MC RuleCFGdata1:1 – socket
data2:1-channel
data3:2-iMC
data5:[84]-mMcDramRuleCfgN0[8]
data37:[8
4] – mMcDramRuleCfgN1[8]
data69:48-Reserved
-
0x50-TADdata1:1 – socket
data2:1-reserved
data3:2 – iMC
data5:4-reserved
data9:4 – MIRRORFAILOVER
data13:4-MIRRORCHNLS
data17:[20*8] – SAD2TAD[20] //通过写TAD_RD_N0_M2MEM_MAIN_REG寄存器,然后读TAD_RD_N0/N1_M2MEM_MAIN_REG获取。
data177:48-Reserved
-
0x51 – TAD CH interleavedata1:1 – socket
data2:1-channel
data3:2 – iMC
data5:[124] – TadChnIlvOffsetN0[12]
data53:[12
4]-TadChnIlvOffsetN1[12]
data101:4-MCNMCACHINGINTLV_MC_2LM_REG
data105:4-MCNMCACHINGOFFSET_MC_2LM_REG
data109:4-MCNMCACHINGCFG_MC_2LM_REG
data113:48-Reserved
-
0x60-RIR BASEdata1:1 – socket
data2:1-channel
data3:2-iMC
data5:4 – mcMtr
data9:[24] – DimmMtrOffset[2]
data17:4 – AMAP_MC_MAIN_REG
data21:[4
4] – RirWaynessLimit[4]
data37:[484] – RirIlvOffset[4][8]
data165:[44]-FmRirWaynessLimit[4]
data181:[4
2*4]-FmRirIlvOffset[4][2]
data213:16-Reserved
-
0X61-ADDDC regiondata1:1-socket
data2:1-channel
data3:2-iMC
data5:4-sparing_control
data9:4 – mcMtr
data13:4-adddc_region0_control
data17:4-adddc_region1_control
data21:4-adddc_region2_control
data25:4-adddc_region3_control
data29:1-ADDDC_REGION0_MCDDC_DP_REG
data30:1-ADDDC_REGION1_MCDDC_DP_REG
data31:1-ADDDC_REGION2_MCDDC_DP_REG
data32:1-ADDDC_REGION3_MCDDC_DP_REG
data33:48-Reserved
-
0x70-Platformdata1:4-VGA_RAM_BASE
data5:4-VGA_RAM_Limit
data9:4-mMmCfgBase
data13:4-mMmCfgLimit
data17:4-mPlatGlobalMmiolBase //low base
data21:4-mPlatGlobalMmiolLimit
data25:8-mPlatGlobalMmiohBase //high Base
data33:8-mPlatGlobalMmiohLimit
data41:4-MESEGBase //ME 段地址空间
data45:4-MESEGLimit
data49:4-TSEGBase //TSEG 段地址空间
data53:4-TSEGLimit
data57:8-tolm //高4byte填0
data65:8-tohm
data73:1-mTotCHA //当前CPU的CHA数目
data74:47-reserved
-
HHA_INTLV
(0x80)
data1:1-socket //0~3
data2:1-totem //totem编号,非序号,totemA为1,totemB为3。
data3:2-reserved
data5:4-intlv_addr_cfg
data9:48-msd_ctrl
data41:4
8-msd_map
-
DDRC_INTLV
(0x81)
data1:1-socket //0~3
data2:1-ddrc //0~7
data3:2-reserved
data5:4-work_mode3
data9:4-ddr_mode
data13:4-work_mode_dimm
data17:4-rank_vol0
data21:4-rank_vol1
data25:4-rasc_mode
-
启动阶段上报内存地址信息结束3
热插拔更新内存地址信息结束4

附表4 MultiSystem Memory Space Info Parameter

Soc IdMemory Controller TypeStateData TypeData
30-DDRC1-开始上报
2-上报过程中1-DDRC_INTLVdata1:1-socket
data2:[14]-COM_MSD_EN
data6:[8
4]-COM_MSD_CTRL[8]
data38:[84]-COM_MSDDMCMAP_TA[8]
data70:[8
4]-COM_MSDDMCMAP_TB[8]
data102:[84]-COM_MSDDMCMAP_TC[8]
data134:[4
4]-COM_MSDSKTMAP[4]
data150:[14]-COM_DDR_INTLV_ADDR
data154:[8
4]-reserved
2-上报过程中2- Memory Address Matrixdata1:1-socket
data2:1-die:TA为0,TB为3
data3:1-channel:局部通道,每个Totem下4通道,取值[0-3]
data4:4-offset 写入的数据偏移,从0开始,要求顺序写入
data8:4-len 写入数据的长度
data9:[8*N]-AddrMatric[N]
3-结束上报

附表5 MultiSystem Address Config Info Parameter

Address Type对应地址类型数据
1-TF spaceTF地址段data1:8-BaseAddr:TF起始地址
data9:8-AddrLen:TF地址范围长度
2-HBM Mirror Window and Address RangeHBM镜像地址范围data1:1-socket
data2:1-die
data3:1-WorkingMode:工作模式配置;6或9:PG,15:AG
data4:1-TotalMirrorWindowNum,主备镜像窗口个数
data5:1-WindowIndex, 窗口索引,从0开始编号
data6:1-MasterAddrRangeNum:主区地址范围数,从1开始(示例:2)
data7:1-SparingAddrRangeNum:备区地址范围数,从1开始(示例:1)
data8:8-BaseAddr:窗口0主区1起始地址
data16:8-AddrLen
data24:8-BaseAddr:窗口0主区2起始地址
data32:8-AddrLen
data40:8-BaseAddr:窗口0备区1起始地址
data48:8-AddrLen

data n:1-WindowIndex n,窗口n
data n:1-MasterAddrRangeNum:窗口n主区地址范围数(示例1)
data n:1-SparingAddrRangeNum:窗口n备区地址范围数(示例1)
data n:8-BaseAddr:窗口n主区1起始地址
data n:8-AddrLen
data n:8-BaseAddr:窗口n备区1起始地址
data n:8-AddrLen

附表6 Bios Report Memory RAS Resource

Source Type对应资源数据
0ACLSdata1:1-socket
data2:1-logical channel // 逻辑通道
data3:1-SubChannel0 ACLS total // SubChannel0 ACLS资源总量
data4:1-SubChannel0 ACLS current // SubChannel0 ACLS资源剩余量
data5:1-SubChannel1 ACLS total // SubChannel1 ACLS资源总量
data6:1-SubChannel1 ACLS current // SubChannel1 ACLS资源剩余量
… // 该条消息中包含多个通道的数据
data6n+1:1-socket
data6n+2:1-logical channel // 逻辑通道
data6n+3:1-SubChannel0 ACLS total // SubChannel0 ACLS资源总量
data6n+4:1-SubChannel0 ACLS current // SubChannel0 ACLS资源剩余量
data6n+5:1-SubChannel1 ACLS total // SubChannel1 ACLS资源总量
data6n+6:1-SubChannel1 ACLS current // SubChannel1 ACLS资源剩余量
1sPPRdata1:1 – cpu
data2:1 – logical channel // 逻辑通道
data3:1 – dimm0 sPPR granularity; 0:Bank, 1:BankGroup // dimm0 sPPR资源粒度
data4:1 – dimm1 sPPR granularity; 0:Bank, 1:BankGroup // dimm1 sPPR资源粒度
...//该条消息中包含多个通道的数据
data4n+1:1 – cpu
data4n+2:1 – logical channel // 逻辑通道
data4n+3:1 – dimm0 sPPR granularity; 0:Bank, 1:BankGroup // dimm0 sPPR资源粒度
data4n+4:1 – dimm1 sPPR granularity; 0:Bank, 1:BankGroup // dimm1 sPPR资源粒度

返回到索引