From: "J.A. Magallon" <jamagallon@able.es>
To: Lista Linux-Kernel <linux-kernel@vger.kernel.org>
Subject: [PATCH] x86 cpu selection (first hack)
Date: Fri, 31 May 2002 00:50:15 +0200 [thread overview]
Message-ID: <20020530225015.GA1829@werewolf.able.es> (raw)
Hi all.
After reading all the posts in the lista about this and thinking a bit,
here is the first attempt (just a try of the general aspect) of a new
cpu selection scheme. This post is mainly to see if I really understood
the scenario.
There were two ways to do this:
- Define a min/max cpu selecion. Both are a kbuild's 'choice'.
Problems: it generates a ton of symbols of the kind of CPU_MIN_INTEL_PENTIUM
or CPU_MAX_AMD_ATHLON. And you have to limit the 'max' choice to be
bigger than the first. This brings two problems: limiting the choices
on a 'choice' based on one other, and defining an 'order' in processors,
even between architectures.
- Make all and every cpu a checkbox, so you just say 'I want my kernel to
support this and that CPU'. This kills the problem of the ordering, and
adds one other advantage: you do not need to support intermediate CPUs,
like 'i want my kernel to run ok on pentium-mmx (my firewall) and on
p4 (my desktop). I will never run it on a PII, so do not include the
hacks for PII'. And of course, 'If I run my p-mmx capable on a friend's
PII and it eats his drive and burns his TV set, it is only _my_ fault'.
Patch follows, comments are welcome. Next step is to begin to order the logic,
but I wanted to ask first about this.
diff -ruN linux-2.4.19-pre9/arch/i386/config.in linux-2.4.19-pre9-cpu/arch/i386/config.in
--- linux-2.4.19-pre9/arch/i386/config.in 2002-05-29 01:18:23.000000000 +0200
+++ linux-2.4.19-pre9-cpu/arch/i386/config.in 2002-05-30 23:38:06.000000000 +0200
@@ -26,6 +26,12 @@
mainmenu_option next_comment
comment 'Processor type and features'
+bool 'New CPU selection scheme' CONFIG_CPU_SELECTION_NEW
+
+# CPUConfig
+if [ "$CONFIG_CPU_SELECTION_NEW" = "y" ]; then
+ source arch/i386/CPUConfig.in
+else
choice 'Processor family' \
"386 CONFIG_M386 \
486 CONFIG_M486 \
@@ -163,6 +169,7 @@
define_bool CONFIG_X86_USE_PPRO_CHECKSUM y
define_bool CONFIG_X86_OOSTORE y
fi
+fi
bool 'Machine Check Exception' CONFIG_X86_MCE
diff -ruN linux-2.4.19-pre9/arch/i386/CPUConfig.in linux-2.4.19-pre9-cpu/arch/i386/CPUConfig.in
--- linux-2.4.19-pre9/arch/i386/CPUConfig.in 1970-01-01 01:00:00.000000000 +0100
+++ linux-2.4.19-pre9-cpu/arch/i386/CPUConfig.in 2002-05-31 00:28:31.000000000 +0200
@@ -0,0 +1,40 @@
+mainmenu_option next_comment
+comment 'CPU selection'
+
+comment 'Generic x86 CPUs'
+bool 'Generic support' CONFIG_VENDOR_GENERIC
+if [ "$CONFIG_VENDOR_GENERIC" = "y" ]; then
+
+ bool '386' CONFIG_CPU_GENERIC_386
+ bool '486' CONFIG_CPU_GENERIC_486
+ bool '586' CONFIG_CPU_GENERIC_586
+ bool '686' CONFIG_CPU_GENERIC_686
+
+else
+
+comment 'Intel CPUs'
+bool 'Intel support' CONFIG_VENDOR_INTEL
+if [ "$CONFIG_VENDOR_INTEL" = "y" ]; then
+ bool '386' CONFIG_CPU_INTEL_386
+ bool '486' CONFIG_CPU_INTEL_486
+ bool 'Pentium' CONFIG_CPU_INTEL_PENTIUM
+ bool 'PentiumMMX' CONFIG_CPU_INTEL_PENTIUMMMX
+ bool 'PentiumPro' CONFIG_CPU_INTEL_PENTIUMPRO
+ bool 'PentiumII/Celeron' CONFIG_CPU_INTEL_PENTIUM2
+ bool 'PentiumIII/Celeron(Coppermine)' CONFIG_CPU_INTEL_PENTIUM3
+ bool 'Pentium4' CONFIG_CPU_INTEL_PENTIUM4
+fi
+comment 'AMD CPUs'
+bool 'AMD support' CONFIG_VENDOR_AMD
+if [ "$CONFIG_VENDOR_AMD" = "y" ]; then
+ bool '386' CONFIG_CPU_AMD_386
+ bool '486' CONFIG_CPU_AMD_486
+ bool 'K5' CONFIG_CPU_AMD_K5
+ bool 'K6/K6II/K6III' CONFIG_CPU_AMD_K6
+ bool 'K7' CONFIG_CPU_AMD_K7
+ bool 'Athlon/Duron' CONFIG_CPU_AMD_ATHLON
+fi
+
+fi
+
+endmenu
--
J.A. Magallon # Let the source be with you...
mailto:jamagallon@able.es
Mandrake Linux release 8.3 (Cooker) for i586
Linux werewolf 2.4.19-pre9-jam1 #1 SMP jue may 30 00:48:49 CEST 2002 i686
next reply other threads:[~2002-05-30 22:50 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-05-30 22:50 J.A. Magallon [this message]
2002-05-30 23:20 ` [PATCH] x86 cpu selection (first hack) Jeff Garzik
2002-05-30 23:42 ` Dave Jones
2002-05-31 0:36 ` J.A. Magallon
2002-05-31 0:05 ` Alan Cox
2002-05-30 23:15 ` J.A. Magallon
-- strict thread matches above, loose matches on Subject: below --
2002-05-31 0:07 Leif Sawyer
2002-05-31 0:12 ` Jeff Garzik
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=20020530225015.GA1829@werewolf.able.es \
--to=jamagallon@able.es \
--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.