[RFC PATCH 0/7] Support for Hostboot Attributes
Sam Mendoza-Jonas
sam.mj at au1.ibm.com
Mon Nov 30 14:08:44 AEDT 2015
Whoops, send-email got a bit unhappy with the patch adding CCAN headers
- for now I'll just resend without that patch, if anyone is interested
they're the same as what is included in the Skiboot tree.
On Mon, Nov 30, 2015 at 01:59:24PM +1100, Samuel Mendoza-Jonas wrote:
> This series of patches adds support for reading and modifying Hostboot
> platform attribute overrides from the Petitboot UI. This is an RFC only
> and will undergo further updates and/or optimisations before merging
>
> Hostboot attributes define several platform-specific options that can be
> changed by writing attribute 'overrides'. On Open Power BMC machines,
> (permanent) attributes are stored in the ATTR_PERM partition in PNOR flash
> memory. Updating these overrides allows platform-specific options to be
> updated much like in a conventional 'BIOS'.
>
> PNOR flash can be accessed from userspace via the /dev/mtd device. The PNOR
> is divided into several partitions, some of which are ECC-protected in software.
> The 'libflash' library from Skiboot (https://github.com/open-power/skiboot)
> provides an interface to handle the specifics.
> libflash is normally linked against statically within the Skiboot tree - this
> RFC will depend on a separate patch on the Skiboot mailing list,
> "[RFC PATCH] external: Add Makefile targets to install libflash", which adds
> support for building libflash as a shared library.
>
> A list of possible attribute overrides will be defined by an XML file generated
> by the relevant open-power/[platform]-xml scripts, and written to /usr/share
> in op-build generated Skiroot builds. For each available attribute the XML will
> define details required to write the override to flash, and further information
> to describe the override to the user.
> Petitboot parses this XML file, and retains the layout of options to
> auto-generate a 'Firmware Configuration' menu to make the options
> user-selectable. If changed, the updated attribute is written to flash, and the
> machine rebooted for the new attributes to take effect.
>
> The most significant remaining items for this patchset are;
> * Update compile-time options to make the libxml2 and libflash components
> optional (eg. for FSP-based machines).
> * Improve the layout and positioning of UI elements in nc-hostboot.c
> * Some additional sanity-checking and optimisation in lib/flash.c
> * Ensure related Skiboot patch is merged and/or update linking method.
>
> Samuel Mendoza-Jonas (7):
> lib: Add types for platform attributes
> lib: Add libxml2 support
> lib: Add CCAN headers
> lib: Add libflash support for Open Power machines
> discover: Add hostboot XML handling and processing
> discover: Add platform support for attribute overrides
> ui: Add nc-hostboot.c and support for firmware messages
>
> discover/Makefile.am | 11 +
> discover/device-handler.c | 21 +
> discover/device-handler.h | 2 +
> discover/discover-server.c | 36 ++
> discover/hostboot.c | 344 +++++++++++++++
> discover/hostboot.h | 10 +
> discover/platform-powerpc.c | 31 ++
> discover/platform.c | 37 ++
> discover/platform.h | 8 +
> lib/Makefile.am | 17 +-
> lib/ccan/endian/.depends | 0
> lib/ccan/endian/LICENSE | 28 ++
> lib/ccan/endian/_info | 55 +++
> lib/ccan/endian/endian.h | 346 +++++++++++++++
> lib/ccan/endian/test/compile_ok-constant.c | 12 +
> lib/ccan/endian/test/run.c | 109 +++++
> lib/flash/config.h | 19 +
> lib/flash/flash.c | 648 +++++++++++++++++++++++++++
> lib/flash/flash.h | 50 +++
> lib/pb-protocol/pb-protocol.c | 358 +++++++++++++++
> lib/pb-protocol/pb-protocol.h | 7 +
> lib/types/types.c | 63 +++
> lib/types/types.h | 63 +++
> lib/xml/xml.c | 155 +++++++
> lib/xml/xml.h | 19 +
> ui/common/discover-client.c | 36 ++
> ui/common/discover-client.h | 5 +
> ui/ncurses/Makefile.am | 3 +
> ui/ncurses/nc-cui.c | 55 ++-
> ui/ncurses/nc-cui.h | 5 +
> ui/ncurses/nc-hostboot-help.c | 4 +
> ui/ncurses/nc-hostboot.c | 677 +++++++++++++++++++++++++++++
> ui/ncurses/nc-hostboot.h | 34 ++
> ui/ncurses/nc-scr.h | 1 +
> ui/ncurses/nc-widgets.c | 4 +-
> ui/ncurses/nc-widgets.h | 4 +-
> 36 files changed, 3266 insertions(+), 11 deletions(-)
> create mode 100644 discover/hostboot.c
> create mode 100644 discover/hostboot.h
> create mode 100644 lib/ccan/endian/.depends
> create mode 100644 lib/ccan/endian/LICENSE
> create mode 100644 lib/ccan/endian/_info
> create mode 100644 lib/ccan/endian/endian.h
> create mode 100644 lib/ccan/endian/test/compile_ok-constant.c
> create mode 100644 lib/ccan/endian/test/run.c
> create mode 100644 lib/flash/config.h
> create mode 100644 lib/flash/flash.c
> create mode 100644 lib/flash/flash.h
> create mode 100644 lib/xml/xml.c
> create mode 100644 lib/xml/xml.h
> create mode 100644 ui/ncurses/nc-hostboot-help.c
> create mode 100644 ui/ncurses/nc-hostboot.c
> create mode 100644 ui/ncurses/nc-hostboot.h
>
> --
> 2.6.2
>
More information about the Petitboot
mailing list