From: Aurelien Jarno <aurelien@aurel32.net>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [5488] target-i386: Add Core Duo Definition
Date: Tue, 14 Oct 2008 19:20:54 +0000 [thread overview]
Message-ID: <E1KppRu-0000cp-EO@cvs.savannah.gnu.org> (raw)
Revision: 5488
http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5488
Author: aurel32
Date: 2008-10-14 19:20:52 +0000 (Tue, 14 Oct 2008)
Log Message:
-----------
target-i386: Add Core Duo Definition
This patch adds a CPU definition for the Core Duo CPU. I tried to
resemble the original as closely as possible and document what features
are missing still. This patch enables the use of a recent CPU definition
on 32 bit platforms.
It also fixes two issues that went along the line:
- invalid xlevel in core2duo spec
While looking though the CPUIDs again, I found that xlevel is actually 8.
- non-PSE36 support
The CoreDuo CPUID does not expose the PSE36 capability, but CPUID
0x80000008 is tied to 36 bits. This broke Windows XP installation for
me, so I just set it to 32 bits width when PSE36 is not available. The
original CPU also exposes 32 bit width in CPUID 0x80000008.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Modified Paths:
--------------
trunk/target-i386/helper.c
trunk/target-i386/op_helper.c
Modified: trunk/target-i386/helper.c
===================================================================
--- trunk/target-i386/helper.c 2008-10-14 18:14:47 UTC (rev 5487)
+++ trunk/target-i386/helper.c 2008-10-14 19:20:52 UTC (rev 5488)
@@ -183,7 +183,7 @@
.ext_features = CPUID_EXT_SSE3 | CPUID_EXT_MONITOR | CPUID_EXT_SSSE3,
.ext2_features = CPUID_EXT2_LM | CPUID_EXT2_SYSCALL | CPUID_EXT2_NX,
/* Missing: .ext3_features = CPUID_EXT3_LAHF_LM */
- .xlevel = 0x8000000A,
+ .xlevel = 0x80000008,
.model_id = "Intel(R) Core(TM)2 Duo CPU T7700 @ 2.40GHz",
},
#endif
@@ -199,6 +199,25 @@
.model_id = "QEMU Virtual CPU version " QEMU_VERSION,
},
{
+ .name = "coreduo",
+ .level = 10,
+ .family = 6,
+ .model = 14,
+ .stepping = 8,
+ /* The original CPU also implements these features:
+ CPUID_DTS, CPUID_ACPI, CPUID_SS, CPUID_HT,
+ CPUID_TM, CPUID_PBE */
+ .features = PPRO_FEATURES | CPUID_VME |
+ CPUID_MTRR | CPUID_CLFLUSH | CPUID_MCA,
+ /* The original CPU also implements these ext features:
+ CPUID_EXT_VMX, CPUID_EXT_EST, CPUID_EXT_TM2, CPUID_EXT_XTPR,
+ CPUID_EXT_PDCM */
+ .ext_features = CPUID_EXT_SSE3 | CPUID_EXT_MONITOR,
+ .ext2_features = CPUID_EXT2_NX,
+ .xlevel = 0x80000008,
+ .model_id = "Genuine Intel(R) CPU T2600 @ 2.16GHz",
+ },
+ {
.name = "486",
.level = 0,
.family = 4,
Modified: trunk/target-i386/op_helper.c
===================================================================
--- trunk/target-i386/op_helper.c 2008-10-14 18:14:47 UTC (rev 5487)
+++ trunk/target-i386/op_helper.c 2008-10-14 19:20:52 UTC (rev 5488)
@@ -2026,7 +2026,10 @@
#if defined(USE_KQEMU)
EAX = 0x00000020; /* 32 bits physical */
#else
- EAX = 0x00000024; /* 36 bits physical */
+ if (env->cpuid_features & CPUID_PSE36)
+ EAX = 0x00000024; /* 36 bits physical */
+ else
+ EAX = 0x00000020; /* 32 bits physical */
#endif
}
EBX = 0;
reply other threads:[~2008-10-14 19:20 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=E1KppRu-0000cp-EO@cvs.savannah.gnu.org \
--to=aurelien@aurel32.net \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).