<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>This email is about the IPMI chassis command: Get-Boot-Options
and Set-Boot-Options.<br>
<br>
IPMI boot_flags could have one of these ["Network", "Disk",
"Safe", "CDROM", "Setup", "Default"]<br>
<br>
Original Settings implementation had any of the above values
settable via "/org/openbmc/settings/host0:boot_flags"<br>
<br>
There was another setting called "boot_policy" exported via
"/org/openbmc/settings/host0:boot_policy" and the valid values
were <br>
[ONETIME, PERMANENT].<br>
<br>
User would update "boot_flag" and "boot_policy" with the values
and BMC-IPMID would supply these values when asked by Petitboot
via Get-Boot-Options.<br>
<br>
Petit boot would consume these and then if a setting was
[ONETIME], then it would write boot_flag to [Default] via
Set-Boot-Options IPMI command and IPMID would update
/org/openbmc/settings/host0:boot_flags.<br>
<br>
<b>Jeremy</b>, please help confirm.<br>
<br>
As part of Settings refactoring, `boot_flags` was divided into 2
parts, still using "/org/openbmc/settings/host0:boot_policy" <br>
<br>
*/xyz/openbmc_project/Control/Boot/Mode* : Catering to "Safe",
"Setup" and "Regular", Where Regular meaning : 0<br>
<br>
*/xyz/openbmc_project/Control/Boot/Source* : Catering to
"Network", "Disk", "ExternalMedia". "Default", Where Default
meaning : 0<br>
<br>
Since IPMI could take any single value from either Mode or Source,
IPMID code looked at Source first and if set, it used it and if
not, it checked Mode and used if set. If none was set, it returned
default as it used to do before.<br>
<br>
Similiarly, as part of Set-Boot-Options, IPMID processed Source
and then Mode and updated respective dbus objects.<br>
<br>
Now, the proposal is to remove
'"/org/openbmc/settings/host0:boot_policy"' and then put this as a
boolean into 'persist' property into:<br>
<br>
/xyz/openbmc_project/Control/Boot/Mode and
/xyz/openbmc_project/Control/Boot/Source.<br>
<br>
IPMID would then look at this new boolean to see if its ONETIME (
boolean : 0 ) or PERMANENT ( boolean : 1 ) and respond to
Get-Boot-Options.<br>
<br>
Similarly, for Set-Boot-Options, it would update 'persist'
property depending on what is sent by Petit boot.<br>
<br>
As part of persistency, Settings would save the data that gets
written to /xyz/openbmc_project/Control/Boot/Mode and
/xyz/openbmc_project/Control/Boot/Source D-Bus object.<br>
<br>
Please provide your feedback on this.<br>
<br>
Thank you.<br>
<br>
!! Vishwa !!<br>
</p>
</body>
</html>