svn commit: r187118 - head/sys/i386/i386
Jung-uk Kim
jkim at FreeBSD.org
Mon Jan 12 14:01:51 PST 2009
Author: jkim
Date: Mon Jan 12 22:01:49 2009
New Revision: 187118
URL: http://svn.freebsd.org/changeset/base/187118
Log:
Add basic i386 support for VIA Nano processors.
Modified:
head/sys/i386/i386/i686_mem.c
head/sys/i386/i386/identcpu.c
head/sys/i386/i386/initcpu.c
Modified: head/sys/i386/i386/i686_mem.c
==============================================================================
--- head/sys/i386/i386/i686_mem.c Mon Jan 12 21:58:19 2009 (r187117)
+++ head/sys/i386/i386/i686_mem.c Mon Jan 12 22:01:49 2009 (r187118)
@@ -678,9 +678,17 @@ i686_mem_drvinit(void *unused)
return;
if ((cpu_id & 0xf00) != 0x600 && (cpu_id & 0xf00) != 0xf00)
return;
- if (cpu_vendor_id != CPU_VENDOR_INTEL &&
- cpu_vendor_id != CPU_VENDOR_AMD)
+ switch (cpu_vendor_id) {
+ case CPU_VENDOR_INTEL:
+ case CPU_VENDOR_AMD:
+ break;
+ case CPU_VENDOR_CENTAUR:
+ if (cpu_exthigh >= 0x80000008)
+ break;
+ /* FALLTHROUGH */
+ default:
return;
+ }
mem_range_softc.mr_op = &i686_mrops;
}
SYSINIT(i686memdev, SI_SUB_DRIVERS, SI_ORDER_FIRST, i686_mem_drvinit, NULL);
Modified: head/sys/i386/i386/identcpu.c
==============================================================================
--- head/sys/i386/i386/identcpu.c Mon Jan 12 21:58:19 2009 (r187117)
+++ head/sys/i386/i386/identcpu.c Mon Jan 12 22:01:49 2009 (r187118)
@@ -606,6 +606,9 @@ printcpuinfo(void)
case 0x6d0:
strcpy(cpu_model, "VIA C7 Esther");
break;
+ case 0x6f0:
+ strcpy(cpu_model, "VIA Nano");
+ break;
default:
strcpy(cpu_model, "VIA/IDT Unknown");
}
@@ -856,6 +859,9 @@ printcpuinfo(void)
);
}
+ if (cpu_vendor_id == CPU_VENDOR_CENTAUR)
+ print_via_padlock_info();
+
if ((cpu_feature & CPUID_HTT) &&
cpu_vendor_id == CPU_VENDOR_AMD)
cpu_feature &= ~CPUID_HTT;
@@ -879,6 +885,11 @@ printcpuinfo(void)
I386_CPU_MODEL(cpu_id) >= 0x3))
tsc_is_invariant = 1;
break;
+ case CPU_VENDOR_CENTAUR:
+ if (I386_CPU_FAMILY(cpu_id) == 0x6 &&
+ I386_CPU_MODEL(cpu_id) >= 0xf)
+ tsc_is_invariant = 1;
+ break;
}
if (tsc_is_invariant)
printf("\n TSC: P-state invariant");
@@ -915,8 +926,6 @@ printcpuinfo(void)
printf("\n CPU cache: write-through mode");
#endif
}
- if (cpu_vendor_id == CPU_VENDOR_CENTAUR)
- print_via_padlock_info();
/* Avoid ugly blank lines: only print newline when we have to. */
if (*cpu_vendor || cpu_id)
@@ -1568,6 +1577,7 @@ print_via_padlock_info(void)
return;
case 0x6a0:
case 0x6d0:
+ case 0x6f0:
break;
default:
return;
Modified: head/sys/i386/i386/initcpu.c
==============================================================================
--- head/sys/i386/i386/initcpu.c Mon Jan 12 21:58:19 2009 (r187117)
+++ head/sys/i386/i386/initcpu.c Mon Jan 12 22:01:49 2009 (r187118)
@@ -686,6 +686,7 @@ initializecpu(void)
/* fall through. */
case 0x6a0:
case 0x6d0:
+ case 0x6f0:
init_via();
break;
default:
More information about the svn-src-all
mailing list