qemu-e2k/hw
David Gibson 152ef803ce pseries: Rewrite CAS PVR compatibility logic
During boot, PAPR guests negotiate CPU model support with the
ibm,client-architecture-support mechanism.  The logic to implement this in
qemu is very convoluted.  This cleans it up to be cleaner, using the new
ppc_check_compat() call.

The new logic for choosing a compatibility mode is:
    1. Usually, use the most recent compatibility mode that is
            a) supported by the guest
            b) supported by the CPU
        and c) no later than the maximum allowed (if specified)
    2. If no suitable compatibility mode was found, the guest *does*
       support this CPU explicitly, and no maximum compatibility mode is
       specified, then use "raw" mode for the current CPU
    3. Otherwise, fail the boot.

This differs from the results of the old code: the old code preferred using
"raw" mode to a compatibility mode, whereas the new code prefers a
compatibility mode if available.  Using compatibility mode preferentially
means that we're more likely to be able to migrate the guest to a similar
but not identical host.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2017-01-31 10:10:14 +11:00
..
9pfs This pull request fixes a 2.9 regression and a long standing bug that can 2017-01-25 17:54:14 +00:00
acpi machine: Make possible_cpu_arch_ids() return const pointer 2017-01-23 21:25:37 -02:00
adc
alpha Move target-* CPU file into a target/ folder 2016-12-20 21:52:12 +01:00
arm * SCSI max_transfer support for scsi-generic (Eric) 2017-01-30 10:23:20 +00:00
audio es1370: wire up reset via DeviceClass 2017-01-11 09:19:03 +01:00
block pflash_cfi01: fix per-device sector length in CFI table 2017-01-27 15:20:22 +00:00
bt chardev: qom-ify 2017-01-27 18:08:00 +01:00
char * SCSI max_transfer support for scsi-generic (Eric) 2017-01-30 10:23:20 +00:00
core char: rename CharDriverState Chardev 2017-01-27 18:07:59 +01:00
cpu Introduce DEVICE_CATEGORY_CPU for CPU devices 2017-01-27 18:07:31 +01:00
cris
display char: rename CharDriverState Chardev 2017-01-27 18:07:59 +01:00
dma dma: omap: check dma channel data_type 2017-01-27 15:29:08 +00:00
gpio hw/gpio: QOM'ify mpc8xxx.c 2017-01-31 10:10:13 +11:00
i2c arm: Uniquely name imx25 I2C buses. 2017-01-20 11:15:06 +00:00
i386 icount: update instruction counter on apic patching 2017-01-27 18:07:30 +01:00
ide atapi: classify read_cd as conditionally returning data 2016-11-14 11:15:54 -05:00
input gtk,vnc: misc bugfixes. 2017-01-10 14:52:34 +00:00
intc * SCSI max_transfer support for scsi-generic (Eric) 2017-01-30 10:23:20 +00:00
ipack
ipmi ipmi: fix qemu crash while migrating with ipmi 2016-11-18 17:50:09 +02:00
isa char: rename CharDriverState Chardev 2017-01-27 18:07:59 +01:00
lm32 char: rename CharDriverState Chardev 2017-01-27 18:07:59 +01:00
m68k m68k: QOMify the MCF Fast Ethernet Controller device 2017-01-20 10:36:38 +08:00
mem pc: memhp: enable nvdimm device hotplug 2016-11-01 19:21:09 +02:00
microblaze clean-up: removed duplicate #includes 2016-10-28 18:17:24 +03:00
mips char: rename CharDriverState Chardev 2017-01-27 18:07:59 +01:00
misc char: rename CharDriverState Chardev 2017-01-27 18:07:59 +01:00
moxie
net arm: stellaris: make MII accesses complete immediately 2017-01-27 15:29:08 +00:00
nios2 nios2: Add Altera 10M50 GHRD emulation 2017-01-24 13:10:35 -08:00
nvram migration: extend VMStateInfo 2017-01-24 17:54:47 +00:00
openrisc
pci trivial patches for 2017-01-24 2017-01-25 10:42:26 +00:00
pci-bridge pxb: Restrict to x86 2017-01-31 10:10:14 +11:00
pci-host ppc: Make uninorth interrupt swizzling identical to Grackle 2016-11-23 12:00:48 +11:00
pcmcia
ppc pseries: Rewrite CAS PVR compatibility logic 2017-01-31 10:10:14 +11:00
s390x hw: Fix typos found by codespell 2017-01-24 23:26:52 +03:00
scsi hw/scsi: Fix debug message of cdb structure in scsi-generic 2017-01-27 18:07:31 +01:00
sd
sh4 cputlb: drop flush_global flag from tlb_flush 2017-01-13 14:24:37 +00:00
smbios stubs: move smbios stubs to hw/smbios 2017-01-16 17:52:35 +01:00
sparc fw_cfg: move FW_CFG_NB_CPUS out of fw_cfg_init1() 2016-11-16 12:09:58 -02:00
sparc64 target-sparc: fix up niagara machine 2017-01-18 22:03:44 +01:00
ssi aspeed/smc: handle dummy bytes when doing fast reads in command mode 2017-01-27 15:20:20 +00:00
timer replay: don't use rtc clock on loadvm phase 2017-01-27 18:07:30 +01:00
tpm clean-up: removed duplicate #includes 2016-10-28 18:17:24 +03:00
tricore
unicore32 clean-up: removed duplicate #includes 2016-10-28 18:17:24 +03:00
usb hw/ppc/spapr: Fix boot path of usb-host storage devices 2017-01-31 10:10:13 +11:00
vfio vfio: remove a duplicated word in comments 2017-01-24 23:26:53 +03:00
virtio trivial patches for 2017-01-24 2017-01-25 10:42:26 +00:00
watchdog watchdog: 6300esb: add exit function 2016-12-22 16:00:23 +01:00
xen xen: create qdev for each backend device 2016-11-22 10:29:39 -08:00
xenpv
xtensa target/xtensa: refactor CCOUNT/CCOMPARE 2017-01-15 13:01:55 -08:00
Makefile.objs acpi: filter based on CONFIG_ACPI_X86 rather than TARGET 2017-01-16 17:52:35 +01:00