aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386
diff options
context:
space:
mode:
authortakada <takada@mbf.nifty.com>2007-02-13 07:26:24 -0500
committerAndi Kleen <andi@basil.nowhere.org>2007-02-13 07:26:24 -0500
commit2632f01a66d75f4ad59653a7efa506c6ea6845d0 (patch)
tree11ffb9f112504da7f02df80af097f1df7f7668b1 /arch/i386
parent3101673b659b916c965271c7f7c9b99cb353c01c (diff)
[PATCH] i386: support Classic MediaGXm
I hope to support "classic" MediaGXm in kernel. The DIR1 register of MediaGXm( or Geode) shows the following values for identify CPU. For example, My MediaGXm shows 0x42. We can read National Semiconductor's datasheet without any NDAs. http://www.national.com/pf/GX/GXLV.html from datasheets: DIR1 0x30 - 0x33 GXm rev. 1.0 - 2.3 0x34 - 0x4f GXm rev. 2.4 - 3.x 0x5x GXm rev. 5.0 - 5.4 0x6x GXLV 0x7x (unknow) 0x8x Gx1 In nsc driver of X, accept 0x30 through 0x82. What will 0x7x mean? Cc: Jordan Crouse <jordan.crouse@amd.com> Cc: Andi Kleen <ak@suse.de> Cc: Alan Cox <alan@lxorguk.ukuu.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'arch/i386')
-rw-r--r--arch/i386/kernel/cpu/cyrix.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/arch/i386/kernel/cpu/cyrix.c b/arch/i386/kernel/cpu/cyrix.c
index c0c3b59de32c..69b263f5632a 100644
--- a/arch/i386/kernel/cpu/cyrix.c
+++ b/arch/i386/kernel/cpu/cyrix.c
@@ -285,10 +285,15 @@ static void __cpuinit init_cyrix(struct cpuinfo_x86 *c)
285 /* GXm supports extended cpuid levels 'ala' AMD */ 285 /* GXm supports extended cpuid levels 'ala' AMD */
286 if (c->cpuid_level == 2) { 286 if (c->cpuid_level == 2) {
287 /* Enable cxMMX extensions (GX1 Datasheet 54) */ 287 /* Enable cxMMX extensions (GX1 Datasheet 54) */
288 setCx86(CX86_CCR7, getCx86(CX86_CCR7)|1); 288 setCx86(CX86_CCR7, getCx86(CX86_CCR7) | 1);
289 289
290 /* GXlv/GXm/GX1 */ 290 /*
291 if((dir1 >= 0x50 && dir1 <= 0x54) || dir1 >= 0x63) 291 * GXm : 0x30 ... 0x5f GXm datasheet 51
292 * GXlv: 0x6x GXlv datasheet 54
293 * ? : 0x7x
294 * GX1 : 0x8x GX1 datasheet 56
295 */
296 if((0x30 <= dir1 && dir1 <= 0x6f) || (0x80 <=dir1 && dir1 <= 0x8f))
292 geode_configure(); 297 geode_configure();
293 get_model_name(c); /* get CPU marketing name */ 298 get_model_name(c); /* get CPU marketing name */
294 return; 299 return;