Commit bc196a98 authored by Robert Love's avatar Robert Love Committed by Linus Torvalds

[PATCH] add explicit Pentium II support

This separates the "PPro/Celeron/Pentium-II" compile option into "PPro"
and "Pentium-II/Celeron" options.

This allows us to explicitly support the Pentium II and Celeron,
specifically adding the `-march' option for the chip and enabling the
unaligned copy optimizations.  PPro support remains unchanged.

This patch is by Luuk van der Duim with some changes by me (primarily to
also support the pre-Coppermine Celeron chips, since those use Pentium
II cores).  This patch has been in 2.5-mm for awhile and Andrew ack'ed
this submission.
parent 7846fcff
...@@ -117,9 +117,9 @@ config M386 ...@@ -117,9 +117,9 @@ config M386
(time stamp counter) register. (time stamp counter) register.
- "Pentium-Classic" for the Intel Pentium. - "Pentium-Classic" for the Intel Pentium.
- "Pentium-MMX" for the Intel Pentium MMX. - "Pentium-MMX" for the Intel Pentium MMX.
- "Pentium-Pro" for the Intel Pentium Pro/Celeron/Pentium II. - "Pentium-Pro" for the Intel Pentium Pro.
- "Pentium-III" for the Intel Pentium III - "Pentium-II" for the Intel Pentium II or pre-Coppermine Celeron.
and Celerons based on the Coppermine core. - "Pentium-III" for the Intel Pentium III or Coppermine Celeron.
- "Pentium-4" for the Intel Pentium 4. - "Pentium-4" for the Intel Pentium 4.
- "K6" for the AMD K6, K6-II and K6-III (aka K6-3D). - "K6" for the AMD K6, K6-II and K6-III (aka K6-3D).
- "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird). - "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird).
...@@ -159,18 +159,28 @@ config M586MMX ...@@ -159,18 +159,28 @@ config M586MMX
extended instructions. extended instructions.
config M686 config M686
bool "Pentium-Pro/Celeron/Pentium-II" bool "Pentium-Pro"
help help
Select this for a Pro/Celeron/Pentium II. This enables the use of Select this for Intel Pentium Pro chips. This enables the use of
Pentium Pro extended instructions, and disables the init-time guard Pentium Pro extended instructions, and disables the init-time guard
against the f00f bug found in earlier Pentiums. against the f00f bug found in earlier Pentiums.
config MPENTIUMII
bool "Pentium-II/Celeron(pre-Coppermine)"
help
Select this for Intel chips based on the Pentium-II and
pre-Coppermine Celeron core. This option enables an unaligned
copy optimization, compiles the kernel with optimization flags
tailored for the chip, and applies any applicable Pentium Pro
optimizations.
config MPENTIUMIII config MPENTIUMIII
bool "Pentium-III/Celeron(Coppermine)" bool "Pentium-III/Celeron(Coppermine)"
help help
Select this for Intel chips based on the Pentium-III and Select this for Intel chips based on the Pentium-III and
Celeron-Coppermine core. Enables use of some extended prefetch Celeron-Coppermine core. This option enables use of some
instructions, in addition to the Pentium II extensions. extended prefetch instructions in addition to the Pentium II
extensions.
config MPENTIUM4 config MPENTIUM4
bool "Pentium-4" bool "Pentium-4"
...@@ -258,7 +268,7 @@ config X86_XADD ...@@ -258,7 +268,7 @@ config X86_XADD
config X86_L1_CACHE_SHIFT config X86_L1_CACHE_SHIFT
int int
default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MCYRIXIII || MK6 || MPENTIUMIII || M686 || M586MMX || M586TSC || M586 default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586
default "4" if MELAN || M486 || M386 default "4" if MELAN || M486 || M386
default "6" if MK7 || MK8 default "6" if MK7 || MK8
default "7" if MPENTIUM4 default "7" if MPENTIUM4
...@@ -310,22 +320,22 @@ config X86_ALIGNMENT_16 ...@@ -310,22 +320,22 @@ config X86_ALIGNMENT_16
config X86_TSC config X86_TSC
bool bool
depends on MWINCHIP3D || MWINCHIP2 || MCRUSOE || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMIII || M686 || M586MMX || M586TSC || MK8 depends on MWINCHIP3D || MWINCHIP2 || MCRUSOE || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8
default y default y
config X86_GOOD_APIC config X86_GOOD_APIC
bool bool
depends on MK7 || MPENTIUM4 || MPENTIUMIII || M686 || M586MMX || MK8 depends on MK7 || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || MK8
default y default y
config X86_INTEL_USERCOPY config X86_INTEL_USERCOPY
bool bool
depends on MPENTIUM4 || MPENTIUMIII || M586MMX depends on MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M586MMX
default y default y
config X86_USE_PPRO_CHECKSUM config X86_USE_PPRO_CHECKSUM
bool bool
depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMIII || M686 || MK8 depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || MK8
default y default y
config X86_USE_3DNOW config X86_USE_3DNOW
......
...@@ -34,6 +34,7 @@ cflags-$(CONFIG_M586) += -march=i586 ...@@ -34,6 +34,7 @@ cflags-$(CONFIG_M586) += -march=i586
cflags-$(CONFIG_M586TSC) += -march=i586 cflags-$(CONFIG_M586TSC) += -march=i586
cflags-$(CONFIG_M586MMX) += $(call check_gcc,-march=pentium-mmx,-march=i586) cflags-$(CONFIG_M586MMX) += $(call check_gcc,-march=pentium-mmx,-march=i586)
cflags-$(CONFIG_M686) += -march=i686 cflags-$(CONFIG_M686) += -march=i686
cflags-$(CONFIG_MPENTIUMII) += $(call check_gcc,-march=pentium2,-march=i686)
cflags-$(CONFIG_MPENTIUMIII) += $(call check_gcc,-march=pentium3,-march=i686) cflags-$(CONFIG_MPENTIUMIII) += $(call check_gcc,-march=pentium3,-march=i686)
cflags-$(CONFIG_MPENTIUM4) += $(call check_gcc,-march=pentium4,-march=i686) cflags-$(CONFIG_MPENTIUM4) += $(call check_gcc,-march=pentium4,-march=i686)
cflags-$(CONFIG_MK6) += $(call check_gcc,-march=k6,-march=i586) cflags-$(CONFIG_MK6) += $(call check_gcc,-march=k6,-march=i586)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment