target-i386: move cpu halted decision into x86_cpu_reset
authorIgor Mammedov <imammedo@redhat.com>
Mon, 23 Jul 2012 13:22:27 +0000 (15:22 +0200)
committerAnthony Liguori <aliguori@us.ibm.com>
Wed, 1 Aug 2012 13:45:06 +0000 (08:45 -0500)
commitdd673288a8ff73ad77fcc1c255486d2466a772e1
tree57efd58332d97309c098f7862c44bb947aa73d98
parentfb5b0c6d5cea2d05a5e4e81390a4b6c4c70c6668
target-i386: move cpu halted decision into x86_cpu_reset

MP initialization protocol differs between cpu families, and for P6 and
onward models it is up to CPU to decide if it will be BSP using this
protocol, so try to model this. However there is no point in implementing
MP initialization protocol in qemu. Thus first CPU is always marked as BSP.

This patch:
 - moves decision to designate BSP from board into cpu, making cpu
self-sufficient in this regard. Later it will allow to cleanup hw/pc.c
and remove cpu_reset and wrappers from there.
 - stores flag that CPU is BSP in IA32_APIC_BASE to model behavior
described in Inted SDM vol 3a part 1 chapter 8.4.1
 - uses MSR_IA32_APICBASE_BSP flag in apic_base for checking if cpu is BSP

patch is based on Jan Kiszka's proposal:
    http://thread.gmane.org/gmane.comp.emulators.qemu/100806

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
hw/apic.h
hw/apic_common.c
hw/pc.c
target-i386/cpu.c
target-i386/helper.c
target-i386/kvm.c