This is another attempt to implement minimalistic Open Firmware Client Interface in QEMU.
With this thing, I can boot unmodified Ubuntu 18.04 and Fedora 30 directly from the disk without SLOF. A useful discussion happened esrlier: https://lore.kernel.org/qemu-devel/f881c2e7-be92-9695-6e19-2dd88cbc6...@ozlabs.ru/ 5/5 is kind of controvertial though. This respin does not include networking. This is based on sha1 015fb0ead60d Chen Qun "hw/ppc/virtex_ml507:fix leak of fdevice tree blob". Please comment. Thanks. Alexey Kardashevskiy (5): ppc/spapr: Move GPRs setup to one place spapr/spapr: Make vty_getchars public spapr/cas: Separate CAS handling from rebuilding the FDT spapr: Implement Open Firmware client interface spapr/vof: Add basic support for MBR/GPT/GRUB hw/ppc/Makefile.objs | 1 + pc-bios/vof/Makefile | 18 + include/hw/ppc/spapr.h | 27 +- include/hw/ppc/spapr_cpu_core.h | 4 +- include/hw/ppc/spapr_vio.h | 1 + pc-bios/vof/vof.h | 63 ++ hw/char/spapr_vty.c | 2 +- hw/ppc/spapr.c | 69 +- hw/ppc/spapr_cpu_core.c | 6 +- hw/ppc/spapr_hcall.c | 73 +- hw/ppc/spapr_of_client.c | 1285 +++++++++++++++++++++++++++++++ hw/ppc/spapr_rtas.c | 2 +- pc-bios/vof/bootblock.c | 242 ++++++ pc-bios/vof/bootmem.c | 13 + pc-bios/vof/ci.c | 147 ++++ pc-bios/vof/elf32.c | 273 +++++++ pc-bios/vof/libc.c | 91 +++ pc-bios/vof/main.c | 24 + hw/ppc/trace-events | 25 + pc-bios/README | 2 + pc-bios/vof.bin | Bin 0 -> 9180 bytes pc-bios/vof/entry.S | 58 ++ pc-bios/vof/l.lds | 48 ++ 23 files changed, 2429 insertions(+), 45 deletions(-) create mode 100644 pc-bios/vof/Makefile create mode 100644 pc-bios/vof/vof.h create mode 100644 hw/ppc/spapr_of_client.c create mode 100644 pc-bios/vof/bootblock.c create mode 100644 pc-bios/vof/bootmem.c create mode 100644 pc-bios/vof/ci.c create mode 100644 pc-bios/vof/elf32.c create mode 100644 pc-bios/vof/libc.c create mode 100644 pc-bios/vof/main.c create mode 100755 pc-bios/vof.bin create mode 100644 pc-bios/vof/entry.S create mode 100644 pc-bios/vof/l.lds -- 2.17.1