All of lore.kernel.org
 help / color / mirror / Atom feed
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

             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.