Clarify some questions about in-band firmware update

Patrick Venture venture at google.com
Thu Jun 27 00:44:17 AEST 2019


On Wed, Jun 26, 2019 at 4:28 AM Andrew MS1 Peng <pengms1 at lenovo.com> wrote:

> Hi Patrick,
>
>
>
> I have some questions as below, could you help to clarify. Thanks.
>
> 1.      Do you have any plans to support BIOS update in
> phosphor-ipmi-flash?
>
> 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.
>

This could be added to the design (first step).
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.

I have some cycles, so I don't mind reviewing the changes required and
rolling something out --


> 2.      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?
>

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.


> 3.      How can I make a static executable host tool (burn_my_bmc)?
> Currently, I can’t to make a *statically linked binary successfully*, but
> I have made it before you added p2a function.
>
For the host tool you need to specify very little, you should be able to
build it via:
./bootstrap.sh
./configure
./make

You will need to checkout and install ipmi-blob-tool first
(openbmc/ipmi-blob-tool)


^^ --- those steps should go on the README.  Will add them shortly.


> Based on different OS environment as below, I would like to have a static
> executable since *dynamically linked binary can’t work normally in host
> OS.*
>
> Host OS environment
>
> Build environment (OpenBmc)
>
> Gcc  v4.8.5
>
> Gcc   v8.3.0
>
> Glibc  v2.17
>
> Glibc  v2.29
>

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.


> 4.      I didn’t find the below service files in source tree, where can
> find default services or should we provide our own services?
>
> update_bmc.service
> verify_image.service
>
> prepare_update.service
>

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.

^--- I can work on making the ubi bmc option available if the ubi distro
feature is enabled, etc -- providing some defaults.
^--- I have a plan to provide a prepare_update.service once I finish
testing Aspeed LPC support.


>
>
>
>
> Regards,
> Andrew
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20190626/c794ece7/attachment.htm>


More information about the openbmc mailing list