]> Git Repo - qemu.git/commit
target/ppc: Delay initialization of LPCR_UPRT for secondary cpus
authorDavid Gibson <[email protected]>
Tue, 1 May 2018 06:08:50 +0000 (16:08 +1000)
committerDavid Gibson <[email protected]>
Fri, 4 May 2018 05:00:37 +0000 (15:00 +1000)
commitf00bed9521cee4d67c4937b51de692e0bcf9efef
treedb38b9c0f3d4a84144f655695fc3a1097d995e35
parent295b6c26aca97c5f6f6609f62d958af6af848454
target/ppc: Delay initialization of LPCR_UPRT for secondary cpus

In cpu_ppc_set_papr() the UPRT and GTSE bits of the LPCR default value are
initialized based on on ppc64_radix_guest().  Which seems reasonable,
except that ppc64_radix_guest() is based on spapr->patb_entry which is
only set up in spapr_machine_reset, called _after_ cpu_ppc_set_papr() for
boot cpus.  Well, and the fact that modifying the SPR default value for an
instance rather than a class is kind of yucky.

The initialization here is really only necessary or valid for
hotplugged cpus; the base cpu initialization already sets a value
that's good enough for the boot cpus until the guest uses an hcall to
configure it's preferred MMU mode.

So, move this initialization to the rtas_start_cpu() path, at which point
ppc64_radix_guest() will have a sensible value, to make sure secondary cpus
come up in an MMU mode matching the existing cpus.

Signed-off-by: David Gibson <[email protected]>
Reviewed-by: Cédric Le Goater <[email protected]>
Tested-by: Cédric Le Goater <[email protected]>
hw/ppc/spapr_rtas.c
target/ppc/translate_init.c
This page took 0.027201 seconds and 4 git commands to generate.