[Skiboot] Towards standard firmware update
Stewart Smith
stewart at linux.vnet.ibm.com
Fri Jul 31 11:38:56 AEST 2015
Hi all,
Currently our OPAL APIs for firmware update are only linked up on FSP
machines and the interface is rather FSP specific (the verify call only
takes the first 4k or something, which is obviously problematic).
If I had a dollar for every time I've been asked in the past week about
firmware update on OpenPower systems... I'd at least be able to buy a
very nice lunch.
I think it would be good to have the standard update_flash userspace
utility (or some replacement that's a bit nicer), with a single standard
kernel interface with a standard set of OPAL calls for updating firmware
on all platforms.
After all, no *user* ever wants to have to know exactly what type of
machine they have to update their firmware, they're already going to be
annoyed at having to find out the model number to type into a vendor's
web site to find the blob of stuff to download.
So... how do we do that?
Our OPAL calls are currently documented in
doc/opal-api/opal-code-update-76-77-78.txt
We'll likely need to change them, but we should work out what would be
the requirements for having common calls on AST BMC machines.
My current guess is we need
1) verify image. does platform specific sanity checks on an image loaded
by host kernel. Could be verifying LIDs on FSP, checking crc32s or
headers or anything that can give some assurance of "your not
certainly going to brick your box"
2) flash image
image loaded by host into memory, skiboot flashes it onto some
side/location.
TODO: how do we abstract away P/T or Golden/not-golden ?
3) flip boot side.
When platform has multiple instances of the firmware, flip between
what's giong to be booted (permanently/temporarily)
4) get info on flash
What we expose in DT is what we had *on boot* and does *NOT*
represent what's on the flash *NOW*.
So... if a platform supports flashing at runtime (I can't see
anything in FSP docs that says it isn't supported... not that we do
it currently and I have no idea if it works)
On AST BMC machines this could all just be flash operations.
Thoughts? Comments?
More information about the Skiboot
mailing list