phosphor-ipmi-flash making progress!

Neeraj Ladkani neladk at
Wed Jul 31 09:19:57 AEST 2019

Do we support HPM ? how do we enable Windows based Inband firmware update? 


-----Original Message-----
From: Patrick Venture <venture at> 
Sent: Thursday, June 20, 2019 7:26 AM
To: Neeraj Ladkani <neladk at>
Cc: OpenBMC Maillist <openbmc at>
Subject: Re: phosphor-ipmi-flash making progress!

On Wed, Jun 19, 2019 at 11:23 PM Neeraj Ladkani <neladk at> wrote:
> What are in-band update methods for OpenBMC? I see this(phosphor-ipmi-flash) can take takes ~3 hours over IPMI. What is the solution for in-band update?  what tools can be used?

It supports the LPC memory region interface available with the Aspeed and Nuvoton BMCs.  Then it doesn't take 3 hours.  It also supports using the aspeed pci-to-ahb bridge on Aspeed.  It will probably support Nuvoton's variation of that, but that's beyond my current scoping.  As far as tools, i don't entirely know what you mean.  There is a tool in phosphor-ipmi-flash for the host.

> Neeraj
> -----Original Message-----
> From: openbmc < at> 
> On Behalf Of Patrick Venture
> Sent: Wednesday, June 12, 2019 6:04 PM
> To: OpenBMC Maillist <openbmc at>
> Subject: phosphor-ipmi-flash making progress!
> For those interested parties, phosphor-ipmi-flash which provides a variety of out-of-band mechanisms for updating the BMC in a fully-configurable manner is nearly ready for wide distribution.
> Currently supported: aspeed-p2a-ctrl (ipmipci), and inband (ipmibt)* 
> Shortly supported: aspeed-lpc-ctrl (ipmilpc)
> *There is a bug in the transmit buffer size depending on whether it's over KCS versus actually BT since BT has a smaller buffer requirement.
> UBI Tarball updates aren't yet supported, but that's only a matter of someone writing an update handler.  The firmware handler on the BMC can be extended easily to support a variety of verification and update mechanisms.  The default behavior is to leverage a service for each of these things.  One can implement whatever they really want for each service.
> The file sent to the BMC isn't required to have a signature file.  One could simply skip sending the hash file and have a verification step that doesn't do anything special.  So, it's very flexible.
> Here's some output:
> $ ./phosphor_ipmi_flash_tool --command update --interface ipmipci 
> --image image-bmc --sig image-bmc.sig
> Sending over the firmware image.
> [0x1a03 0x2000]
> The bridge is enabled!
> Received address: 0x47ff0000
> Sending over the hash file.
> [0x1a03 0x2000]
> The bridge is enabled!
> Received address: 0x47ff0000
> Opening the verification file
> Committing to /flash/verify file to trigger service Calling stat on 
> /flash/verify session to check status other running running success 
> Returned success succeeded
> Opening the update file
> Committing to /flash/update file to trigger service Calling stat on 
> /flash/update session to check status running Exception received: blob 
> exception received: Received IPMI_CC: busy
> On the BMC:
> shutdown: reboot --timeout 90000000us --log-level 6 --log-target kmsg 
> --log-color
> + awk '/oldroot|mnt/ { print $2 }'
> + sort -r
> + umount /oldroot/sys/kernel/debug
> + umount /oldroot/sys/fs/cgroup/unified umount 
> + /oldroot/sys/fs/cgroup/systemd umount /oldroot/sys/fs/cgroup umount 
> + /oldroot/sys/fs/bpf umount /oldroot/sys umount /oldroot/proc umount 
> + /oldroot/dev/shm umount /oldroot/dev/pts umount /oldroot/dev umount 
> + /oldroot umount /mnt/initramfs/rw umount /mnt/initramfs/ro umount 
> + /mnt set +x
> Pinging watchdog with args -t 1 -T 5
> update: --clean-saved-files
> [ 8240.817801] jffs2: notice: (1171) jffs2_build_xattr_subsystem:
> complete building xattr subsystem, 17 of xdatum (15 unchecked, 1
> orphan) and 30 of xref (1 dead, 0 orphan) found.
> Updating bmc...
> Erasing block: 69/512 (13%)
> Given a BMC configuration:
> EXTRA_OECONF_append_quanta-q71l = " --enable-static-layout"
> EXTRA_OECONF_append_quanta-q71l = " --enable-pci-bridge"
> EXTRA_OECONF_append_quanta-q71l = " --enable-aspeed-p2a"
> EXTRA_OECONF_append_quanta-q71l = " --enable-reboot-update"
> EXTRA_OECONF_append_quanta-q71l = " MAPPED_ADDRESS=0x47FF0000"
> Patrick

More information about the openbmc mailing list