Hello, On a POWERPC PowerNV system, the host firmware is stored in a PNOR flash chip which contents is mapped on the LPC bus. This model adds a simple dummy device to map the contents of a block device in the host address space and activates HIOMAP support on the QEMU PowerNV machine to let the host negotiate with the BMC the access to the mapping.
The command options to activate these models in QEMU: -device ipmi-bmc-sim,id=bmc0 -device isa-ipmi-bt,bmc=bmc0,irq=10 \ -drive file=./witherspoon.pnor,format=raw,if=mtd The last two patches add the logic to load in the machine memory the PAYLOAD partition (skiboot) from an OpenPOWER firmware file. These should be considered as RFCs as the firmware file could have a different format. Something to discuss. Thanks, C. Cédric Le Goater (5): ppc/pnv: Add a PNOR model ipmi: Add support to customize OEM functions ppc/pnv: Add HIOMAP commands libxz: Add XZ Embedded library for PPC ppc/pnv: Read the PNOR partition table include/hw/ipmi/ipmi.h | 36 ++ include/hw/ppc/ffs.h | 150 +++++ include/hw/ppc/pnv.h | 4 + include/hw/ppc/pnv_pnor.h | 36 ++ libxz/xz.h | 304 ++++++++++ libxz/xz_config.h | 124 ++++ libxz/xz_lzma2.h | 204 +++++++ libxz/xz_private.h | 156 +++++ libxz/xz_stream.h | 62 ++ hw/ipmi/ipmi_bmc_sim.c | 41 +- hw/ppc/pnv.c | 48 +- hw/ppc/pnv_bmc.c | 101 ++++ hw/ppc/pnv_lpc.c | 13 + hw/ppc/pnv_pnor.c | 291 +++++++++ libxz/xz_crc32.c | 59 ++ libxz/xz_dec_lzma2.c | 1171 +++++++++++++++++++++++++++++++++++++ libxz/xz_dec_stream.c | 847 +++++++++++++++++++++++++++ hw/ppc/Makefile.objs | 4 +- libxz/Makefile.objs | 1 + target/ppc/Makefile.objs | 1 + 20 files changed, 3606 insertions(+), 47 deletions(-) create mode 100644 include/hw/ppc/ffs.h create mode 100644 include/hw/ppc/pnv_pnor.h create mode 100644 libxz/xz.h create mode 100644 libxz/xz_config.h create mode 100644 libxz/xz_lzma2.h create mode 100644 libxz/xz_private.h create mode 100644 libxz/xz_stream.h create mode 100644 hw/ppc/pnv_pnor.c create mode 100644 libxz/xz_crc32.c create mode 100644 libxz/xz_dec_lzma2.c create mode 100644 libxz/xz_dec_stream.c create mode 100644 libxz/Makefile.objs -- 2.21.0