<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Can we use extraversion field in manifest file to identify host id.<o:p></o:p></p>
<p class="MsoNormal">In manifest file, if purpose is host then we can check extra version<o:p></o:p></p>
<p class="MsoNormal">and find out which host it is applicable for.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Or lese we can add another property in <span style="font-size:12.0pt;color:black">
/xyz/openbmc_project/software,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">name as host id and user can set this property after uploading image.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">I don’t agree with creating multiple interfaces for single image<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">upgrade.  Because image will be deleted after successful activation.</span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:12.0pt;color:black">From: </span></b><span style="font-size:12.0pt;color:black">openbmc <openbmc-bounces+vijaykhemka=fb.com@lists.ozlabs.org> on behalf of "P. Priyatharshan" <PriyatharshanP@hcl.com><br>
<b>Date: </b>Thursday, October 15, 2020 at 10:18 AM<br>
<b>To: </b>Adriana Kobylak <anoo@linux.ibm.com><br>
<b>Cc: </b>"openbmc@lists.ozlabs.org" <openbmc@lists.ozlabs.org>, "anoo@us.ibm.com" <anoo@us.ibm.com>, "ojayanth@in.ibm.com" <ojayanth@in.ibm.com>, "gmills@linux.vnet.ibm.com" <gmills@linux.vnet.ibm.com>, "Velumani T-ERS, HCLTech" <velumanit@hcl.com>, "ratagupt@linux.vnet.ibm.com"
 <ratagupt@linux.vnet.ibm.com><br>
<b>Subject: </b>Re: Multi host bios upgrade support in phosphor-bmc-code-mgmt:<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">Thanks Adriana for the clarification.
<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">For host bios update, the images will be copied to BMC(/tmp/images) and will start flashing by making RequestedActivation field "xyz.openbmc_project.Software.Activation.RequestedActivations.Active".
 In our case, the device location will be same for all the bios images (BMC /tmp/images).So I think the above design you proposed[id = version+volume ID]  may not work effectively for multi host as the id is still going to be same for all the hosts.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">    <o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">We would like to propose the following approach for your review.Kindly go through the below steps and share your valuable suggestions.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">1.Number of host will be identified from machine layer [OBMC_HOST_INSTANCES]<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">2.Code will be modified to create n number of objects based on number of hosts<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">  Ex: Log taken in YosemiteV2 [4 host]<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">root@yosemitev2:~# busctl tree xyz.openbmc_project.Software.BMC.Updater<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">`-/xyz<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">  `-/xyz/openbmc_project<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">    `-/xyz/openbmc_project/software<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">      |-/xyz/openbmc_project/software/1929c585<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">      |-/xyz/openbmc_project/software/host1<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">      | `-/xyz/openbmc_project/software/host1/28bd62d9<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">      |-/xyz/openbmc_project/software/host2<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">      | `-/xyz/openbmc_project/software/host2/28bd62d9<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">      |-/xyz/openbmc_project/software/host3<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">      | `-/xyz/openbmc_project/software/host3/28bd62d9<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">      `-/xyz/openbmc_project/software/host4<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">        `-/xyz/openbmc_project/software/host4/28bd62d9<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">root@yosemitev2:~# busctl tree xyz.openbmc_project.Software.Version<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">`-/xyz<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">  `-/xyz/openbmc_project<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">    `-/xyz/openbmc_project/software<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">      |-/xyz/openbmc_project/software/host1<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">      | `-/xyz/openbmc_project/software/host1/28bd62d9<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">      |-/xyz/openbmc_project/software/host2<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">      | `-/xyz/openbmc_project/software/host2/28bd62d9<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">      |-/xyz/openbmc_project/software/host3<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">      | `-/xyz/openbmc_project/software/host3/28bd62d9<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">      `-/xyz/openbmc_project/software/host4<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">        `-/xyz/openbmc_project/software/host4/28bd62d9<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">3.This will create activation interface for each host. For a multi-host system if the  RequestedActivation is set to "xyz.openbmc_project.Software.Activation.RequestedActivations.Active", then
 different bios service file will be called based the host.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">For single host : biosServiceFile = "obmc-flash-host-bios@" + versionId + ".service";<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">For multi host  : biosServiceFile =  "obmc-flash-host" + host + "-bios@" + versionId + ".service";
<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">Then it can be used for multi host even if the firmware image we want to install is the same for multiple host targets.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">I have created a WIP patch for the design proposed above.Kindly have a glance and share your comments.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black"><a href="https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-bmc-code-mgmt/+/37448">https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-bmc-code-mgmt/+/37448</a><o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">Thanks,<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">Priyatharshan P <o:p>
</o:p></span></p>
</div>
</div>
</div>
</div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></p>
</div>
<div class="MsoNormal" align="center" style="text-align:center">
<hr size="0" width="100%" align="center">
</div>
<div id="divRplyFwdMsg">
<p class="MsoNormal"><b><span style="color:black">From:</span></b><span style="color:black"> Adriana Kobylak <anoo@linux.ibm.com><br>
<b>Sent:</b> 06 October 2020 03:11<br>
<b>To:</b> P. Priyatharshan <PriyatharshanP@hcl.com><br>
<b>Cc:</b> Patrick Williams <patrick@stwcx.xyz>; Velumani T-ERS,HCLTech <velumanit@hcl.com>; openbmc@lists.ozlabs.org <openbmc@lists.ozlabs.org>; anoo@us.ibm.com <anoo@us.ibm.com>; ojayanth@in.ibm.com <ojayanth@in.ibm.com>; gmills@linux.vnet.ibm.com <gmills@linux.vnet.ibm.com>;
 ratagupt@linux.vnet.ibm.com <ratagupt@linux.vnet.ibm.com><br>
<b>Subject:</b> Re: Multi host bios upgrade support in phosphor-bmc-code-mgmt:</span>
<o:p></o:p></p>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">[CAUTION: This Email is from outside the Organization. Unless you trust the sender, Don’t click links or open attachments as it may be a Phishing email, which can steal your Information and compromise your Computer.]<br>
<br>
Hi Priyatharshan,<br>
<br>
>  Object : /xyz/openbmc_project/software/[FIRMWARE_VERSION]_[DEVICE]<br>
> where device could be host1, 2, ...,N<br>
>  Interface : xyz.openbmc_project.Software.Activation<br>
><br>
>  Please confirm if our understanding is correct.<br>
<br>
I meant that to generate the id, which currently uses the version<br>
string, would instead use the version string plus the string for the<br>
name of the device where it's stored in order to generate the hash. For<br>
example, today the code calls "SHA512_Update("version")", where<br>
"version" is for example "2.9.0-dev-663-g2e34bb673". Instead the code<br>
would detect this version is stored let's say in device "mtd1" or<br>
"mmcblk0p1", it'd then append that device string to version, ex:<br>
"2.9.0-dev-663-g2e34bb673-mmcblk0p1" and pass that string to<br>
SHA512_Update(), therefore creating a different hash depending where<br>
that version of bmc code is stored.<br>
<br>
Note that this is for BMC versions only. We discussed that for host<br>
versions, we'd need to modify the code to add a "os-release" file under<br>
/media/ that contained the host version information similar to the BMC's<br>
os-release file. In addition, we'd need to somehow determine that those<br>
files were for host (Bios) versions instead of BMC ones. Perhaps<br>
os-release could have an additional field added to specify the purpose.<br>
<br>
<br>
> Adriana, Any tentative timeline on your commits availability [generate<br>
> the id based on firmware version plus the device or volume ]<br>
<br>
I'd say by early next year at the latest.<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:gray">::DISCLAIMER::<o:p></o:p></span></p>
<div class="MsoNormal" align="center" style="text-align:center"><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:gray">
<hr size="0" width="100%" align="center">
</span></div>
<p class="MsoNormal"><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:gray">The contents of this e-mail and any attachment(s) are confidential and intended for the named recipient(s) only. E-mail transmission is not guaranteed to be secure
 or error-free as information could be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or may contain viruses in transmission. The e mail and its contents (with or without referred errors) shall therefore not attach any liability on the
 originator or HCL or its affiliates. Views or opinions, if any, presented in this email are solely those of the author and may not necessarily reflect the views or opinions of HCL or its affiliates. Any form of reproduction, dissemination, copying, disclosure,
 modification, distribution and / or publication of this message without the prior written consent of authorized representative of HCL is strictly prohibited. If you have received this email in error please delete it and notify the sender immediately. Before
 opening any email and/or attachments, please check them for viruses and other defects.<o:p></o:p></span></p>
<div class="MsoNormal" align="center" style="text-align:center"><span style="font-size:7.5pt;font-family:"Arial",sans-serif;color:gray">
<hr size="0" width="100%" align="center">
</span></div>
</div>
</body>
</html>