Get System Info Parameters
更新时间: 2025/06/26
在Gitcode上查看源码59h-查询系统信息(Get-System-Info-Parameters)
修订记录
| openUBMC版本号 | 修订日期 | 修订内容 |
|---|---|---|
| 25.06 | 2025/06/26 | 初稿,新增命令详情 |
基本信息
功能说明
查询保存在BMC上的第三方信息。
说明: 第三方信息在 BMC 是仅保存的,因此在查询时先要保证设置之后再行查询,直接查询可能导致结果不符合预期。设置系统信息命令请参考: Set System Info Parameters 。
权限
ReadOnly
命令信息
请求信息
| 字节顺序 | 域取值说明 |
|---|---|
| NetFn | App 06h |
| CMD | 59h |
| 1 | [7]-0b=get parameter 1b=get parameter revision only [6:0]-reserved |
| 2 | Parameter selector |
| 3 | Set Selector. Selects a given set of parameters under a given Parameter selector value. 00h if parameter doesn't use a Set Selector |
| 4 | Block Selector (00h if parameter does not require a block number) |
响应信息
| 字节顺序 | 域取值说明 |
|---|---|
| 1 | Completion Code. Generic codes, plus following command-specific completion code(s): 80h=parameter not supported. C9h=Parameter out of range. One or more parameters in the data field of the Request are out of range. |
| 2 | [7:0]-Parameter revision. Format: MSN=present revision. LSN=oldest revision parameter is backward compatible with. 11h for parameters in this specification. |
| The following data bytes are not returned when the 'get parameter revision only' bit is 1b. | |
| 3:N | Configuration parameter data, 参见 表1 。If the rollback feature is implemented, the BMC makes a copy of the existing parameters when the 'set in progress' state becomes asserted (See the Set In Progress parameter #0). While the 'set in progress' state is active, the BMC will return data from this copy of the parameters, plus any uncommitted changes that were made to the data. Otherwise, the BMC returns parameter data from non-volatile storage. |
命令样例
查询保存在BMC上的三方信息
请求:
ipmicmd -k "0f 00 06 59 80 c2 00 00" smi 0响应:
0f 07 00 59 00 00 01 02附表1 System Info Parameters
| Parameter selector | # | 数据 | 说明 |
|---|---|---|---|
| Set In Progress (volatile) | 0 | data 1 - This parameter is used to indicate when any of the following parameters are being updated, and when the updates are completed. The bit is primarily provided to alert software that some other software or utility is in the process of making changes to the data. An implementation can also elect to provide a ‘rollback’ feature that uses this information to decide whether to ‘roll back’ to the previous configuration information, or to accept the configuration change. If used, the roll back shall restore all parameters to their previous state. Otherwise, the change shall take effect when the write occurs. [7:2] - reserved [1:0] – 00b = set complete. If a system reset or transition to powered down state occurs while ‘set in progress’ is active, the BMC will go to the ‘set complete’ state. If rollback is implemented, going directly to ‘set complete’ without first doing a ‘commit write’ will cause any pending write data to be discarded. 01b = set in progress. This flag indicates that some utility or other software is presently doing writes to parameter data. It is a notification flag only, it is not a resource lock. The BMC does not provide any interlock mechanism that would prevent other software from writing parameter data while ‘set in progress’ value is present on these bits. 10b = commit write (optional). This is only used if a rollback is implemented. The BMC will save the data that has been written since the last time the ‘set in progress’ and then go to the ‘set in progress’ state. An error completion code will be returned if this option is not supported. 11b = reserved | - |
| System Firmware version | 1 | System Firmware Version string in text. System firmware that requires multiple strings to represent version information can separate those strings using 00h as the delimiter for ASCII+LATIN1 and UTF-8 encoded string data, or 0000h for UNICODE encoded string data. For IA32 and EMT64 utilizing non-EFI system firmware, it is recommended that four blocks (64 bytes) of storage be provided. For EFI-based systems, 256 bytes is recommended. Note: System firmware may optionally include a routine that checks during POST to see if this parameter is up-to-date with the present firmware version, and if not, update it automatically. Other implementations may elect to automatically update this parameter when system firmware updates occur. data 1 - set selector = 16-byte data block number to access, 0 based. Two data blocks (32-bytes) for string data required, at least three recommended. Number of effective characters will be dependent on the encoding selected in string data byte 1. data 2:17 - 16-byte block for system firmware name string data For the first block of string data (set selector = 0), the first two bytes indicate the encoding of the string and its overall length as follows: string data byte 1: [7:4] - reserved [3:0] - encoding 0h = ASCII+Latin1 1h = UTF-8 2h = UNICODE all other = reserved. string data byte 2: [7:0] - string length (in bytes, 1-based | |
| System name | 2 | System Name. A name for the overall system to be associated with the BMC. This may or may not match other names that are used for the system. data 1 - set selector = 16-byte data block number to access, 0 based. Two data blocks (32-bytes) for string data required, at least three recommended. Number of effective characters will be dependent on the encoding selected in string data byte 1. data 2:17 - 16-byte block for system name string data For the first block of string data (set selector = 0), the first two string data bytes indicate the encoding of the string and its overall length as follows. There is no required value to be set or used for any bytes that are past the string length. string data byte 1: [7:4] - reserved [3:0] - encoding 0h = ASCII+Latin1 1h = UTF-8 (ls-byte first) 2h = UNICODE (ls-byte first) all other = reserved string data byte 2: [7:0] - string length (in bytes, 1-based) | |
| Primary Operating System Name (non-volatile) | 3 | Primary Operating system name. The OS that the system boots to for this BMC according to the default configuration of its system firmware. (Note: in systems that may have multiple physical partitions, this reflects the OS for the partition that the given BMC is in. For systems that have virtual machine capability being utilized [where more than one virtual systems may be sharing a physical BMC], it is recommended that this value hold the name of the virtual machine monitor (VMM) software or VMM type) data 1 - set selector = 16-byte data block number to access, 0 based. Two data blocks (32-bytes) for string data required, at least three recommended. Number of effective characters will be dependent on the encoding selected in string data byte 1. data 2:17 - 16-byte block for system name string data For the first block of string data (set selector = 0), the first two bytes indicate the encoding of the string and its overall length as follows. There is no required value to be set or used for any bytes that are past the string length. string data byte 1: [7:4] – reserved [3:0] – encoding 0h = ASCII+Latin1 1h = UTF-8 2h = UNICODE all other = reserved. string data byte 2: [7:0] - string length (in bytes, 1-based) | |
| Operating System Name (volatile) | 4 | Present Operating system name. The name of the operating system that is presently running and able to access this BMC's system interface. The BMC automatically clears this value by zeroing out the string length on system power cycles and resets. (Note: in systems that may have multiple physical partitions, this reflects the OS for the partition that the given BMC is in. For systems that have virtual machine capability being utilized [where more than one virtual systems may be sharing a physical BMC], it is recommended that this value hold the name of the virtual machine monitor (VMM) software or VMM type) data 1 - set selector = 16-byte data block number to access, 0 based. Two data blocks (32-bytes) for string data required, at least three recommended. Number of effective characters will be dependent on the encoding selected in string data byte 1. data 2:17 - 16-byte block for system name string data For the first block of string data (set selector = 1), the first two bytes indicate the encoding of the string and its overall length as follows: string data byte 1: [7:4] - reserved [3:0] - encoding 0h = ASCII+Latin1 1h = UTF-8 2h = UNICODE all other = reserved. string data byte 2: [7:0] - string length (in bytes, 1-based) | |
| Present OS Version number | 5 | OS version string for the Present Operating system listed in parameter 4. Selector based, same as OS name. Volatile. The BMC automatically clears this value by zeroing out the string length on system power cycles and resets. | |
| BMC URL (optional, if implemented can be r/w or read-only) | 6 | URL string of the general form (see [RFC3986]) http(s)😕/<ip>:<port> or http(s)😕/<DNSname>:<port> non-volatile.Default = NULL string | |
| Base OS/Hypervisor URL For Manageability (optional, if implemented can be r/w or read-only) | 7 | URL for Base OS/Hypervisor use to report a management URL string of the general form (see [RFC3986]): http(s)😕/<ip>:<port> or http(s)😕/<DNSname>:<port> Volatile. The BMC automatically clears this value by zeroing out the string length on system power cycles and resets. | |
| PCIe Card Info | C0h | data1:PCIe slot number,用于指示主板上有几个PCIe插槽 data2-3:PCIe Card1 VID,LSB First,如果插槽未插卡,填充0xFFFF。 data4-5:PCIe Card1 DID,LSB First,如果插槽未插卡,填充0xFFFF。 [data6-7]:PCIe Card2 VID,LSB First,可选参数,随插槽个数确定。 [data8-9]:PCIe Card2 DID,LSB First,可选参数,随插槽个数确定。 … | 用于BIOS向BMC上报PCIe插卡类型,BMC可以根据不同的插卡调整PCIe插卡相关传感器的物理参数(如SMBUS从地址,寄存器偏移等)。 |
| Port Type | C1h | - data1-Interface Selector (Set Selector)- data2-Port Selector (Block Selector)- data3-Port type 00h -GE 01h -10GE 02h -40GE 03h-FC 04h-FCoE- data4:8-SerDes parameter | 在某些产品中由于业务板与交换模块之间没有PHY,无法协商,且交换上支持FC和FCoE两种端口,所以需要通过机框管理板根据不同的交换模块设置业务板端口类型,以支持用一种业务板配不同交换模块使用的自适应。此参数用于业务板端口设置。 |
| System Info | C2h | - data1-set selector (0 base)- data2-17-system information | 系统上报信息,保存到BMC中,SM板发送get命令过来获取。Set selector限制为16个区,取值0-15,每个区限制16个字节;(发送的消息中第一个block的第一个字节表示所有需要发送的数据长度,SM板根据该字节来判断需要读几个block) |
| PCIe Card Width (X) | C3h | - data1-PCIENUM- data2-PCIE1 device ID- data3-PCIE1 width- data4-PCIE 2 device ID- data5-PCIE 2 width ... PCIE width: 00h-1X 01h-2X 02h-4X 03h-8X 04h-16X Other reserved 其中PCIE#的顺序由硬件给出目前只有华为自研的扣卡支持。 | - BMC向硬件获取PCIE卡总线宽度类型,BIOS向BMC获取类型用于协商PCIE宽度。- BMC只返回在位的PCIE卡类型。 |
| Register-req | C4h | System software registers to BMC.- data1-The redfish feature supported mask bit[0] is support "Event message subscription" 1: support 0: not support bit[1:7]: all reserved,default 0x0- data2-softwaretype 0:BMA 1:SP 2:eSight- data3:4-Reserved- data5-Register flag 1- Register 0- Unregister- data6-协议字段 bit[0]: IP协议类型 0: IPv4 1: IPv6 bit[1]: HTTP协议类型 0: HTTP(注意:openUBMC 5.05.00.02之后不支持设置HTTP协议) 1: HTTPS bit[2-4]:bob通道类型- 000-veth- 001-cdev- 010-usb-linux(暂只支持1711平台)- 011-usb-windows(暂不支持,保留)- 100-usb-vmware(暂不支持,保留) bit[5:7]: all reserved, default 0x0- data7:22-IP Addr: IPv4(byte9~byte12);IPv6地址,MSByte first- data23:24-Port,MSByte first, Max 31 Bytes. End by null if less than 31 Bytes. | write-only,bma向bmc注册。 |
| Register-rsp | C4h | - data1-Completion Code- data2- System software ID- data3-IP协议 0: IPv4 1: IPv6- data4:19-IP Addr: IPv4(byte9~byte12)或IPv6地址,MSByte first- data20:21-Port,MSByte first | |
| Heart Beat-req | C5h | System software send heart beat to BMC.- data1-System software ID- data2-System software version-major BCD- data3-System software version-minor BCD- data4-System software version-revision ASCII- data5-restful state 0-online 1-offline- data6:31-Reseverd | write-only,bma向bmc定时发心跳 |
| Heart Beat-rsp | C5h | - data1- Completion Code- data2- BMC state 0-initial 1-running- data3-restful state 0-online 1-offline | |
| PCIe Card BDF | C6h | - data1 - [7]: End of list. 0=last frame data. 1=middle frame data. [6:0]: total frame count.- data2-current frame number,1 based,当前第几帧- data3 -PCIe Slot Numbe For This Frame,用于指示 本帧上报的PCIe标准插槽数- data4-PCIe Card1 Segment,对于通过NC等连接的多路组合服务器,表示独立单元序号,如:32P服务器由8个独立物理4P单元组成(不同单元的PCIE设备BDF可能一样,需要区分),则序号为1~8;否则填0- data5-PCIe Card1 CPU Number,PCIe总线归属CPU号,从0开始编号- data6-PCIe Card1 Bus Number,如果插槽未插卡且非热插拔,填充0xFF- data7-PCIe Card1 Device Number,如果插槽未插卡且非热插拔,填充0xFF- data8-PCIe Card1 Function Number,如果插槽未插卡且非热插拔,填充0xFF- data9-PCIe Card2 Segment,可选参数,随插槽个数确定- data10-PCIe Card2 CPU Number,可选参数,随插槽个数确定- data11-PCIe Card2 Bus Number,可选参数,随插槽个数确定- data12-PCIe Card2 Device Number,可选参数,随插槽个数确定- data13-PCIe Card2 Function Number,可选参数,随插槽个数确定 …... | 用于BIOS向BMC上报标准PCIe插卡的设备BDF,包括该产品支持的可能最大标准PCIE插槽,比如:该产品支持2槽PCIE Riser和4槽PCIE Riser卡,则BIOS要上报4个PCIE槽的BDF(若插槽未非热插拔且未插卡,则报0xFFFFFF),PCIE槽支持热插拔的则BIOS为该槽的卡预分配BDF并上报,BMC使用该设备BDF向ME读取VID、DID、SUB VID和SUB DID,该命令仅支持带内发送。 |
| PCIe Disk BDF | C8h | - data1 - [7]: End of list. 0: last frame data. 1: middle frame data. [6:0]: total frame count.- data2 - [7]: format type,为了兼容BIOS上报的非期望格式. 0: old format-BIOS上报的非期望格式 1: new format-BIOS上报的期望格式 [6:0]:current frame number,1 based,当前第几帧- data3-PCIe Slot Number For This Frame,用于指示本帧上报的PCIe Disk插槽数- data4-PCIe Disk1 Segment,对于通过NC等连接的多路组合服务器,表示独立单元序号,如:32P服务器由8个独立物理4P单元组成(不同单元的PCIE设备预分配BDF可能一样,需要区分),则序号为1~8;否则填0- data5-PCIe Disk1 CPU Number,PCIe总线归属CPU号,从0开始编号- data6-PCIe Disk1 Bus Number,如果插槽未插盘且非热插拔,填充0xFF- data7-PCIe Disk1 Device Number,如果插槽未插盘且非热插拔,填充0xFF- data8-PCIe Disk1 Function Number,如果插槽未插盘且非热插拔,填充0xFF- data9-PCIe Disk2 Segment,可选参数,随连接PCIE盘插槽的root port个数确定- data10-PCIe Disk2 CPU Number,可选参数,随t连接PCIE盘插槽的root port个数确定- data11-PCIe Disk2 Bus Number,可选参数,随连接PCIE盘插槽的root port个数确定- data12-PCIe Disk2 Device Number,可选参数,随连接PCIE盘插槽的root port个数确定- data13-PCIe Disk2 Function Number,可选参数,随连接PCIE盘插槽的root port个数确定 | 用于BIOS向BMC上报PCIe盘的设备预分配slot BDF,要求上报系统启动时BIOS识别到的所有root port连接PCIE盘插槽的预分配slot BDF,当盘在位时,BMC使用该BDF向ME读取VID、DID、SUB VID和SUB DID。(该命令仅支持带内发送) |
| Share Data Info | C9h | - data1-Set selector(0 base),数据块数的低字节- data2-Block selector(0 base),数据块数的高字节,目前预留,填0- data3:17-system Info | 仅限装备测试用。BMC提供一块共享区给装备临时存放测试结果,如BIOS将内存测试结果写入,装备读取解析,数据内容和格式由第三方确定,数据以一组8bit的整数数据存储,共享区内数据在AC掉电丢失,BMC或系统复位不丢失。Set selector和Block selector两字节组合表示数据块数,每个块限制16个字节;(发送的消息中第一个block的第1、2个字节表示所有需要发送的数据长度,大字节序,装备根据该两个字节来判断需要读几个block) |
| redfish URI | CAh | Request:System software send to BMC.- data1-ID(reseverd)- data2-ID(reseverd)- data3-ID(reseverd)- data4-ID(reseverd)- data5-ID(reseverd)- data6-ID(reseverd)- data7-ID(reseverd)- data8-ID(reseverd) | 其他部件向BMC发送获取redfish相对路径字符串命令,请求带本身的唯一标识符(8字节,当前预留)过来,BMC返回/Sms/1或者/Sms/2或/Hmm/1字符串,BMC会依据带过来的8个参数进行判断,确定是否是同一个部件,如果当前未分配编号,默认分配1,否则分配2,相同的参数,返回以前已经分配的值; |
| Response:- data1-Completion Code- data2-Parameter version(reserved)- data3 -- dataN - | |||
| PCIe Card NIC Port MAC Address | CBh | - data1-PCIe Card Segment,对于通过NC等连接的多路组合服务器,表示独立单元序号,如:32P服务器由8个独立物理4P单元组成(不同单元的PCIE设备BDF可能一样,需要区分),则序号为1~8;否则填0- data2-PCIe Card CPU Number,PCIe总线归属CPU号,从0开始编号- data3-PCIe Card Bus Number(pcie root port)- data4-PCIe Card Device Number(pcie root port)- data5-PCIe Card Function Number(pcie root port)- data6-PCIe Card Bus Number(pcie card port)- data7-PCIe Card Device Number(pcie card port)- data8-PCIe Card Function Number(pcie card port)- data9-reserve1,预留值默认为0- data10-reserve2,预留值默认为0- data11-NIC Port Number,网卡port序号,从0开始编号(按照端口默认顺序顺序上报)- data12-NIC Port Address Index,地址序号,从0开始编号,同一个网口可能绑定多个物理地址- data13-NIC Port Address Type,地址类型0标准6字节MAC地址,1 WWN,2 WWPN...- data14-dataN -NIC Port Address,物理地址,十六进制数据(非字符串),按实际长度填写 | 1、在PCIE卡较多的情况,会增加BIOS的启动时间。 2、此信息可以报每个网口对应的BDF信息; 3、BIOS要先报"PCIe Card root BDF"和"PCIe Card BDF",再报此命令才有效。 4、默认规律function:0对应port1,function:1对应port2,function:2对应port3,function:3对应port4,如果个别卡反了,需要BMC针对特殊的卡进行处理。 5、openUBMC暂不用port序号进行匹配 6、多PF的情况,如果物理口的BDF变化,可能存在问题,要根据网卡多PF的情况有针对性的识别,目前服务器下面6张PCIE卡存在多PF的情况,但物理口的BDF是不变化的。 支持PF的网卡如下: 06310110 QLE3442-RJ-SP 06310114 QLE3442-CU-SP 06310119 QL45611HLCU 03024JND SP570(1822) 06030223 OCE11102-FM(已EOM) |
| OCP Card BDF | CCh | - data1 - [7]: End of list. 0=last frame data. 1=middle frame data. [6:0]: total frame count.- data2-current frame number,1 based,当前第几帧- data3 -OCP Slot Number For This Frame, 用于指示 本帧上报的PCIe标准插槽数- data4-OCP Card1 Segment,对于通过NC等连接的多路组合服务器,表示独立单元序号,如:32P服务器由8个独立物理4P单元组成(不同单元的PCIE设备BDF可能一样,需要区分),则序号为1~8;否则填0- data5-OCP Card1 CPU Number,PCIe总线归属CPU号,从0开始编号- data6-OCP Card1 Bus Number,如果插槽未插卡且非热插拔,填充0xFF- data7-OCP Card1 Device Number,如果插槽未插卡且非热插拔,填充0xFF- data8-OCP Card1 Function Number,如果插槽未插卡且非热插拔,填充0xFF- data9-OCP Card2 Segment,可选参数,随插槽个数确定- data10-OCP Card2 CPU Number,可选参数,随插槽个数确定- data11-OCP e Card2 Bus Number,可选参数,随插槽个数确定- data12-OCP Card2 Device Number,可选参数,随插槽个数确定- data13-OCP Card2 Function Number,可选参数,随插槽个数确定 … | 用于BIOS向BMC上报标准OCP的设备BDF,包括该产品支持的可能最大标准PCIE插槽,比如:该产品支持2槽PCIE Riser和4槽PCIE Riser卡,则BIOS要上报4个PCIE槽的BDF(若插槽未非热插拔且未插卡,则报0xFFFFFF),PCIE槽支持热插拔的则BIOS为该槽的卡预分配BDF并上报,BMC使用该设备BDF向ME读取VID、DID、SUB VID和SUB DID。(该命令仅支持带内发送) |
| 系统配置项 | CDh | 表2 | 表2 |
| CEh | Reserved | 备注:参考友商定义,直通盘管理命令,王宇航,7.18 | |
| Port Root BDF | D0h | Reserved | 备注:青竹服务器使用,鲲鹏等场景不使用 |
| PCIe Port root BDF | D1h | Reserved | 备注:青竹服务器使用,鲲鹏等场景不使用 |
附表2 Parameter selector为CDh时,对应的配置参数表
| 功能描述 | 配置子项 | parameter data-get | parameter data-set |
|---|---|---|---|
| 模板:功能描述,使用场景 | 0xMN | 请求: Data2:CDh Data3:配置子项 Data4:00 响应: Data3:Length Data4:N Config Data及其含义解释 0:功能0 1:功能1 | 请求: Data1:CDh Data2:Length Data3:N Config Data及其含义解释 0:功能0 1:功能1 |
| ProtocolType,带内协议类型 | 0x01 | Request: Data1:80h Data2:CDh Data3:01h Data4:Information Count=1 Data5:ReadLen=0xff Data6-7:Offset=0 Data8-9:Object Key ID=0xffff Data10:Reserved=0x79 Data11:Object Key Length=1 Data12:Object Key Value=0 Data13-14:InformationId=0x01 0x00 Response: Data1:Completion Code Data2:Parameter version=11h Data3-4:InformationId=0x01 0x00 Data5:Reserved=0x79 Data6:InformationLen=1 Data7:ProtocolType 0:http 1:https | 无 |