From 0d2f830255c758240dccbeb732a2c21f4eea995c Mon Sep 17 00:00:00 2001 From: Alexey Kardashevskiy Date: Fri, 13 Mar 2015 22:45:13 +1100 Subject: [PATCH 1/5] pseries: Update SLOF firmware image to qemu-slof-20150313 The changelog is: > virtio: Fix vring allocation > helpers: Fix SLOF_alloc_mem_aligned to meet callers expectation > Set default palette according to "16-color Text Extension" document > Fix rectangle drawing functions to work also with higher bit depths > Fix the x86emu patch file > Silence compiler warning when building the biosemu > Use device-type Forth word to set up the corresponding property > Improve /openprom node > pci-properties: Remove redundant call to device-type > cas: reconfigure memory nodes > pci: use 64bit bar ranges Signed-off-by: Alexey Kardashevskiy Signed-off-by: Alexander Graf --- pc-bios/README | 2 +- pc-bios/slof.bin | Bin 911704 -> 912192 bytes roms/SLOF | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pc-bios/README b/pc-bios/README index 8a85e69d3b..63e725444d 100644 --- a/pc-bios/README +++ b/pc-bios/README @@ -17,7 +17,7 @@ - SLOF (Slimline Open Firmware) is a free IEEE 1275 Open Firmware implementation for certain IBM POWER hardware. The sources are at https://github.com/aik/SLOF, and the image currently in qemu is - built from git tag qemu-slof-20141202. + built from git tag qemu-slof-20150313. - sgabios (the Serial Graphics Adapter option ROM) provides a means for legacy x86 software to communicate with an attached serial console as diff --git a/pc-bios/slof.bin b/pc-bios/slof.bin index 031e3063a277e769c78b637de13c93f4074389f5..ab72cba80c528aea2545974e9c717cee583c254c 100644 GIT binary patch delta 10238 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 delta 9777 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 diff --git a/roms/SLOF b/roms/SLOF index a70dbda2e2..c89b0df661 160000 --- a/roms/SLOF +++ b/roms/SLOF @@ -1 +1 @@ -Subproject commit a70dbda2e21f6e438b3617c44ff180c3418dc30f +Subproject commit c89b0df661c0a6bfa9ff0ed4a371f631f5ee38b0 From 4c56440d6754b45c2d82969e029a3c2a72864b30 Mon Sep 17 00:00:00 2001 From: Stefan Weil Date: Sat, 14 Mar 2015 16:29:09 +0100 Subject: [PATCH 2/5] spapr: Add missing checks for NULL pointers and report failures This fixes potential runtime crashes and two warnings from Coverity. The new error message does not add a prefix "qemu:" because that is already done in function hw_error. It also starts with an uppercase letter because that seems to be the mostly used form. Signed-off-by: Stefan Weil [agraf: fix typo] Signed-off-by: Alexander Graf --- hw/ppc/spapr.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 0487f52819..7febff7ed2 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1506,6 +1506,10 @@ static void ppc_spapr_init(MachineState *machine) } filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, "spapr-rtas.bin"); + if (!filename) { + hw_error("Could not find LPAR rtas '%s'\n", "spapr-rtas.bin"); + exit(1); + } spapr->rtas_size = get_image_size(filename); spapr->rtas_blob = g_malloc(spapr->rtas_size); if (load_image_size(filename, spapr->rtas_blob, spapr->rtas_size) < 0) { @@ -1623,6 +1627,10 @@ static void ppc_spapr_init(MachineState *machine) bios_name = FW_FILE_NAME; } filename = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name); + if (!filename) { + hw_error("Could not find LPAR rtas '%s'\n", bios_name); + exit(1); + } fw_size = load_image_targphys(filename, 0, FW_MAX_SIZE); if (fw_size < 0) { hw_error("qemu: could not load LPAR rtas '%s'\n", filename); From fda276c7aafe2bfc9df808e61abd25cb834a0254 Mon Sep 17 00:00:00 2001 From: Alexey Kardashevskiy Date: Wed, 18 Mar 2015 14:11:21 +1100 Subject: [PATCH 3/5] target-ppc: Remove POWER5+ v0.0 that never existed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit IBM uses low 16bits to specify the chip version of a POWER CPU. So there has never been an actual silicon with PVR = 0x003B0000. The first silicon would have PVR 0x003B0100 but it is very unlikely to find it in any machine shipped to any customer as it was too raw. This removes CPU_POWERPC_POWER5P_v00 definition and changes POWER5+ and POWERgs aliases (which are synonyms) to point to POWER5+_v2.1 which can still be found in real machines. Signed-off-by: Alexey Kardashevskiy Reviewed-by: Andreas Färber [agraf: fix commit message] Signed-off-by: Alexander Graf --- target-ppc/cpu-models.c | 6 ++---- target-ppc/cpu-models.h | 1 - 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/target-ppc/cpu-models.c b/target-ppc/cpu-models.c index 2b560a4757..4d5ab4ba18 100644 --- a/target-ppc/cpu-models.c +++ b/target-ppc/cpu-models.c @@ -1124,8 +1124,6 @@ POWERPC_DEF("POWER5", CPU_POWERPC_POWER5, POWER5, "POWER5") #endif - POWERPC_DEF("POWER5+_v0.0", CPU_POWERPC_POWER5P_v00, POWER5P, - "POWER5+ v0.0") POWERPC_DEF("POWER5+_v2.1", CPU_POWERPC_POWER5P_v21, POWER5P, "POWER5+ v2.1") #if defined(TODO) @@ -1387,8 +1385,8 @@ PowerPCCPUAlias ppc_cpu_aliases[] = { { "Dino", "POWER3" }, { "POWER3+", "631" }, { "POWER5gr", "POWER5" }, - { "POWER5+", "POWER5+_v0.0" }, - { "POWER5gs", "POWER5+_v0.0" }, + { "POWER5+", "POWER5+_v2.1" }, + { "POWER5gs", "POWER5+_v2.1" }, { "POWER7", "POWER7_v2.3" }, { "POWER7+", "POWER7+_v2.1" }, { "POWER8E", "POWER8E_v1.0" }, diff --git a/target-ppc/cpu-models.h b/target-ppc/cpu-models.h index ee693af873..9d80e72271 100644 --- a/target-ppc/cpu-models.h +++ b/target-ppc/cpu-models.h @@ -547,7 +547,6 @@ enum { CPU_POWERPC_POWER4P = 0x00380000, /* XXX: missing 0x003A0201 */ CPU_POWERPC_POWER5 = 0x003A0203, - CPU_POWERPC_POWER5P_v00 = 0x003B0000, CPU_POWERPC_POWER5P_v21 = 0x003B0201, CPU_POWERPC_POWER6 = 0x003E0000, CPU_POWERPC_POWER6_5 = 0x0F000001, /* POWER6 in POWER5 mode */ From 5b2128d27051fe036ac36e8e860e72490b27a369 Mon Sep 17 00:00:00 2001 From: Alexander Graf Date: Wed, 18 Mar 2015 13:30:44 +0100 Subject: [PATCH 4/5] PPC: pseries: Implement boot once=foo On sPAPR we haven't supported boot once ever since it emerged, but recently grew need for it. This patch implements boot once logic to it. While at it, we also move to the new bootdevice handling that got introduced to the tree recently. Reported-by: Dinar Valeev Signed-off-by: Alexander Graf --- hw/ppc/spapr.c | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 7febff7ed2..ca0a060b92 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -314,7 +314,6 @@ static void *spapr_create_fdt_skel(hwaddr initrd_base, hwaddr initrd_size, hwaddr kernel_size, bool little_endian, - const char *boot_device, const char *kernel_cmdline, uint32_t epow_irq) { @@ -407,9 +406,6 @@ static void *spapr_create_fdt_skel(hwaddr initrd_base, _FDT((fdt_property(fdt, "qemu,boot-kernel-le", NULL, 0))); } } - if (boot_device) { - _FDT((fdt_property_string(fdt, "qemu,boot-device", boot_device))); - } if (boot_menu) { _FDT((fdt_property_cell(fdt, "qemu,boot-menu", boot_menu))); } @@ -721,6 +717,8 @@ static void spapr_finalize_fdt(sPAPREnvironment *spapr, hwaddr rtas_addr, hwaddr rtas_size) { + MachineState *machine = MACHINE(qdev_get_machine()); + const char *boot_device = machine->boot_order; int ret, i; size_t cb = 0; char *bootlist; @@ -780,6 +778,15 @@ static void spapr_finalize_fdt(sPAPREnvironment *spapr, ret = fdt_setprop_string(fdt, offset, "qemu,boot-list", bootlist); } + if (boot_device && strlen(boot_device)) { + int offset = fdt_path_offset(fdt, "/chosen"); + + if (offset < 0) { + exit(1); + } + fdt_setprop_string(fdt, offset, "qemu,boot-device", boot_device); + } + if (!spapr->has_graphics) { spapr_populate_chosen_stdout(fdt, spapr->vio_bus); } @@ -1370,6 +1377,13 @@ static SaveVMHandlers savevm_htab_handlers = { .load_state = htab_load, }; +static void spapr_boot_set(void *opaque, const char *boot_device, + Error **errp) +{ + MachineState *machine = MACHINE(qdev_get_machine()); + machine->boot_order = g_strdup(boot_device); +} + /* pSeries LPAR / sPAPR hardware init */ static void ppc_spapr_init(MachineState *machine) { @@ -1378,7 +1392,6 @@ static void ppc_spapr_init(MachineState *machine) const char *kernel_filename = machine->kernel_filename; const char *kernel_cmdline = machine->kernel_cmdline; const char *initrd_filename = machine->initrd_filename; - const char *boot_device = machine->boot_order; PowerPCCPU *cpu; CPUPPCState *env; PCIHostState *phb; @@ -1647,9 +1660,10 @@ static void ppc_spapr_init(MachineState *machine) /* Prepare the device tree */ spapr->fdt_skel = spapr_create_fdt_skel(initrd_base, initrd_size, kernel_size, kernel_le, - boot_device, kernel_cmdline, - spapr->epow_irq); + kernel_cmdline, spapr->epow_irq); assert(spapr->fdt_skel != NULL); + + qemu_register_boot_set(spapr_boot_set, spapr); } static int spapr_kvm_type(const char *vm_type) @@ -1779,7 +1793,7 @@ static void spapr_machine_class_init(ObjectClass *oc, void *data) mc->block_default_type = IF_SCSI; mc->max_cpus = MAX_CPUS; mc->no_parallel = 1; - mc->default_boot_order = NULL; + mc->default_boot_order = ""; mc->kvm_type = spapr_kvm_type; mc->has_dynamic_sysbus = true; From c6e765035bc5e0d73231c2c0fbd54620201d6655 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Mon, 23 Mar 2015 18:05:28 +0100 Subject: [PATCH 5/5] powerpc: fix -machine usb=no for newworld and pseries machines Capture the explicit setting of "usb=no" into a separate bool, and use it to skip the update of machine->usb in the board init function. Signed-off-by: Paolo Bonzini Signed-off-by: Alexander Graf --- hw/core/machine.c | 1 + hw/ppc/mac_newworld.c | 2 +- hw/ppc/spapr.c | 2 +- include/hw/boards.h | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/hw/core/machine.c b/hw/core/machine.c index cb1185ada4..25c45e6f9d 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -223,6 +223,7 @@ static void machine_set_usb(Object *obj, bool value, Error **errp) MachineState *ms = MACHINE(obj); ms->usb = value; + ms->usb_disabled = !value; } static char *machine_get_firmware(Object *obj, Error **errp) diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c index 624b4ab50b..7cc5106c79 100644 --- a/hw/ppc/mac_newworld.c +++ b/hw/ppc/mac_newworld.c @@ -371,7 +371,7 @@ static void ppc_core99_init(MachineState *machine) /* 970 gets a U3 bus */ pci_bus = pci_pmac_u3_init(pic, get_system_memory(), get_system_io()); machine_arch = ARCH_MAC99_U3; - machine->usb |= defaults_enabled(); + machine->usb |= defaults_enabled() && !machine->usb_disabled; } else { pci_bus = pci_pmac_init(pic, get_system_memory(), get_system_io()); machine_arch = ARCH_MAC99; diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index ca0a060b92..61ddc7994d 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -1580,7 +1580,7 @@ static void ppc_spapr_init(MachineState *machine) /* Graphics */ if (spapr_vga_init(phb->bus)) { spapr->has_graphics = true; - machine->usb |= defaults_enabled(); + machine->usb |= defaults_enabled() && !machine->usb_disabled; } if (machine->usb) { diff --git a/include/hw/boards.h b/include/hw/boards.h index 78838d13d4..1f118811a2 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -146,6 +146,7 @@ struct MachineState { bool dump_guest_core; bool mem_merge; bool usb; + bool usb_disabled; char *firmware; bool iommu; bool suppress_vmdesc;