<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jun 16, 2017, at 5:18 PM, Maxim Sloyko <<a href="mailto:maxims@google.com" class="">maxims@google.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" style="font-family: ArialUnicodeMS; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class="">Hi Adriana,<br class=""><div class="gmail_extra"><br class=""><div class="gmail_quote">On Wed, Jan 25, 2017 at 2:15 PM, Adriana Kobylak<span class="Apple-converted-space"> </span><span dir="ltr" class=""><<a href="mailto:anoo@linux.vnet.ibm.com" target="_blank" class="">anoo@linux.vnet.ibm.com</a>></span><span class="Apple-converted-space"> </span>wrote:<br class=""><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;">Hi,<br class=""><br class="">Here is a first draft proposal for image management (code update) in OpenBMC for feedback.<br class=""><br class="">General:<br class="">* Move to UBI volume management (on the BMC and PNOR chips), which provides dynamic partitioning and wear-leveling. In a limited flash space environment there might be the need to re-allocate partition space and resizing in a static partitioning implementation can be very painful.<br class="">* Use CRAMFS for read-only partitions, and UBIFS for read-write partitions.<br class=""><br class="">PNOR:<br class="">* Implement a new mboxd based on Cyril’s (see Cyril’s email “Mailbox daemon”) that handles dbus objects, generates a virtual PNOR for UBI content, etc.<br class="">* Move to memory-based access instead of the current LPC-to-AHD path.<br class="">* Allocate just enough space in the initial window for Hostboot’s TOC, HBB, and HBI partitions, grow as required.<br class="">* Ability to ‘patch’ by copying a Hostboot image *.bin into a designated directory (/usr/local/ for example).<br class="">* Tool to write from PNOR image to BMC format. Implement UBI initially but it could be extended to support different volume managements on other BMCs.<br class=""><br class="">BMC:<br class="">*Save multiple firmware versions, starting with 2, to provide the ability to roll-back if needed. If single BMC chip system, save both versions there. If two BMC chip system, save other version in 2nd chip.<br class="">* Implement various levels of ‘persistency’, such as dev, factory, field. Dev persistency would allow for local patches (/usr/local/ for example) that can be cleared before shipping to customers. Factory mode could delete the location where user data such as network settings resides but preserves the mac address and uuid for example. Etc.<br class=""></blockquote><div class=""><br class=""></div><div class="">I'm interested in roll-back feature, do you have something working already or is this still under construction?</div><div class=""><br class=""></div><div class="">Sorry, I could not find anything in the docs or code about it.</div></div></div></div></div></blockquote><div><br class=""></div>For the roll-back feature, the user would use the RedundancyPriority interface (<a href="https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/xyz/openbmc_project/Software/RedundancyPriority.interface.yaml" class="">https://github.com/openbmc/phosphor-dbus-interfaces/blob/master/xyz/openbmc_project/Software/RedundancyPriority.interface.yaml</a></div><blockquote type="cite" class=""><div dir="ltr" class="" style="font-family: ArialUnicodeMS;"><div class="gmail_extra"><div class="gmail_quote"></div></div></div></blockquote><div>), to indicate which version they want to re-activate. For example, the version1 is activated, the priority for it is 0, then version 2 is activated which sets its priority to 0 and version 1 is set to priority 1. The user can set the priority of version 1 to 0 to indicate that version 1 should be activated thus triggering a roll back. This takes effect on power on for pnor version, and on bmc reboots (still been worked) for bmc versions.</div><div><blockquote type="cite" class=""><div class=""><div dir="ltr" style="font-family: ArialUnicodeMS; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;" class=""><div class="gmail_extra"><div class="gmail_quote"><div class=""><br class=""></div><div class="">Thanks </div><div class=""> </div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-style: solid; border-left-color: rgb(204, 204, 204); padding-left: 1ex;"><br class="">Thanks,<br class=""><br class="">Adriana<br class="">______________________________<wbr class="">_________________<br class="">openbmc mailing list<br class=""><a href="mailto:openbmc@lists.ozlabs.org" class="">openbmc@lists.ozlabs.org</a><br class=""><a href="https://lists.ozlabs.org/listinfo/openbmc" rel="noreferrer" target="_blank" class="">https://lists.ozlabs.org/<wbr class="">listinfo/openbmc</a><br class=""></blockquote></div><br class=""><br clear="all" class=""><div class=""><br class=""></div>--<span class="Apple-converted-space"> </span><br class=""><div class="gmail_signature" data-smartmail="gmail_signature"><div class=""><b class="">M</b>axim<span class="Apple-converted-space"> </span><b class="">S</b>loyko</div></div></div></div></div></blockquote></div><br class=""></body></html>