qemu/hw/ppc
Alexey Kardashevskiy 0ce470cd4c target-ppc: add PowerPCCPU::cpu_dt_id
Normally CPUState::cpu_index is used to pick the right CPU for various
operations. However default consecutive numbering does not always work
for POWERPC.

These indexes are reflected in /proc/device-tree/cpus/PowerPC,POWER7@XX
and used to call KVM VCPU's ioctls. In order to achieve this,
kvmppc_fixup_cpu() was introduced. Roughly speaking, it multiplies
cpu_index by the number of threads per core.

This approach has disadvantages such as:
1. NUMA configuration stays broken after the fixup;
2. CPU-targeted commands from the QEMU Monitor do not work properly as
CPU indexes have been fixed and there is no clear way for the user to
know what the new CPU indexes are.

This introduces a @cpu_dt_id field in the CPUPPCState struct which
is initialized from @cpu_index by default and can be fixed later
to meet the device tree requirements.

This adds an API to handle @cpu_dt_id.

This removes kvmppc_fixup_cpu() as it is not more needed, @cpu_dt_id
is calculated in ppc_cpu_realize().

This will be used later in machine code.

Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
Acked-by: Mike Day <ncmike@ncultra.org>
Signed-off-by: Alexander Graf <agraf@suse.de>
2014-03-05 03:07:03 +01:00
..
e500-ccsr.h ppc: do not use ../ in include files 2013-03-01 13:57:33 +01:00
e500.c device_tree: s/qemu_devtree/qemu_fdt globally 2013-12-20 01:58:11 +01:00
e500.h ppc: Don't duplicate QEMUMachineInitArgs in PPCE500Params 2013-08-21 23:22:22 +03:00
e500plat.c device_tree: s/qemu_devtree/qemu_fdt globally 2013-12-20 01:58:11 +01:00
mac_newworld.c hw: Clean up bogus default boot order 2013-08-28 10:16:47 +03:00
mac_oldworld.c hw: Clean up bogus default boot order 2013-08-28 10:16:47 +03:00
mac.h hw/ppc/mac.h: remove unused BIOS_FILENAME definition 2013-12-02 21:18:18 +04:00
Makefile.objs ppcemb-softmmu: Drop Mac and e500 emulation 2014-02-13 17:47:43 +01:00
mpc8544_guts.c cpu: Replace cpu_single_env with CPUState current_cpu 2013-07-09 21:20:28 +02:00
mpc8544ds.c device_tree: s/qemu_devtree/qemu_fdt globally 2013-12-20 01:58:11 +01:00
ppc4xx_devs.c hw/ppc: Remove unused defines 2014-02-01 13:47:35 +04:00
ppc4xx_pci.c pci-host: Consistently set cannot_instantiate_with_device_add_yet 2013-12-23 00:27:23 +01:00
ppc405_boards.c pc,pci,virtio fixes and cleanups 2013-09-03 12:31:07 -05:00
ppc405_uc.c exec: Make stb_phys input an AddressSpace 2014-02-11 22:57:38 +10:00
ppc405.h hw: move private headers to hw/ subdirectories. 2013-04-08 18:13:16 +02:00
ppc440_bamboo.c device_tree: s/qemu_devtree/qemu_fdt globally 2013-12-20 01:58:11 +01:00
ppc_booke.c misc: Replace 'struct QEMUTimer' by 'QEMUTimer' 2013-12-02 21:03:39 +04:00
ppc.c target-ppc: add PowerPCCPU::cpu_dt_id 2014-03-05 03:07:03 +01:00
ppce500_spin.c ppce500_spin: QOM cast cleanup 2013-07-29 21:07:00 +02:00
prep.c prep: Kill get_system_io() usage 2014-02-09 15:49:00 +01:00
spapr_events.c spapr-rtas: replace return code constants with macros 2013-12-20 01:57:59 +01:00
spapr_hcall.c target-ppc: Change the hpte store API 2014-03-05 03:07:02 +01:00
spapr_iommu.c target-ppc: Introduce hypervisor call H_GET_TCE 2014-03-05 03:07:03 +01:00
spapr_pci.c PPC: sPAPR: Only use getpagesize() when we run with kvm 2014-03-05 03:07:01 +01:00
spapr_rtas.c device_tree: s/qemu_devtree/qemu_fdt globally 2013-12-20 01:58:11 +01:00
spapr_vio.c sysbus: Set cannot_instantiate_with_device_add_yet 2013-12-23 00:27:22 +01:00
spapr.c target-ppc: Fix page table lookup with kvm enabled 2014-03-05 03:07:02 +01:00
virtex_ml507.c virtex_ml507: Add support for loading initrd images 2014-03-05 03:06:45 +01:00