From: "Giacomo A. Catenazzi" <cate@dplanet.ch>
To: linux-kernel@vger.kernel.org
Subject: Coppermine is a PIII or a Celeron? WINCHIP2/WINCHIP3D diff?
Date: Tue, 02 Jan 2001 20:46:26 +0100 [thread overview]
Message-ID: <3A523012.CF78B83D@dplanet.ch> (raw)
Hello!
When working in cpu autoconfiguration I found some problems:
I have to identify this processor:
Vendor: Intel
Family: 6
Model: 8
Is it a "Pentium III (Coppermine)" (setup.c:1709)
or a "Celeron (Coppermine)" (setup.c:1650) ?
What is the difference between MWINCHIP2 and MWINCHIP3D?
I don't find differences in the sources
giacomo
Version 3 of my cpu detection and configuration:
diff -uNr old.linux/CREDITS linux/CREDITS
--- old.linux/CREDITS Fri Dec 29 13:32:46 2000
+++ linux/CREDITS Fri Dec 29 13:43:02 2000
@@ -458,6 +458,12 @@
S: Fremont, California 94539
S: USA
+N: Giacomo Catenazzi
+E: cate@debian.org
+D: Random kernel hack and fixes
+D: Author of scripts/cpu_detect.sh
+S: Switzerland
+
N: Gordon Chaffee
E: chaffee@cs.berkeley.edu
W: http://bmrc.berkeley.edu/people/chaffee/
diff -uNr old.linux/Makefile linux/Makefile
--- old.linux/Makefile Fri Dec 29 11:26:55 2000
+++ linux/Makefile Fri Dec 29 13:32:10 2000
@@ -65,6 +65,16 @@
do-it-all: config
endif
+# Second stage configuration
+# Note that GNU make will read again this Makefile, so the CONFIG are
+# updated
+ifeq ($(CONFIG_CPU_CURRENT), y)
+CONFIGURATION = config2
+do-it-all: config2
+.config: config2
+ @echo "Rescanning the main Makefile"
+endif
+
#
# INSTALL_PATH specifies where to place the updated kernel and system
map
# images. Uncomment if you want to place them anywhere other than
root.
@@ -273,6 +283,14 @@
config: symlinks
$(CONFIG_SHELL) scripts/Configure arch/$(ARCH)/config.in
+
+config2:
+ echo "CONFIG_CPU_CURRENT=n" >> .config
+ echo `$(CONFIG_SHELL) $(TOPDIR)/scripts/cpu_detect.sh`=y >> .config
+ $(MAKE) oldconfig
+
+config2.test:
+ echo "CONFIG_CPU_CURRENT=$(CONFIG_CPU_CURRENT)"
include/config/MARKER: scripts/split-include include/linux/autoconf.h
scripts/split-include include/linux/autoconf.h include/config
diff -uNr old.linux/arch/i386/config.in linux/arch/i386/config.in
--- old.linux/arch/i386/config.in Fri Dec 29 11:26:55 2000
+++ linux/arch/i386/config.in Fri Dec 29 13:14:58 2000
@@ -26,7 +26,9 @@
mainmenu_option next_comment
comment 'Processor type and features'
-choice 'Processor family' \
+bool "Optimize for current CPU" CONFIG_CPU_CURRENT
+if [ "$CONFIG_CPU_CURRENT" != "y" ]; then
+ choice 'Processor family' \
"386 CONFIG_M386 \
486 CONFIG_M486 \
586/K5/5x86/6x86/6x86MX CONFIG_M586 \
@@ -41,6 +43,10 @@
Winchip-C6 CONFIG_MWINCHIPC6 \
Winchip-2 CONFIG_MWINCHIP2 \
Winchip-2A/Winchip-3 CONFIG_MWINCHIP3D" Pentium-Pro
+else
+ # First configuration stage: Allow all possible processors deps
+ define_bool CONFIG_M386 y
+fi
#
# Define implied options from the CPU selection here
#
diff -uNr old.linux/scripts/cpu_detect.sh linux/scripts/cpu_detect.sh
--- old.linux/scripts/cpu_detect.sh Thu Jan 1 01:00:00 1970
+++ linux/scripts/cpu_detect.sh Tue Jan 2 10:29:31 2001
@@ -0,0 +1,81 @@
+#! /bin/bash
+
+# Copyright (C) 2000-2001 Giacomo Catenazzi <cate@debian.org>
+# This is free software, see GNU General Public License 2 for details.
+
+# This script try to autodetect the CPU.
+# On SMP I assume that all processors are of the same type as the first
+
+# Version 3
+
+
+function check_cpu () {
+ if echo "$cpu_id" | egrep -e "$1" ; then
+ # CPU detected
+ echo $2
+ exit 0
+ fi
+}
+
+
+### i386 ###
+
+if [ "$ARCH" = "i386" ] ; then
+
+ if [ ! -r /proc/cpuinfo ] ; then
+ echo "cpu_detect: Could not read /proc/cpuinfo" 1>&2
+ echo CONFIG_M386
+ exit 2
+ fi
+
+ vendor=$(sed -n 's/^vendor_id.*: *\([-A-Za-z0-9_]*\).*$/\1/pg'
/proc/cpuinfo)
+ cpu_fam=$(sed -n 's/^cpu family.*: *\([0-9A-Za-z]*\).*$/\1/pg'
/proc/cpuinfo)
+ cpu_mod=$(sed -n 's/^model[^a-z]*: *\([0-9A-Za-z]*\).*$/\1/pg'
/proc/cpuinfo)
+ cpu_name=$(sed -n 's/^model name.*: *\(.*\)$/\1/pg' /proc/cpuinfo)
+ cpu_id="$vendor:$cpu_fam:$cpu_mod:$cpu_name"
+
+ #echo $cpu_id # for debug
+
+ check_cpu '^GenuineIntel:.*:.*:Pentium [67]' CONFIG_M586TSC
+ check_cpu '^GenuineIntel:.*:.*:Pentium MMX' CONFIG_M586MMX
+ check_cpu '^GenuineIntel:.*:.*:Pentium Pro' CONFIG_M686
+ check_cpu '^GenuineIntel:.*:.*:Pentium II\>' CONFIG_M686
+ check_cpu '^GenuineIntel:.*:.*:Celeron' CONFIG_M686
+ check_cpu '^GenuineIntel:.*:.*:Pentium III' CONFIG_M686FXSR
+ check_cpu '^GenuineIntel:.*:.*:Pentium IV' CONFIG_MPENTIUM4 #
???
+ check_cpu '^GenuineIntel:4:.*:' CONFIG_M486
+ check_cpu '^GenuineIntel:5:[01237]:' CONFIG_M586TSC
+ check_cpu '^GenuineIntel:5:[48]:' CONFIG_M586MMX
+ check_cpu '^GenuineIntel:6:[01356]:' CONFIG_M686
+ check_cpu '^GenuineIntel:6:[789]:' CONFIG_M686FXSR
+ check_cpu '^GenuineIntel:6:1[1]:' CONFIG_M686FXSR
+
+ check_cpu '^AuthenticAMD:.*:.*:K5' CONFIG_M586
+ check_cpu '^AuthenticAMD:.*:.*:K6' CONFIG_MK6
+ check_cpu '^AuthenticAMD:.*:.*:Athlon' CONFIG_MK7
+ check_cpu '^AuthenticAMD:4:.*:' CONFIG_M486
+ check_cpu '^AuthenticAMD:5:[0123]:' CONFIG_M586
+ check_cpu '^AuthenticAMD:5:[89]:' CONFIG_MK6
+ check_cpu '^AuthenticAMD:5:1[01]:' CONFIG_MK6
+ check_cpu '^AuthenticAMD:6:[0124]:' CONFIG_MK7
+
+ check_cpu '^UMC:4:[12]:' CONFIG_M486
+ check_cpu '^NexGenDriven:.*:.*:Nx586' CONFIG_M386
+ check_cpu '^NexGenDriven:5:0:' CONFIG_M386
+ check_cpu '^TransmetaCPU:.*:.*:' CONFIG_MCRUSOE
+ check_cpu '^GenuineTMx86:.*:.*:' CONFIG_MCRUSOE
+
+ check_cpu '^CentaurHauls:.*:.*:WinChip C6' CONFIG_MWINCHIPC6
+ check_cpu '^CentaurHauls:.*:.*:WinChip 2\>' CONFIG_MWINCHIP2
+ check_cpu '^CentaurHauls:.*:.*:WinChip 2[AB]' CONFIG_MWINCHIP2A
+ check_cpu '^CentaurHauls:.*:.*:WinChip [34]' CONFIG_MWINCHIP2A
+ check_cpu '^CentaurHauls:5:4:' CONFIG_MWINCHIPC6
+
+ # default value
+ check_cpu '^.*:.*:.*:' CONFIG_M386
+ echo "cpu_detect: CPU not detected. Using default" 2>&1
+ exit 1
+fi
+
+echo "cpu_detect: ARCH '$ARCH' not implemented" 2>&1
+exit 3
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
next reply other threads:[~2001-01-02 20:20 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-01-02 19:46 Giacomo A. Catenazzi [this message]
2001-01-02 20:04 ` Coppermine is a PIII or a Celeron? WINCHIP2/WINCHIP3D diff? H. Peter Anvin
2001-01-02 21:57 ` Erik Mouw
2001-01-02 23:44 ` davej
2001-01-03 0:14 ` J . A . Magallon
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=3A523012.CF78B83D@dplanet.ch \
--to=cate@dplanet.ch \
--cc=linux-kernel@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.