<div dir="ltr">Hey Adriana,<div><br></div><div>I'm planning on refactoring the skeleton flash update code and pulling it out into it's own repo (openbmc/phosphor-flash-control).</div><div><br></div><div>I've started with how I think the dbus interface should behave:<a href="https://gerrit.openbmc-project.xyz/#/c/1166/"> https://gerrit.openbmc-project.xyz/#/c/1166/</a>.</div><div><br></div><div>The overall plan for the flash interface in my head:</div><div><ul><li>REST (or some other) interface receives image + signature to update flash</li><ul><li>Gets saved to filesystem and flash control is called</li></ul><li>Flash control loads the files into memory and verifies the signature</li><ul><li>Reference implementation would probably just be pgp</li></ul><li>Flash control locks the flash device</li><ul><li>This needs some more thought and probably new dbus interfaces; important for host flash</li></ul><li>Image written to flash</li><li>Lock on flash device released</li><li>Signal asserted (Done)</li></ul><div>---</div></div><div><br></div><div>For the most part, I don't think I'll rewrite too much of the existing skeleton code except to have it use the c++ bindings (continue using libflash and existing MTD devices for bmc update). </div><div><br></div><div>Locking the host flash would require some additional thought since currently it's accessible directly and a mailbox approach would also require some way to lock the flash when doing read/write.</div><div><br></div><div>--</div><div><br></div><div>Please take a look at the gerrit. I'll start adding some more information around locking + signing this week.</div><div><br></div><div>Abhishek</div><div><br></div><div><br></div><div><br></div></div>