phosphor-ipmi-flash making progress!

Patrick Venture venture at google.com
Thu Jun 13 11:04:00 AEST 2019


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