<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jun 28, 2019 at 3:24 PM Patrick Venture <<a href="mailto:venture@google.com">venture@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jun 28, 2019 at 7:09 AM Patrick Venture <<a href="mailto:venture@google.com" target="_blank">venture@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jun 28, 2019 at 4:30 AM Andrew MS1 Peng <<a href="mailto:pengms1@lenovo.com" target="_blank">pengms1@lenovo.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="ZH-CN">
<div class="gmail-m_-7643867586343560889gmail-m_5865277644764564145gmail-m_5232517683823064206WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black">Hi Patrick,<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black"><br>
I synchronized our Openbmc </span><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white">repository </span><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black">with
</span><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal">upstream</span></em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white"> repository then compiled and
 checked the result yesterday, we can generate </span><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal">dynamically linked binary but still failed to generate statically linked binary. 
</span></em><span lang="EN-US" style="font-family:Calibri,sans-serif">I used
<em><span style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal">OpenBmc
</span></em></span><span lang="EN-US" style="font-family:Calibri,sans-serif">environment</span><span lang="EN-US" style="font-family:Calibri,sans-serif"> to compile and also created a SDK
</span><span lang="EN-US" style="font-family:Calibri,sans-serif">environment by using x86-64 toolchain (<a href="http://oecore-x86_64-core2-64-toolchain-nodistro.0.sh" target="_blank">oecore-x86_64-core2-64-toolchain-nodistro.0.sh</a>) to compile, the compile result is the same.
</span><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal">It seems to the linker not find the
</span></em><span lang="EN-US" style="font-family:Calibri,sans-serif;letter-spacing:-0.05pt;background:white">archive file libpci.a,
</span><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal">could you take a look my problem? Thanks.</span></em><em><span lang="EN-US" style="font-family:宋体;color:black;background:white;font-style:normal"><u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal"><u></u> <u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal">I will get error message when I run the tool in my host platform as below. The</span></em><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal">
 dynamically linked binary</span></em><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal"> is not convenience to use since I have to modify
</span></em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:rgb(36,39,41);background:white">rpath and interpreter of already compiled ELF.
</span><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal"><u></u><u></u></span></em></p>
<p class="MsoNormal" style="margin-left:12pt"><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:silver">pengms1@hsbmc: $ ./burn_my_bmc
</span><span lang="EN-US" style="background:silver"><u></u><u></u></span></p>
<p class="MsoNormal" style="margin-left:12pt"><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:silver">-bash: ./burn_my_bmc: No such file or directory<br>
<br>
pengms1@hsbmc: $ ldd ./burn_my_bmc<br>
<em><span style="font-family:Calibri,sans-serif;font-style:normal">./burn_my_bmc: /lib/x86_64-linux-gnu/libpci.so.3: version `LIBPCI_3.5' not found (required by ./burn_my_bmc)</span></em></span><em><span lang="EN-US" style="font-family:宋体;background:silver;font-style:normal"><u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:silver;font-style:normal">       linux-vdso.so.1 =>  (0x00007ffcd2363000)<u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:silver;font-style:normal">       libipmiblob.so.0 => /home/pengms1/SDK/OpenBmc/rootfs/lib/libipmiblob.so.0 (0x00007f25d373a000)<u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:silver;font-style:normal">       libpci.so.3 => /lib/x86_64-linux-gnu/libpci.so.3 (0x00007f25d3512000)<u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:silver;font-style:normal">       libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f25d3190000)<u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:silver;font-style:normal">       libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f25d2f79000)<u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:silver;font-style:normal">       libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f25d2baf000)<u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:silver;font-style:normal">       libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f25d28a6000)<u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:silver;font-style:normal">       libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f25d268b000)<u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:silver;font-style:normal">       libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f25d2470000)<u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:silver;font-style:normal">       libudev.so.1 => /lib/x86_64-linux-gnu/libudev.so.1 (0x00007f25d2450000)<u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:silver;font-style:normal">       /lib/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x000055731193b000)<u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:silver;font-style:normal">       librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f25d2247000)<u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:silver;font-style:normal">       libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f25d202a000)</span></em><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal"><u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:宋体;color:black;background:white;font-style:normal"><u></u> <u></u></span></em></p>
<p class="MsoNormal"><b><span lang="EN-US" style="font-family:Calibri,sans-serif">The compile error message is below:<u></u><u></u></span></b></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Calibri,sans-serif">x86_64-openbmc-linux-libtool: link: x86_64-openbmc-linux-g++ -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse --sysroot=/home/pengms1/openbmc_trunk_x86/build/tmp/work/core2-64-openbmc-linux/phosphor-ipmi-flash/0.1+gitAUTOINC+7c79b252c1-r1/recipe-sysroot
 -std=c++17 -I../../git -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/home/pengms1/openbmc_trunk_x86/build/tmp/work/core2-64-openbmc-linux/phosphor-ipmi-flash/0.1+gitAUTOINC+7c79b252c1-r1=/usr/src/debug/phosphor-ipmi-flash/0.1+gitAUTOINC+7c79b252c1-r1
 -fdebug-prefix-map=/home/pengms1/openbmc_trunk_x86/build/tmp/work/core2-64-openbmc-linux/phosphor-ipmi-flash/0.1+gitAUTOINC+7c79b252c1-r1=/usr/src/debug/phosphor-ipmi-flash/0.1+gitAUTOINC+7c79b252c1-r1 -fdebug-prefix-map=/home/pengms1/openbmc_trunk_x86/build/tmp/work/core2-64-openbmc-linux/phosphor-ipmi-flash/0.1+gitAUTOINC+7c79b252c1-r1/recipe-sysroot=
 -fdebug-prefix-map=/home/pengms1/openbmc_trunk_x86/build/tmp/work/core2-64-openbmc-linux/phosphor-ipmi-flash/0.1+gitAUTOINC+7c79b252c1-r1/recipe-sysroot-native= -fvisibility-inlines-hidden -Wall -Werror -DENABLE_REBOOT_UPDATE -DENABLE_STATIC_LAYOUT -DENABLE_LPC_BRIDGE
 -DASPEED_LPC -static -o burn_my_bmc burn_my_bmc-main.o  ./.libs/libupdater.a -lipmiblob -lpci<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Calibri,sans-serif">| /home/pengms1/openbmc_trunk_x86/build/tmp/work/core2-64-openbmc-linux/phosphor-ipmi-flash/0.1+gitAUTOINC+7c79b252c1-r1/recipe-sysroot-native/usr/bin/x86_64-openbmc-linux/../../libexec/x86_64-openbmc-linux/gcc/x86_64-openbmc-linux/9.1.0/ld:
<b><span style="color:red">cannot find -lpci</span></b></span></p></div></div></blockquote><div><br></div><div>That's indicating that it couldn't find the pciutils installed.  Like I said yesterday, I hadn't tried to build the host-tool in this environment and had to clean up the dependency checks for it.  That said, I went through and fixed it all and got it to build as expected from a pure ubuntu docker container.  Those patches are up for review and not yet in OpenBMC.  That said, I dont' know why the lpci might not be found for that compilation other than possibly the pciutils recipe is broken.  I found yesterday while getting this to work that the instructions on the pciutils README weren't quite right for building the library AND installing that library.</div><div><br></div><div>So I wrote up custom instructions in the README for phosphor-ipmi-flash, that patch is under review.</div><div><br></div><div>If you want to debut your current environment, you need to see if you can find the pkgconfig file and libraries defined:</div><div><a href="https://github.com/pciutils/pciutils/blob/master/lib/libpci.pc.in" target="_blank">https://github.com/pciutils/pciutils/blob/master/lib/libpci.pc.in</a><br></div><div><br></div><div>Basically search for libpci.pc and then read that file.  Verify the shared library objects are in the <span lang="EN-US" style="font-family:Calibri,sans-serif">SDK
</span><span lang="EN-US" style="font-family:Calibri,sans-serif">environment.</span></div><div><span lang="EN-US" style="font-family:Calibri,sans-serif"><br></span></div><div><span lang="EN-US" style="font-family:Calibri,sans-serif">If you need the libpci archive object for static compilation, that may not be installed by default, you'll want to read the pciutils README.</span></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="ZH-CN"><div class="gmail-m_-7643867586343560889gmail-m_5865277644764564145gmail-m_5232517683823064206WordSection1"><p class="MsoNormal"><span lang="EN-US" style="font-family:Calibri,sans-serif"><u></u><u></u></span></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:宋体;color:black;background:white;font-style:normal"><u></u> <u></u></span></em></p>
<p class="MsoNormal"><em><b><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal">My OpenBmc build
</span></b></em><b><span lang="EN-US" style="font-family:Calibri,sans-serif">environment is below.</span><span lang="EN-US"><u></u><u></u></span></b></p>
<table class="gmail-m_-7643867586343560889gmail-m_5865277644764564145gmail-m_5232517683823064206MsoTableGrid" border="1" cellspacing="0" cellpadding="0" style="border-collapse:collapse;border:none">
<tbody>
<tr>
<td width="251" valign="top" style="width:232.4pt;border:1pt solid windowtext;background:yellow;padding:0cm 5.4pt">
<p class="MsoNormal"><span lang="EN-US" style="font-family:Calibri,sans-serif">OpenBmc Setting<u></u><u></u></span></p>
</td>
<td width="310" valign="top" style="width:263.35pt;border-top:1pt solid windowtext;border-right:1pt solid windowtext;border-bottom:1pt solid windowtext;border-left:none;background:yellow;padding:0cm 5.4pt">
<p class="MsoNormal"><span lang="EN-US" style="font-family:Calibri,sans-serif">phosphor-ipmi-flash setting (<span style="color:red">build
<em><span style="font-family:Calibri,sans-serif;background:yellow;font-style:normal">static binary</span></em></span>)<u></u><u></u></span></p>
</td>
<td width="146" valign="top" style="width:120.5pt;border-top:1pt solid windowtext;border-right:1pt solid windowtext;border-bottom:1pt solid windowtext;border-left:none;background:yellow;padding:0cm 5.4pt">
<p class="MsoNormal"><span lang="EN-US" style="font-family:Calibri,sans-serif">Extra setting
<u></u><u></u></span></p>
</td>
</tr>
<tr style="height:130.5pt">
<td width="251" rowspan="3" valign="top" style="width:232.4pt;border-right:1pt solid windowtext;border-bottom:1pt solid windowtext;border-left:1pt solid windowtext;border-top:none;padding:0cm 5.4pt;height:130.5pt">
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal">Build Configuration:</span></em><em><span lang="EN-US" style="font-family:宋体;color:black;background:white;font-style:normal"><u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal">BB_VERSION           = "1.43.0"<u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal">BUILD_SYS            = "x86_64-linux"<u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal">NATIVELSBSTRING      = "ubuntu-16.04"<u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal">TARGET_SYS           = "x86_64-openbmc-linux"<u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal">MACHINE              = "qemux86-64"<u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal">DISTRO               = "openbmc-phosphor"<u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal">DISTRO_VERSION       = "0.1.2"<u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal">TUNE_FEATURES        = "m64 core2"<u></u><u></u></span></em></p>
<p class="MsoNormal"><em><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black;background:white;font-style:normal">TARGET_FPU           = ""</span></em><span lang="EN-US"><u></u><u></u></span></p>
</td>
<td width="310" valign="top" style="width:263.35pt;border-top:none;border-left:none;border-bottom:1pt solid windowtext;border-right:1pt solid windowtext;padding:0cm 5.4pt;height:130.5pt">
<p class="MsoNormal"><span lang="EN-US" style="font-family:Calibri,sans-serif">EXTRA_OECONF += " --enable-build-host-tool --enable-static-layout --enable-lpc-bridge
<br>
--enable-aspeed-lpc MAPPED_ADDRESS=0x98000000 --enable-reboot-update "<br>
<br>
<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Calibri,sans-serif">EXTRA_OEMAKE += " LDFLAGS=-all-static "
<span style="color:red">(Build a <em><span style="font-family:Calibri,sans-serif;background:white;font-style:normal">statically linked binary</span></em>)</span><u></u><u></u></span></p>
</td>
<td width="146" rowspan="3" valign="top" style="width:120.5pt;border-top:none;border-left:none;border-bottom:1pt solid windowtext;border-right:1pt solid windowtext;padding:0cm 5.4pt;height:130.5pt">
<p class="MsoNormal"><span lang="EN-US" style="font-family:Calibri,sans-serif">DISABLE_STATIC = ""  (<span style="color:red">Build
<em><span style="font-family:Calibri,sans-serif;background:white;font-style:normal">statically library for
</span></em>ipmi-blob-tool)</span><u></u><u></u></span></p>
</td>
</tr>
<tr style="height:23.25pt">
<td width="310" valign="top" style="width:263.35pt;border-top:none;border-left:none;border-bottom:1pt solid windowtext;border-right:1pt solid windowtext;background:yellow;padding:0cm 5.4pt;height:23.25pt">
<p class="MsoNormal"><span lang="EN-US" style="font-family:Calibri,sans-serif">phosphor-ipmi-flash setting (<span style="color:red">build
<em><span style="font-family:Calibri,sans-serif;background:yellow;font-style:normal">dynamic binary</span></em></span>)<u></u><u></u></span></p>
</td>
</tr>
<tr style="height:79.75pt">
<td width="310" valign="top" style="width:263.35pt;border-top:none;border-left:none;border-bottom:1pt solid windowtext;border-right:1pt solid windowtext;padding:0cm 5.4pt;height:79.75pt">
<p class="MsoNormal"><span lang="EN-US" style="font-family:Calibri,sans-serif">EXTRA_OECONF += " --enable-build-host-tool --enable-static-layout --enable-lpc-bridge
<br>
--enable-aspeed-lpc MAPPED_ADDRESS=0x98000000 --enable-reboot-update "<u></u><u></u></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal"><span lang="EN-US" style="color:black"><u></u> <u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black">Regards,<br>
Andrew<u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:10.5pt;font-family:等线;color:rgb(31,73,125)"><u></u> <u></u></span></p>
<p class="MsoNormal"><b><span style="font-size:11pt;font-family:等线">发件人<span lang="EN-US">:</span></span></b><span lang="EN-US" style="font-size:11pt;font-family:等线"> Patrick Venture <<a href="mailto:venture@google.com" target="_blank">venture@google.com</a>>
<br>
</span><b><span style="font-size:11pt;font-family:等线">发送时间<span lang="EN-US">:</span></span></b><span lang="EN-US" style="font-size:11pt;font-family:等线"> 2019</span><span style="font-size:11pt;font-family:等线">年<span lang="EN-US">6</span>月<span lang="EN-US">27</span>日<span lang="EN-US">
 9:59<br>
</span><b>收件人<span lang="EN-US">:</span></b><span lang="EN-US"> Andrew MS1 Peng <<a href="mailto:pengms1@lenovo.com" target="_blank">pengms1@lenovo.com</a>>; OpenBMC Maillist <<a href="mailto:openbmc@lists.ozlabs.org" target="_blank">openbmc@lists.ozlabs.org</a>><br>
</span><b>抄送<span lang="EN-US">:</span></b><span lang="EN-US"> Duke KH Du <<a href="mailto:dukh@lenovo.com" target="_blank">dukh@lenovo.com</a>>; <a href="mailto:benjaminfair@google.com" target="_blank">benjaminfair@google.com</a>; Adriana Kobylak <<a href="mailto:anoo@us.ibm.com" target="_blank">anoo@us.ibm.com</a>><br>
</span><b>主题<span lang="EN-US">:</span></b><span lang="EN-US"> [External] Re: Clarify some questions about in-band firmware update<u></u><u></u></span></span></p>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<div>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<div>
<div>
<p class="MsoNormal"><span lang="EN-US">On Wed, Jun 26, 2019 at 7:44 AM Patrick Venture <<a href="mailto:venture@google.com" target="_blank">venture@google.com</a>> wrote:<u></u><u></u></span></p>
</div>
<blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0cm 0cm 0cm 6pt;margin:5pt 0cm 5pt 4.8pt">
<div>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
<div>
<div>
<p class="MsoNormal"><span lang="EN-US">On Wed, Jun 26, 2019 at 4:28 AM Andrew MS1 Peng <<a href="mailto:pengms1@lenovo.com" target="_blank">pengms1@lenovo.com</a>> wrote:<u></u><u></u></span></p>
</div>
<blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0cm 0cm 0cm 6pt;margin:5pt 0cm 5pt 4.8pt">
<div>
<div>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Calibri,sans-serif">Hi Patrick,</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Calibri,sans-serif"> </span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black">I have some questions as below, could you help to clarify. Thanks.</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="gmail-m_-7643867586343560889gmail-m_5865277644764564145gmail-m_5232517683823064206gmail-m-6091798217660211465gmail-m-7106965077525685122msolistparagraph" style="margin-left:18pt">
<span lang="EN-US" style="font-family:Calibri,sans-serif;color:black">1.</span><span lang="EN-US" style="font-size:7pt;font-family:"Times New Roman",serif;color:black">     
</span><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black">Do you have any plans to support BIOS update in phosphor-ipmi-flash?</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="gmail-m_-7643867586343560889gmail-m_5865277644764564145gmail-m_5232517683823064206gmail-m-6091798217660211465gmail-m-7106965077525685122msolistparagraph" style="margin-left:18pt">
<span lang="EN-US" style="font-family:Calibri,sans-serif;color:black">If the answer is no, we would like to help to add this feature. Could you give us some advice or clues to implement it.</span><span lang="EN-US"><u></u><u></u></span></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">This could be added to the design (first step).<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">I could probably roll out this in a day or two, it's not a difficult extension with a few caveats. We'd have to define new services, such as update_bios.service instead of update_bmc.service.<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">I have some cycles, so I don't mind reviewing the changes required and rolling something out -- <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"> <u></u><u></u></span></p>
</div>
<blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0cm 0cm 0cm 6pt;margin:5pt 0cm 5pt 4.8pt">
<div>
<div>
<p class="gmail-m_-7643867586343560889gmail-m_5865277644764564145gmail-m_5232517683823064206gmail-m-6091798217660211465gmail-m-7106965077525685122msolistparagraph" style="margin-left:18pt">
<span lang="EN-US" style="font-family:Calibri,sans-serif;color:black">2.</span><span lang="EN-US" style="font-size:7pt;font-family:"Times New Roman",serif;color:black">     
</span><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black">The FPGA rom image is embedded in BMC image, we would like to add fpga-update.service and fpga-verify.service in phosphor-ipmi-flash, we expect that run both services after update
 BMC image completely. Do you have any concerns about it?</span><span lang="EN-US"><u></u><u></u></span></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">There are a couple things to unpack here.  The FPGA rom is embedded in the BMC image.  How is the BMC updated?  I ask because a machine can (and is expected to) provide its own update_bmc.service implementation.  This
 service could trigger the fpga-verify and fpga-update services within whatever code is called from the update_bmc service you specify.<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"> <u></u><u></u></span></p>
</div>
<blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0cm 0cm 0cm 6pt;margin:5pt 0cm 5pt 4.8pt">
<div>
<div>
<p class="gmail-m_-7643867586343560889gmail-m_5865277644764564145gmail-m_5232517683823064206gmail-m-6091798217660211465gmail-m-7106965077525685122msolistparagraph" style="margin-left:18pt">
<span lang="EN-US" style="font-family:Calibri,sans-serif;color:black">3.</span><span lang="EN-US" style="font-size:7pt;font-family:"Times New Roman",serif;color:black">     
</span><span lang="EN-US" style="font-family:Calibri,sans-serif;color:black">How can I make a static executable host tool (burn_my_bmc)? Currently, I can’t to make a
<em><span style="font-family:Calibri,sans-serif;background:white;font-style:normal">statically linked binary successfully</span></em>, but I have made it before you added p2a function.</span><span lang="EN-US"><u></u><u></u></span></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><span lang="EN-US">For the host tool you need to specify very little, you should be able to build it via:<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">./bootstrap.sh<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">./configure<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">./make<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">You will need to checkout and install ipmi-blob-tool first (openbmc/ipmi-blob-tool)<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">^^ --- those steps should go on the README.  Will add them shortly.<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"> <u></u><u></u></span></p>
</div>
<blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0cm 0cm 0cm 6pt;margin:5pt 0cm 5pt 4.8pt">
<div>
<div>
<p class="gmail-m_-7643867586343560889gmail-m_5865277644764564145gmail-m_5232517683823064206gmail-m-6091798217660211465gmail-m-7106965077525685122msolistparagraph" style="margin-left:18pt">
<span lang="EN-US" style="font-family:Calibri,sans-serif;color:black">Based on different OS
</span><span lang="EN-US" style="font-family:Calibri,sans-serif">environment as below,
<span style="color:black">I would like to have a static executable since <em><span style="font-family:Calibri,sans-serif;background:white;font-style:normal">dynamically linked binary can’t work normally in host OS.</span></em></span></span><span lang="EN-US"><u></u><u></u></span></p>
<table class="gmail-m_-7643867586343560889gmail-m_5865277644764564145gmail-m_5232517683823064206MsoNormalTable" border="0" cellspacing="0" cellpadding="0" style="margin-left:18pt;border-collapse:collapse">
<tbody>
<tr>
<td width="288" valign="top" style="width:215.75pt;border:1pt solid windowtext;padding:0cm 5.4pt">
<p class="gmail-m_-7643867586343560889gmail-m_5865277644764564145gmail-m_5232517683823064206gmail-m-6091798217660211465gmail-m-7106965077525685122msolistparagraph">
<span lang="EN-US" style="font-family:Calibri,sans-serif">Host OS environment</span><span lang="EN-US"><u></u><u></u></span></p>
</td>
<td width="288" valign="top" style="width:215.75pt;border-top:1pt solid windowtext;border-right:1pt solid windowtext;border-bottom:1pt solid windowtext;border-left:none;padding:0cm 5.4pt">
<p class="gmail-m_-7643867586343560889gmail-m_5865277644764564145gmail-m_5232517683823064206gmail-m-6091798217660211465gmail-m-7106965077525685122msolistparagraph">
<span lang="EN-US" style="font-family:Calibri,sans-serif">Build environment (OpenBmc)</span><span lang="EN-US"><u></u><u></u></span></p>
</td>
</tr>
<tr>
<td width="288" valign="top" style="width:215.75pt;border-right:1pt solid windowtext;border-bottom:1pt solid windowtext;border-left:1pt solid windowtext;border-top:none;padding:0cm 5.4pt">
<p class="gmail-m_-7643867586343560889gmail-m_5865277644764564145gmail-m_5232517683823064206gmail-m-6091798217660211465gmail-m-7106965077525685122msolistparagraph">
<span lang="EN-US" style="font-family:Calibri,sans-serif">Gcc  v4.8.5</span><span lang="EN-US"><u></u><u></u></span></p>
</td>
<td width="288" valign="top" style="width:215.75pt;border-top:none;border-left:none;border-bottom:1pt solid windowtext;border-right:1pt solid windowtext;padding:0cm 5.4pt">
<p class="gmail-m_-7643867586343560889gmail-m_5865277644764564145gmail-m_5232517683823064206gmail-m-6091798217660211465gmail-m-7106965077525685122msolistparagraph">
<span lang="EN-US" style="font-family:Calibri,sans-serif">Gcc   v8.3.0</span><span lang="EN-US"><u></u><u></u></span></p>
</td>
</tr>
<tr>
<td width="288" valign="top" style="width:215.75pt;border-right:1pt solid windowtext;border-bottom:1pt solid windowtext;border-left:1pt solid windowtext;border-top:none;padding:0cm 5.4pt">
<p class="gmail-m_-7643867586343560889gmail-m_5865277644764564145gmail-m_5232517683823064206gmail-m-6091798217660211465gmail-m-7106965077525685122msolistparagraph">
<span lang="EN-US" style="font-family:Calibri,sans-serif">Glibc  v2.17</span><span lang="EN-US"><u></u><u></u></span></p>
</td>
<td width="288" valign="top" style="width:215.75pt;border-top:none;border-left:none;border-bottom:1pt solid windowtext;border-right:1pt solid windowtext;padding:0cm 5.4pt">
<p class="gmail-m_-7643867586343560889gmail-m_5865277644764564145gmail-m_5232517683823064206gmail-m-6091798217660211465gmail-m-7106965077525685122msolistparagraph">
<span lang="EN-US" style="font-family:Calibri,sans-serif">Glibc  v2.29</span><span lang="EN-US"><u></u><u></u></span></p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">The bitbake recipe isn't meant to be used for the host tool.  It explicitly disables building the host-tool by default.  You should be able to check out the repo and build from there.  Let me know if you run into issues
 with that.<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"> <u></u><u></u></span></p>
</div>
<blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0cm 0cm 0cm 6pt;margin:5pt 0cm 5pt 4.8pt">
<div>
<div>
<p class="gmail-m_-7643867586343560889gmail-m_5865277644764564145gmail-m_5232517683823064206gmail-m-6091798217660211465gmail-m-7106965077525685122msolistparagraph" style="margin-left:18pt">
<span lang="EN-US" style="font-family:Calibri,sans-serif">4.</span><span lang="EN-US" style="font-size:7pt;font-family:"Times New Roman",serif">     
</span><span lang="EN-US" style="font-family:Calibri,sans-serif">I didn’t find the below service files in source tree, where can find default services or should we provide our own services?
</span><span lang="EN-US"><u></u><u></u></span></p>
<p class="gmail-m_-7643867586343560889gmail-m_5865277644764564145gmail-m_5232517683823064206gmail-m-6091798217660211465gmail-m-7106965077525685122msolistparagraph" style="margin-left:18pt">
<code><span lang="EN-US" style="font-family:Calibri,sans-serif">update_bmc.service</span></code><span lang="EN-US" style="font-family:Calibri,sans-serif"><br>
<code><span style="font-family:Calibri,sans-serif">verify_image.service</span></code><br>
<code><span style="font-family:Calibri,sans-serif">prepare_update.service</span></code></span><span lang="EN-US"><u></u><u></u></span></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">That's correct.  There are currently no default service files.  I am thinking of providing a default prepare_update service in a later CL, however updating the BMC or verifying the image depend entirely on the system
 -- which makes it difficult to have a default.  In point of fact, there isn't really a valid default phosphor-ipmi-flash build for a BMC.  Everything needs to be specified.<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">^--- I can work on making the ubi bmc option available if the ubi distro feature is enabled, etc -- providing some defaults.<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">^--- I have a plan to provide a prepare_update.service once I finish testing Aspeed LPC support.<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"> <u></u><u></u></span></p>
</div>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><span lang="EN-US"><u></u> <u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US">I've been reviewing the build process for the host-tool and the configure file and other pieces require the BMC-stuff to be installed first (sdbusplus, etc).  I'm going to cleanup the configure file so that if you're
 building the host-tool it doesn't try to build the BMC stuff. <u></u><u></u></span></p>
</div>
<blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0cm 0cm 0cm 6pt;margin:5pt 0cm 5pt 4.8pt">
<div>
<div>
<blockquote style="border-top:none;border-right:none;border-bottom:none;border-left:1pt solid rgb(204,204,204);padding:0cm 0cm 0cm 6pt;margin:5pt 0cm 5pt 4.8pt">
<div>
<div>
<p class="gmail-m_-7643867586343560889gmail-m_5865277644764564145gmail-m_5232517683823064206gmail-m-6091798217660211465gmail-m-7106965077525685122msolistparagraph" style="margin-left:18pt">
<span lang="EN-US"> <u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Calibri,sans-serif"> </span><span lang="EN-US"><u></u><u></u></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-family:Calibri,sans-serif">Regards,<br>
Andrew</span></p></div></div></blockquote></div></div></blockquote></div></div></div></div></blockquote></div></div></blockquote><div><br></div><div>Andrew, the steps here should work for you to build out the host-tool: <a href="https://github.com/openbmc/phosphor-ipmi-flash#building-and-using-the-host-tool" target="_blank">https://github.com/openbmc/phosphor-ipmi-flash#building-and-using-the-host-tool</a></div><div><br></div><div>That said, because you requested we support BIOS images too, I'm looking at re-working some of the blobIDs involved.  That said, the host-tool and BMC version are locked together. </div></div></div></blockquote><div><br></div><div>Uploaded design change to support host bios, for review: <a href="https://gerrit.openbmc-project.xyz/c/openbmc/docs/+/23246">https://gerrit.openbmc-project.xyz/c/openbmc/docs/+/23246</a></div><div> </div></div></div>