qemu/include/hw/ppc
Suraj Jitindar Singh 9861bb3efd target/ppc: Add patb_entry to sPAPRMachineState
ISA v3.00 adds the idea of a partition table which is used to store the
address translation details for all partitions on the system. The partition
table consists of double word entries indexed by partition id where the second
double word contains the location of the process table in guest memory. The
process table is registered by the guest via a h-call.

We need somewhere to store the address of the process table so we add an entry
to the sPAPRMachineState struct called patb_entry to represent the second
doubleword of a single partition table entry corresponding to the current
guest. We need to store this value so we know if the guest is using radix or
hash translation and the location of the corresponding process table in guest
memory. Since we only have a single guest per qemu instance, we only need one
entry.

Since the partition table is technically a hypervisor resource we require that
access to it is abstracted by the virtual hypervisor through the get_patbe()
call. Currently the value of the entry is never set (and thus
defaults to 0 indicating hash), but it will be required to both implement
POWER9 kvm support and tcg radix support.

We also add this field to be migrated as part of the sPAPRMachineState as we
will need it on the receiving side as the guest will never tell us this
information again and we need it to perform translation.

Signed-off-by: Suraj Jitindar Singh <sjitindarsingh@gmail.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2017-03-03 11:30:59 +11:00
..
fdt.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
mac_dbdma.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
openpic.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
pnv_core.h ppc/pnv: add XSCOM handlers to PnvCore 2016-10-28 09:38:25 +11:00
pnv_lpc.h ppc/pnv: add a LPC controller 2016-10-28 09:38:25 +11:00
pnv_xscom.h ppc/pnv: add a 'xscom_core_base' field to PnvChipClass 2016-11-15 10:08:43 +11:00
pnv.h ppc/pnv: add a 'xscom_core_base' field to PnvChipClass 2016-11-15 10:08:43 +11:00
ppc4xx.h Remove unused function declarations 2016-09-15 15:32:22 +03:00
ppc_e500.h intc/openpic: Build openpic only once 2013-07-09 21:33:02 +02:00
ppc.h Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
spapr_cpu_core.h spapr: move spapr_core_[foo]plug() callbacks close to machine code in spapr.c 2017-02-22 11:28:27 +11:00
spapr_drc.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
spapr_ovec.h spapr: migration support for CAS-negotiated option vectors 2016-11-23 12:00:48 +11:00
spapr_rtas.h tests: add RTAS command in the protocol 2016-09-23 10:29:40 +10:00
spapr_vio.h ppc/xics: use the QOM interface to get irqs 2017-03-01 11:23:39 +11:00
spapr.h target/ppc: Add patb_entry to sPAPRMachineState 2017-03-03 11:30:59 +11:00
xics.h ppc/xics: move InterruptStatsProvider to the sPAPR machine 2017-03-01 11:23:40 +11:00