qemu-patch-raspberry4/hw
Igor Mammedov 62a48a2a57 cpu: Use CPUClass->parse_features() as convertor to global properties
Currently CPUClass->parse_features() is used to parse -cpu
features string and set properties on created CPU instances.

But considering that features specified by -cpu apply to every
created CPU instance, it doesn't make sense to parse the same
features string for every CPU created. It also makes every target
that cares about parsing features string explicitly call
CPUClass->parse_features() parser, which gets in a way if we
consider using generic device_add for CPU hotplug as device_add
has not a clue about CPU specific hooks.

Turns out we can use global properties mechanism to set
properties on every created CPU instance for a given type. That
way it's possible to convert CPU features into a set of global
properties for CPU type specified by -cpu cpu_model and common
Device.device_post_init() will apply them to CPU of given type
automatically regardless whether it's manually created CPU or CPU
created with help of device_add.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
2016-07-07 15:25:01 -03:00
..
9pfs 9p: synth: drop v9fs_ prefix 2016-07-01 14:38:54 +02:00
acpi opts-visitor: Favor new visit_free() function 2016-07-06 10:52:04 +02:00
alpha trace: split out trace events for hw/alpha/ directory 2016-06-20 17:22:17 +01:00
arm cpu: Use CPUClass->parse_features() as convertor to global properties 2016-07-07 15:25:01 -03:00
audio pci: Convert msi_init() to Error and fix callers to check it 2016-07-05 13:14:41 +03:00
block hw/block/m25p80: fix resource leak 2016-07-07 13:47:01 +01:00
bt bt: rewrite csrhci_write to avoid out-of-bounds writes 2016-05-29 09:11:11 +02:00
char * serial port fixes (Paolo) 2016-06-29 19:14:48 +01:00
core vl: Set errp to &error_abort on machine compat_props 2016-07-07 15:24:55 -03:00
cpu cpu: Abstract CPU core type 2016-06-17 16:33:48 +10:00
cris hw/char: QOM'ify etraxfs_ser.c 2016-05-29 09:11:10 +02:00
display aux: Rename aux.[ch] to auxbus.[ch] for the benefit of Windows 2016-07-07 13:47:01 +01:00
dma dma: Add Xilinx Zynq devcfg device model 2016-07-04 13:15:22 +01:00
gpio hw/gpio: QOM'ify zaurus.c 2016-06-14 15:59:13 +01:00
i2c ICH9 SMB: make TYPE_ICH9_SMB_DEVICE macro public 2016-06-29 14:03:46 +02:00
i386 range: Eliminate direct Range member access 2016-07-04 16:49:33 +03:00
ide pci: Convert msi_init() to Error and fix callers to check it 2016-07-05 13:14:41 +03:00
input pckbd: handle A20 IRQ as GPIO 2016-06-29 14:03:46 +02:00
intc armv7m_nvic: Use qemu_get_cpu(0) instead of current_cpu 2016-07-04 13:15:22 +01:00
ipack ipack: Update e-mail address 2016-05-18 15:04:27 +03:00
ipmi hw/ipmi: fix spelling 2016-06-07 18:02:48 +03:00
isa ich9: implement SCI_IRQ_SEL register 2016-06-29 14:03:48 +02:00
lm32 hw/char: QOM'ify milkymist-uart.c 2016-05-29 09:11:10 +02:00
m68k hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
mem nvdimm: support nvdimm label 2016-06-24 05:13:57 +03:00
microblaze m25p80: qdev-ify drive property 2016-07-04 13:15:22 +01:00
mips mips: use MIPSCPU instead of CPUMIPSState 2016-05-19 16:42:27 +02:00
misc i.MX: split the GPT timer implementation into per SOC definitions 2016-07-07 13:47:01 +01:00
moxie hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
net tap: vhost busy polling support 2016-07-07 14:29:04 +08:00
nvram trace: split out trace events for hw/nvram/ directory 2016-06-20 17:22:15 +01:00
openrisc hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
pci qapi: Improve use of qmp/types.h 2016-07-06 10:52:03 +02:00
pci-bridge pci: Convert msi_init() to Error and fix callers to check it 2016-07-05 13:14:41 +03:00
pci-host range: Eliminate direct Range member access 2016-07-04 16:49:33 +03:00
pcmcia hw: Clean up includes 2016-01-29 15:07:25 +00:00
ppc qapi: Add parameter to visit_end_* 2016-07-06 10:52:04 +02:00
s390x virtio-ccw: convert to ioeventfd callbacks 2016-06-24 08:47:35 +03:00
scsi tap: vhost busy polling support 2016-07-07 14:29:04 +08:00
sd ssi: change ssi_slave_init to be a realize ops 2016-07-04 13:15:22 +01:00
sh4 hw/sh4/sh_pci.c: Use ldl_le_p() and stl_le_p() 2016-06-28 15:09:32 +01:00
smbios ipmi: Add SMBIOS table entry 2016-06-24 05:13:57 +03:00
sparc trace: split out trace events for hw/sparc/ directory 2016-06-20 17:22:16 +01:00
sparc64 util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
ssi ast2400: add SPI flash slaves 2016-07-04 13:15:22 +01:00
timer i.MX: split the GPT timer implementation into per SOC definitions 2016-07-07 13:47:01 +01:00
tpm tpm: Fix write to file descriptor function 2016-04-13 19:52:34 +03:00
tricore hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
unicore32 hw: explicitly include qemu-common.h and cpu.h 2016-03-22 22:20:17 +01:00
usb pci: Convert msi_init() to Error and fix callers to check it 2016-07-05 13:14:41 +03:00
vfio pc, pci, virtio: new features, cleanups, fixes 2016-07-05 16:48:24 +01:00
virtio tap: vhost busy polling support 2016-07-07 14:29:04 +08:00
watchdog nmi: remove x86 specific nmi handling 2016-05-23 16:53:46 +02:00
xen xen: move xen_sysdev to xen_backend.c 2016-06-22 11:28:42 +01:00
xenpv xen: move xen_sysdev to xen_backend.c 2016-06-22 11:28:42 +01:00
xtensa replace muldiv64(a, b, c) by (uint64_t)a * b / c 2016-06-07 18:02:49 +03:00
Makefile.objs Add a base IPMI interface 2015-12-22 18:39:19 +02:00