[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[qvm86-devel] [PATCH] Fix x86_64 system emulation with qvm86 patchset
From: |
Gwenole Beauchesne |
Subject: |
[qvm86-devel] [PATCH] Fix x86_64 system emulation with qvm86 patchset |
Date: |
Thu, 2 Jun 2005 23:36:20 +0200 (CEST) |
Hi,
If people were using the qvm86 patchset, the following patch fixes x86-64
system emulation mode. i.e. avoid removal of necessary cpuid flags used in
long mode detection (PGE, PSE).
I admit I haven't tested with qvm86 module since I don't have a 32-bit
system at home.
2005-06-02 Gwenole Beauchesne <address@hidden>
* target-i386/helper2.c (cpu_x86_init): Page Size Extension and
Global Paging Extension are necessary for x86-64 system emulation.
--- qemu-0.7.0/target-i386/helper2.c.qvm86-cpu-features-fix 2005-06-02
21:41:51.000000000 +0200
+++ qemu-0.7.0/target-i386/helper2.c 2005-06-02 22:33:55.000000000 +0200
@@ -104,11 +104,15 @@ CPUX86State *cpu_x86_init(void)
#endif
env->cpuid_level = 2;
env->cpuid_version = (family << 8) | (model << 4) | stepping;
- env->cpuid_features = (CPUID_FP87 | CPUID_DE | /*CPUID_PSE |*/
+ env->cpuid_features = (CPUID_FP87 | CPUID_DE | CPUID_PSE |
CPUID_TSC | CPUID_MSR | CPUID_MCE |
- CPUID_CX8 | /* CPUID_PGE | */ CPUID_CMOV);
+ CPUID_CX8 | CPUID_PGE | CPUID_CMOV);
env->cpuid_ext_features = 0;
- env->cpuid_features |= CPUID_FXSR | CPUID_MMX | CPUID_SSE | CPUID_SSE2
| CPUID_PAE /*| CPUID_SEP*/;
+ env->cpuid_features |= CPUID_FXSR | CPUID_MMX | CPUID_SSE | CPUID_SSE2
| CPUID_PAE | CPUID_SEP;
+#if defined USE_KQEMU && defined TARGET_I386
+ /* XXX: disable these for now */
+ env->cpuid_features &= ~(CPUID_PSE | CPUID_PGE | CPUID_SEP);
+#endif
env->cpuid_xlevel = 0;
{
const char *model_id = "QEMU Virtual CPU version " QEMU_VERSION;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [qvm86-devel] [PATCH] Fix x86_64 system emulation with qvm86 patchset,
Gwenole Beauchesne <=