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