Clarify some questions about in-band firmware update

Patrick Venture venture at google.com
Thu Jun 27 11:58:46 AEST 2019


On Wed, Jun 26, 2019 at 7:44 AM Patrick Venture <venture at google.com> wrote:

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

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.

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


More information about the openbmc mailing list