Moving code related to CPU creation and initialization internal parts
from board level into apic and cpu objects will allow X86CPU to better
model QOM object life-cycle.
It will allow to create X86CPU as any other object by creating it with
object_new() then setting properties and then calling x86_cpu_realize()
to make it running. Later x86_cpu_realize() should become realize property.
1 pc: Enable MSI support at APIC level
http://thread.gmane.org/gmane.comp.emulators.kvm.devel/91186
included here to prevent confilict since qom-next doesn't have it
but patches 4, 5 are depending on it. I guess it would be best way to
avoid confilicts, correct me if I'm wrong.
2 target-i386: move cpu halted decision into x86_cpu_reset
3 target-i386: add cpu-model property to x86_cpu
4 pc: move apic_mapped initialization into common apic init code
5 target-i386: make initialize CPU in QOM way
6 target-i386: move reset callback to cpu.c
git tree for testing:
https://github.com/imammedo/qemu/tree/x86-cpu-realize-v2
Compile & Run tested:
target-i386: tcg and kvm mode
i386-linux-user: running of /bin/ls and /usr/bin/make on qemu tree