Commit fec5fa0210a853635d3011fbce26f137206958c6

Authored by aurel32
1 parent 37e828b4

Reset I32_APIC_BASE on system RESET

Should be done according to spec.

Signed-off-by: Gleb Natapov <gleb@qumranet.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5128 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 4 additions and 2 deletions
hw/apic.c
@@ -869,6 +869,10 @@ static int apic_load(QEMUFile *f, void *opaque, int version_id) @@ -869,6 +869,10 @@ static int apic_load(QEMUFile *f, void *opaque, int version_id)
869 static void apic_reset(void *opaque) 869 static void apic_reset(void *opaque)
870 { 870 {
871 APICState *s = opaque; 871 APICState *s = opaque;
  872 +
  873 + s->apicbase = 0xfee00000 |
  874 + (s->id ? 0 : MSR_IA32_APICBASE_BSP) | MSR_IA32_APICBASE_ENABLE;
  875 +
872 apic_init_ipi(s); 876 apic_init_ipi(s);
873 877
874 if (s->id == 0) { 878 if (s->id == 0) {
@@ -906,8 +910,6 @@ int apic_init(CPUState *env) @@ -906,8 +910,6 @@ int apic_init(CPUState *env)
906 s->id = last_apic_id++; 910 s->id = last_apic_id++;
907 env->cpuid_apic_id = s->id; 911 env->cpuid_apic_id = s->id;
908 s->cpu_env = env; 912 s->cpu_env = env;
909 - s->apicbase = 0xfee00000 |  
910 - (s->id ? 0 : MSR_IA32_APICBASE_BSP) | MSR_IA32_APICBASE_ENABLE;  
911 913
912 apic_reset(s); 914 apic_reset(s);
913 915