Addressing review comments received for v4 (with many thanks). Deeper changes in v5 include (see also the notes per patch):
- The I/O port mapping and the MMIO mapping have been split into separate QOM subclasses. This is new territory for me (what is not, heh), so bear with me. I've done this because a wide data I/O port didn't seem overly useful, but marrying it with the overlapped selector/data case was certainly a huge mess. This is just so much cleaner. (Assuming I got it right.) - The memory mapped selector and data registers are explicitly big endian now. - The memory mapped data register performs its own value (de)composition, the memory subsystem is left out from that role. Thanks, Laszlo Laszlo Ersek (10): fw_cfg: hard separation between the MMIO and I/O port mappings fw_cfg: move boards to fw_cfg_init_io() / fw_cfg_init_mem() fw_cfg_mem: max access size and region size are the same for data register fw_cfg_mem: flip ctl_mem_ops and data_mem_ops to DEVICE_BIG_ENDIAN fw_cfg_mem: introduce the "data_width" property fw_cfg_mem: expose the "data_width" property with fw_cfg_init_mem_wide() arm: add fw_cfg to "virt" board hw/loader: split out load_image_gzipped_buffer() hw/arm: pass pristine kernel image to guest firmware over fw_cfg hw/arm/virt: enable passing of EFI-stubbed kernel to guest UEFI firmware Paolo Bonzini (1): exec: allows 8-byte accesses in subpage_ops include/hw/arm/arm.h | 5 + include/hw/loader.h | 9 ++ include/hw/nvram/fw_cfg.h | 6 +- include/qemu/typedefs.h | 2 + exec.c | 13 ++- hw/arm/boot.c | 88 +++++++++++++++- hw/arm/virt.c | 22 ++++ hw/core/loader.c | 30 ++++-- hw/i386/pc.c | 4 +- hw/nvram/fw_cfg.c | 250 +++++++++++++++++++++++++++++++++++----------- hw/ppc/mac_newworld.c | 2 +- hw/ppc/mac_oldworld.c | 2 +- hw/sparc/sun4m.c | 2 +- hw/sparc64/sun4u.c | 2 +- 14 files changed, 354 insertions(+), 83 deletions(-) -- 1.8.3.1