<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>