Commit 538f368612565f7c7672145c31e87f1d3d02d545
Committed by
Anthony Liguori
1 parent
ef768138
QEMU KVM: i386: Fix the cpu reset state
As per the IA32 processor manual, the accessed bit is set to 1 in the processor state after reset. qemu pc cpu_reset code was missing this accessed bit setting. Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Showing
1 changed file
with
12 additions
and
6 deletions
target-i386/helper.c
| @@ -496,17 +496,23 @@ void cpu_reset(CPUX86State *env) | @@ -496,17 +496,23 @@ void cpu_reset(CPUX86State *env) | ||
| 496 | env->tr.flags = DESC_P_MASK | (11 << DESC_TYPE_SHIFT); | 496 | env->tr.flags = DESC_P_MASK | (11 << DESC_TYPE_SHIFT); |
| 497 | 497 | ||
| 498 | cpu_x86_load_seg_cache(env, R_CS, 0xf000, 0xffff0000, 0xffff, | 498 | cpu_x86_load_seg_cache(env, R_CS, 0xf000, 0xffff0000, 0xffff, |
| 499 | - DESC_P_MASK | DESC_S_MASK | DESC_CS_MASK | DESC_R_MASK); | 499 | + DESC_P_MASK | DESC_S_MASK | DESC_CS_MASK | |
| 500 | + DESC_R_MASK | DESC_A_MASK); | ||
| 500 | cpu_x86_load_seg_cache(env, R_DS, 0, 0, 0xffff, | 501 | cpu_x86_load_seg_cache(env, R_DS, 0, 0, 0xffff, |
| 501 | - DESC_P_MASK | DESC_S_MASK | DESC_W_MASK); | 502 | + DESC_P_MASK | DESC_S_MASK | DESC_W_MASK | |
| 503 | + DESC_A_MASK); | ||
| 502 | cpu_x86_load_seg_cache(env, R_ES, 0, 0, 0xffff, | 504 | cpu_x86_load_seg_cache(env, R_ES, 0, 0, 0xffff, |
| 503 | - DESC_P_MASK | DESC_S_MASK | DESC_W_MASK); | 505 | + DESC_P_MASK | DESC_S_MASK | DESC_W_MASK | |
| 506 | + DESC_A_MASK); | ||
| 504 | cpu_x86_load_seg_cache(env, R_SS, 0, 0, 0xffff, | 507 | cpu_x86_load_seg_cache(env, R_SS, 0, 0, 0xffff, |
| 505 | - DESC_P_MASK | DESC_S_MASK | DESC_W_MASK); | 508 | + DESC_P_MASK | DESC_S_MASK | DESC_W_MASK | |
| 509 | + DESC_A_MASK); | ||
| 506 | cpu_x86_load_seg_cache(env, R_FS, 0, 0, 0xffff, | 510 | cpu_x86_load_seg_cache(env, R_FS, 0, 0, 0xffff, |
| 507 | - DESC_P_MASK | DESC_S_MASK | DESC_W_MASK); | 511 | + DESC_P_MASK | DESC_S_MASK | DESC_W_MASK | |
| 512 | + DESC_A_MASK); | ||
| 508 | cpu_x86_load_seg_cache(env, R_GS, 0, 0, 0xffff, | 513 | cpu_x86_load_seg_cache(env, R_GS, 0, 0, 0xffff, |
| 509 | - DESC_P_MASK | DESC_S_MASK | DESC_W_MASK); | 514 | + DESC_P_MASK | DESC_S_MASK | DESC_W_MASK | |
| 515 | + DESC_A_MASK); | ||
| 510 | 516 | ||
| 511 | env->eip = 0xfff0; | 517 | env->eip = 0xfff0; |
| 512 | env->regs[R_EDX] = env->cpuid_version; | 518 | env->regs[R_EDX] = env->cpuid_version; |