Skip to content

Commit

Permalink
PPC: KVM: Fix g3beige and mac99 when HV is loaded
Browse files Browse the repository at this point in the history
On PPC we have 2 different styles of KVM: PR and HV. HV can only virtualize
sPAPR guests while PR can virtualize everything that's reasonably close to
the host hardware platform.

As long as only one kernel module (PR or HV) is loaded, the "default" kvm type
is the module that's loaded. So if your hardware only supports PR mode you can
easily spawn a Mac VM.

However, if both HV and PR are loaded we default to HV mode. And in that case
the Mac machines have to explicitly ask for PR mode to get a working VM.

Fix this up by explicitly having the Mac machines ask for PR style KVM. This
fixes bootup of Mac VMs on systems where bot HV and PR kvm modules are loaded
for me.

Signed-off-by: Alexander Graf <agraf@suse.de>
  • Loading branch information
agraf committed Sep 8, 2014
1 parent 30eaca3 commit 277c7a4
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
7 changes: 7 additions & 0 deletions hw/ppc/mac_newworld.c
Expand Up @@ -477,12 +477,19 @@ static void ppc_core99_init(MachineState *machine)
qemu_register_boot_set(fw_cfg_boot_set, fw_cfg);
}

static int core99_kvm_type(const char *arg)
{
/* Always force PR KVM */
return 2;
}

static QEMUMachine core99_machine = {
.name = "mac99",
.desc = "Mac99 based PowerMAC",
.init = ppc_core99_init,
.max_cpus = MAX_CPUS,
.default_boot_order = "cd",
.kvm_type = core99_kvm_type,
};

static void core99_machine_init(void)
Expand Down
7 changes: 7 additions & 0 deletions hw/ppc/mac_oldworld.c
Expand Up @@ -346,6 +346,12 @@ static void ppc_heathrow_init(MachineState *machine)
qemu_register_boot_set(fw_cfg_boot_set, fw_cfg);
}

static int heathrow_kvm_type(const char *arg)
{
/* Always force PR KVM */
return 2;
}

static QEMUMachine heathrow_machine = {
.name = "g3beige",
.desc = "Heathrow based PowerMAC",
Expand All @@ -355,6 +361,7 @@ static QEMUMachine heathrow_machine = {
.is_default = 1,
#endif
.default_boot_order = "cd", /* TOFIX "cad" when Mac floppy is implemented */
.kvm_type = heathrow_kvm_type,
};

static void heathrow_machine_init(void)
Expand Down

0 comments on commit 277c7a4

Please sign in to comment.