Set System Boot Options
更新时间: 2026/08/06
在Gitcode上查看源码Set System Boot Options
Change History
| openUBMC Version | Revision Date | Description |
|---|---|---|
| 25.06 | 2025/06/26 | Initial draft: add command details |
Basic Information
Function Description
Set system boot options.
Privilege
Command Information
Request Information
| Byte | Data Field |
|---|---|
| NetFn | Chassis 00h |
| CMD | 08h |
| 1 | Parameter valid [7]- 1b=mark parameter invalid/locked 0b=mark parameter valid/unlocked [6:0]-boot option parameter selector |
| (2:N) | Boot option parameter data, Table 1. Passing 0-bytes of parameter data allow the parameter valid bit to be changed without affecting the present parameter setting. |
Response Information
| Byte | Data Field |
|---|---|
| 1 | Completion Code |
| 2 | Completion Code. Generic plus the following command-specific completion codes: 80h=parameter not supported. 81h=attempt to set the 'set in progress' value (in parameter #0) when not in the 'set complete' state. (This completion code provides a way to recognize that another party has already 'claimed' the parameters.) 82h=attempt to write read-only parameter |
Reference Information
Table 1 Boot Option Parameters
| Parameter | # | Parameter Data |
|---|---|---|
| Set In Progress | 00h | data 1-This parameter is used to indicate when any of the following parameters are being updated, and when the updates are completed. [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. -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 |
| Service Partition Selector | 01h | data 1 [7:0]-service partition selector. This value is used to select which service partition BIOS should boot using. This document doesn't specify which value corresponds to a particular service partition. 00h=unspecified. |
| Service Partition Scan | 02h | data 1 [7:2] – reserved [1]-1b=Request BIOS to scan for specified service partition. BIOS clears this bit after the requested scan has been performed. [0]-1b=Service Partition discovered. BIOS sets this bit to indicate it has discovered the specified service partition. The bit retains the value from the last scan. Therefore, to get up-to-date status of the discovery state, a scan may need to be requested. |
| BMC Boot Flag Valid Bit Clearing | 03h | data 1- BMC boot flag valid bit clearing. Default=0000b. [7:5] – reserved [4]-1b=don't clear valid bit on reset/power cycle caused by PEF [3]-1b=don't automatically clear boot flag valid bit if Chassis Control command not received within 60-second timeout (countdown restarts when a Chassis Control command is received) [2]-1b=don't clear valid bit on reset/power cycle caused by watchdog timeout [1]-1b=don't clear valid bit on pushbutton reset/soft-reset (e.g. "Ctrl-Alt-Del") [0]-1b=don't clear valid bit on power up via power pushbutton or wake event |
| Boot Info Acknowledge | 04h | data 1: Write Mask ('write-only'. This field is returned as 00h when read. This is to eliminate the need for the BMC to provide storage for the Write Mask field.) [7]-1b=enable write to bit 7 of Data field [6]-1b=enable write to bit 6 of Data field [5]-1b=enable write to bit 5 of Data field [4]-1b=enable write to bit 4 of Data field [3]-1b=enable write to bit 3 of Data field [2]-1b=enable write to bit 2 of Data field [1]-1b=enable write to bit 1 of Data field [0]-1b=enable write to bit 0 of Data field data 2:Boot Initiator Acknowledge Data The boot initiator should typically write FFh to this parameter prior to initiating the boot. The boot initiator may write 0's if it wants to intentionally direct a given party to ignore the boot info. This field is automatically initialized to 00h when the management controller is first powered up or reset. [7]-reserved. Write as 1b. Ignore on read. [6]-reserved. Write as 1b. Ignore on read. [5]-reserved. Write as 1b. Ignore on read. [4]-0b=OEM has handled boot info. [3]-0b=SMS has handled boot info. [2]-0b=OS/service partition has handled boot info. [1]-0b=OS Loader has handled boot info. [0]-0b=BIOS/POST has handled boot info. |
| Boot Flags | 05h | data 1 [7]-1b=boot flags valid. The bit should be set to indicate that valid flag data is present. This bit may be automatically cleared based on the boot flag valid bit clearing parameter, above. [6]-0b=options apply to next boot only. 1b=options requested to be persistent for all future boots (i.e. requests BIOS to change its boot settings) Note: In order to set this bit remotely (over a session), the user must execute the Set System Boot Options command at ADMIN privilege level. In order to retain backward compatibility, this bit will be AUTOMATICALLY CLEARED by the BMC whenever the boot flags valid bit is clear (0b). This is to avoid the possibility that this bit would already be set when an older application changes other options. Thus, this bit and the boot flags valid bit must be set simultaneously. [5]-BIOS boot type (for BIOS that support both legacy and EFI boots) 0b="PC compatible" boot (legacy) 1b=Extensible Firmware Interface Boot (EFI) [4:0]-reserved data 2 [7]-1b=CMOS clear Intelligent Platform Management Interface Specification 383 [6]-1b=Lock Keyboard [5:2]-Boot device selector 0000b=No override 0001b=Force PXE 0010b=Force boot from default Hard-drive 0011b=Force boot from default Hard-drive, request Safe 0100b=Force boot from default Diagnostic Partition 0101b=Force boot from default CD/DVD 0110b=Force boot into BIOS Setup 0111b-1110b=Reserved 1111b=Force boot from Floppy/primary removable media [1]-1b=Screen Blank [0]-1b=Lock out Reset buttons data 3 [7]-1b=Lock out (power off/ sleep request) via Power Button [6:5]-Firmware (BIOS) Verbosity (Directs what appears on POST display) 00b=system default 01b=request quiet display 10b=request verbose display 11b=reserved [4]-1b=Force progress event traps ~. When set to 1b, the BMC transmits PET traps for BIOS progress events to the LAN or serial/modem destination for the session that set the flag. Since this capability uses PET traps, this bit will be ignored if for connection modes that do not support PET such as Basic Mode and Terminal Mode. [3]-1b=User password bypass ~. When set to 1b, the managed client's BIOS boots the system and bypasses any user or boot password that might be set in the system. This option allows a system administrator to, for example, force a system boot via PXE in an unattended manner. It is recommended that ADMINISTRATOR Privilege Level be required to set this bit if this feature is supported in a given BIOS. (To set this bit remotely (over a session) the Set Boot Options command must be executed at ADMIN level) [2]-1b=Lock Out Sleep Button ~. When set to 1b, directs BIOS to disable the sleep button operation for the system, normally until the next boot cycle. Client instrumentation might provide the capability to re-enable the button functionality without rebooting. (This only applies to systems that have a separate sleep button on the chassis.) [1:0]-Console Redirection control 00b=console redirection occurs per BIOS configuration setting (system default) 01b=suppress (skip) console redirection if enabled 10b=request console redirection be enabled 11b=reserved data 4 [7:4]-reserved [3]-BIOS Shared Mode Override 1b=Request BIOS to temporarily set the access mode for the channel specified in parameter #6 to 'Shared'. This is typically accomplished by sending a 'Set Channel Access' command to set the volatile access mode setting in the BMC[4]. 0b=No request to BIOS to change present access mode setting. [2:0]-BIOS Mux Control Override 000b=BIOS uses recommended setting of the mux at the end of POST (See Table 14-2, Serial Port Sharing Access Characteristics for more info.) 001b=Requests BIOS to force mux to BMC at conclusion of POST/start of OSboot. If honored, this will override the recommended setting of the mux at the end of POST 010b=Requests BIOS to force mux to system at conclusion of POST/start of OSboot. If honored, this will override the recommended setting of the mux at the end of POST data 5-reserved |
| Boot Initiator Info | 06h | Address & Identity information for the party that initiated the boot. data 1- Channel Number. Channel that will deliver the boot command (e.g. chassis control). BIOS and boot software (e.g. service partition or OS loader) can use the Get Channel SessionsGet Session Info command to find out information about the party that initiated the boot. [7:4]-reserved [3:0]-Channel Number data 2:5-Session ID. Session ID for session that the boot command will be issued over. This value can be used with the Get Channel SessionsGet Session Info command to find out information about the party that initiated the boot. For IPMI v2.0/RMCP+ this is the Managed System Session ID that was generated by the BMC when the session was activated. data 6:9-Boot Info Timestamp. This timestamp is used to help software determine whether the boot information is 'stale' or not. A service partition or OS loader may elect to ignore the boot information if it is older than expected. The boot initiator should load this field with the timestamp value from the Get SEL Time command prior to issuing the command that initiates the boot. |
| Boot Initiator Mailbox | 07h | This parameter is used as a 'mailbox' for holding information that directs the operation of the OS loader or service partition software. data1: Set Selector=block selector Selects which 16-byte info block to access. 0-based. data 2:(17) block data |
| BIOS ID | 60h | data1-cpu selector must be 0x00 data2-boot_biosID 0x00--bios 0 0x01--bios 1 |
| Power off timeout/PXE Option | 62h | Power off timeout(M project only): data 1:2-ShutdownTime, LSB First. PXE Option: data1-pxe option [7:4] Reserved [3] enable PXE2 [2] enable PEX1 [1] 1b, boot from PXE enable 0b, boot from PXE disable [0] 1b, boot from PXE2(Base1) 0b, boot from PXE1(Base0) |
| BIOS write protect | 63h | data1 7:4--bios id 3:0--protect state (to be confirmed by the code) 00h protect enable 01h protect disable |
| Pre-timeout Interrupt | 64h | data1 -Block Selector data2:4- Manufacturer ID, LS Byte first. The length is fixed to three bytes. For example, if the vendor ID is 2011 and the corresponding hexadecimal value is 0x0007DB, the first byte is DBh, the second byte is 07h, and the third byte is 00h. data5 -Event Type 00h Diagnosis interruption event other Reserved data6-Interrupt type (When the event type is 0, it indicates the interrupt type.) 00h-none 01h-SMI 02h-NMI/Diagnostic Interrupt 03h-Messaging Interrupt other Reserved Data7:8-Event cause |
| Power on delay | 65h | data1-3 Manufacturer ID, LS Byte first. The length is fixed to three bytes. For example, if the vendor ID is 2011 and the corresponding hexadecimal value is 0x0007DB, the first byte is DBh, the second byte is 07h, and the third byte is 00h. data 4-delay mode 0: only short term delay.//The long delay is disabled, and only the short delay (R1 delay solution) is available. The default value is used. 1: long term half delay, half the servers selected randomly are delayed.//long delay. There may be a delay of dozens of seconds. Half of the delay is randomly selected for delay, which is the current core network application scenario. 2: "long term fix delay, all servers are delayed.//" is not random, and long delay is performed on all specified servers. Uncertain scenario, used for future expansion. 3: random delay, all servers are delayed.//Random delay. (0, specified time] all others: reserved. data 5~8-delay count, 100ms/count, 0h=use default delay time NOTE: delay count>=1200, use default max delay time(1200). |
| logic device id | 66h | data1:3- Manufacturer ID, LS Byte first. The length is fixed to three bytes. For example, if the vendor ID is 2011 and the corresponding hexadecimal value is 0x0007DB, the first byte is DBh, the second byte is 07h, and the third byte is 00h. data 4:7-Managed system logic device id |
Command Example
Set the system boot option.
Request:
bash
ipmicmd -k "0f 00 MM NN" smi 0Response:
text
0f MM NN