|
|
|
@@ -1,4 +1,4 @@
|
|
|
|
|
From 421120bda34d994c5e0e07a89e2f9c40c53e8e87 Mon Sep 17 00:00:00 2001
|
|
|
|
|
From 90b69178f6a866c7f3330c2006f6b5396146192c Mon Sep 17 00:00:00 2001
|
|
|
|
|
From: graysky <therealgraysky AT proton DOT me>
|
|
|
|
|
Date: Mon, 16 Sep 2024 05:55:58 -0400
|
|
|
|
|
Subject: ZEN: Add graysky's more-uarches
|
|
|
|
@@ -123,10 +123,10 @@ REFERENCES
|
|
|
|
|
3. https://github.com/graysky2/kernel_gcc_patch/issues/15
|
|
|
|
|
4. http://www.linuxforge.net/docs/linux/linux-gcc.php
|
|
|
|
|
---
|
|
|
|
|
arch/x86/Kconfig.cpu | 359 ++++++++++++++++++++++++++++++--
|
|
|
|
|
arch/x86/Makefile | 87 +++++++-
|
|
|
|
|
arch/x86/include/asm/vermagic.h | 70 +++++++
|
|
|
|
|
3 files changed, 499 insertions(+), 17 deletions(-)
|
|
|
|
|
arch/x86/Kconfig.cpu | 367 ++++++++++++++++++++++++++++++--
|
|
|
|
|
arch/x86/Makefile | 89 +++++++-
|
|
|
|
|
arch/x86/include/asm/vermagic.h | 72 +++++++
|
|
|
|
|
3 files changed, 511 insertions(+), 17 deletions(-)
|
|
|
|
|
|
|
|
|
|
--- a/arch/x86/Kconfig.cpu
|
|
|
|
|
+++ b/arch/x86/Kconfig.cpu
|
|
|
|
@@ -257,7 +257,7 @@ REFERENCES
|
|
|
|
|
+
|
|
|
|
|
+config MZEN5
|
|
|
|
|
+ bool "AMD Zen 5"
|
|
|
|
|
+ depends on (CC_IS_GCC && GCC_VERSION > 140000) || (CC_IS_CLANG && CLANG_VERSION >= 191000)
|
|
|
|
|
+ depends on (CC_IS_GCC && GCC_VERSION > 140000) || (CC_IS_CLANG && CLANG_VERSION >= 190100)
|
|
|
|
|
+ help
|
|
|
|
|
+ Select this for AMD Family 19h Zen 5 processors.
|
|
|
|
|
+
|
|
|
|
@@ -285,7 +285,7 @@ REFERENCES
|
|
|
|
|
help
|
|
|
|
|
|
|
|
|
|
Select this for Intel Core 2 and newer Core 2 Xeons (Xeon 51xx and
|
|
|
|
|
@@ -278,14 +388,191 @@ config MCORE2
|
|
|
|
|
@@ -278,14 +388,199 @@ config MCORE2
|
|
|
|
|
family in /proc/cpuinfo. Newer ones have 6 and older ones 15
|
|
|
|
|
(not a typo)
|
|
|
|
|
|
|
|
|
@@ -393,14 +393,22 @@ REFERENCES
|
|
|
|
|
+
|
|
|
|
|
+ Enables -march=cannonlake
|
|
|
|
|
+
|
|
|
|
|
+config MICELAKE
|
|
|
|
|
+config MICELAKE_CLIENT
|
|
|
|
|
+ bool "Intel Ice Lake"
|
|
|
|
|
+ help
|
|
|
|
|
+
|
|
|
|
|
+ Select this for 10th Gen Core processors in the Ice Lake family.
|
|
|
|
|
+ Select this for 10th Gen Core client processors in the Ice Lake family.
|
|
|
|
|
+
|
|
|
|
|
+ Enables -march=icelake-client
|
|
|
|
|
+
|
|
|
|
|
+config MICELAKE_SERVER
|
|
|
|
|
+ bool "Intel Ice Lake Server"
|
|
|
|
|
+ help
|
|
|
|
|
+
|
|
|
|
|
+ Select this for 10th Gen Core server processors in the Ice Lake family.
|
|
|
|
|
+
|
|
|
|
|
+ Enables -march=icelake-server
|
|
|
|
|
+
|
|
|
|
|
+config MCASCADELAKE
|
|
|
|
|
+ bool "Intel Cascade Lake"
|
|
|
|
|
+ help
|
|
|
|
@@ -483,7 +491,7 @@ REFERENCES
|
|
|
|
|
|
|
|
|
|
config GENERIC_CPU
|
|
|
|
|
bool "Generic-x86-64"
|
|
|
|
|
@@ -294,6 +581,26 @@ config GENERIC_CPU
|
|
|
|
|
@@ -294,6 +589,26 @@ config GENERIC_CPU
|
|
|
|
|
Generic x86-64 CPU.
|
|
|
|
|
Run equally well on all x86-64 CPUs.
|
|
|
|
|
|
|
|
|
@@ -510,7 +518,7 @@ REFERENCES
|
|
|
|
|
endchoice
|
|
|
|
|
|
|
|
|
|
config X86_GENERIC
|
|
|
|
|
@@ -308,6 +615,30 @@ config X86_GENERIC
|
|
|
|
|
@@ -308,6 +623,30 @@ config X86_GENERIC
|
|
|
|
|
This is really intended for distributors who need more
|
|
|
|
|
generic optimizations.
|
|
|
|
|
|
|
|
|
@@ -541,32 +549,32 @@ REFERENCES
|
|
|
|
|
#
|
|
|
|
|
# Define implied options from the CPU selection here
|
|
|
|
|
config X86_INTERNODE_CACHE_SHIFT
|
|
|
|
|
@@ -318,7 +649,7 @@ config X86_INTERNODE_CACHE_SHIFT
|
|
|
|
|
@@ -318,7 +657,7 @@ config X86_INTERNODE_CACHE_SHIFT
|
|
|
|
|
config X86_L1_CACHE_SHIFT
|
|
|
|
|
int
|
|
|
|
|
default "7" if MPENTIUM4 || MPSC
|
|
|
|
|
- default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU
|
|
|
|
|
+ default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MZEN4 || MZEN5 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE || MEMERALDRAPIDS || MNATIVE_INTEL || MNATIVE_AMD
|
|
|
|
|
+ default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MZEN4 || MZEN5 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE_CLIENT || MICELAKE_SERVER || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE || MEMERALDRAPIDS || MNATIVE_INTEL || MNATIVE_AMD
|
|
|
|
|
default "4" if MELAN || M486SX || M486 || MGEODEGX1
|
|
|
|
|
default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
|
|
|
|
|
|
|
|
|
|
@@ -336,11 +667,11 @@ config X86_ALIGNMENT_16
|
|
|
|
|
@@ -336,11 +675,11 @@ config X86_ALIGNMENT_16
|
|
|
|
|
|
|
|
|
|
config X86_INTEL_USERCOPY
|
|
|
|
|
def_bool y
|
|
|
|
|
- depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7 || MEFFICEON || MCORE2
|
|
|
|
|
+ depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7 || MEFFICEON || MCORE2 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE || MEMERALDRAPIDS || MNATIVE_INTEL
|
|
|
|
|
+ depends on MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M586MMX || X86_GENERIC || MK8 || MK7 || MEFFICEON || MCORE2 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE_CLIENT || MICELAKE_SERVER || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE || MEMERALDRAPIDS || MNATIVE_INTEL
|
|
|
|
|
|
|
|
|
|
config X86_USE_PPRO_CHECKSUM
|
|
|
|
|
def_bool y
|
|
|
|
|
- depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX || MCORE2 || MATOM
|
|
|
|
|
+ depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX || MCORE2 || MATOM || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MZEN4 || MZEN5 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE || MEMERALDRAPIDS || MNATIVE_INTEL || MNATIVE_AMD
|
|
|
|
|
+ depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MVIAC7 || MEFFICEON || MGEODE_LX || MCORE2 || MATOM || MK8SSE3 || MK10 || MBARCELONA || MBOBCAT || MJAGUAR || MBULLDOZER || MPILEDRIVER || MSTEAMROLLER || MEXCAVATOR || MZEN || MZEN2 || MZEN3 || MZEN4 || MZEN5 || MNEHALEM || MWESTMERE || MSILVERMONT || MGOLDMONT || MGOLDMONTPLUS || MSANDYBRIDGE || MIVYBRIDGE || MHASWELL || MBROADWELL || MSKYLAKE || MSKYLAKEX || MCANNONLAKE || MICELAKE_CLIENT || MICELAKE_SERVER || MCASCADELAKE || MCOOPERLAKE || MTIGERLAKE || MSAPPHIRERAPIDS || MROCKETLAKE || MALDERLAKE || MRAPTORLAKE || MMETEORLAKE || MEMERALDRAPIDS || MNATIVE_INTEL || MNATIVE_AMD
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# P6_NOPs are a relatively minor optimization that require a family >=
|
|
|
|
|
--- a/arch/x86/Makefile
|
|
|
|
|
+++ b/arch/x86/Makefile
|
|
|
|
|
@@ -182,15 +182,96 @@ else
|
|
|
|
|
@@ -182,15 +182,98 @@ else
|
|
|
|
|
cflags-$(CONFIG_MK8) += -march=k8
|
|
|
|
|
cflags-$(CONFIG_MPSC) += -march=nocona
|
|
|
|
|
cflags-$(CONFIG_MCORE2) += -march=core2
|
|
|
|
@@ -608,7 +616,8 @@ REFERENCES
|
|
|
|
|
+ cflags-$(CONFIG_MSKYLAKE) += -march=skylake
|
|
|
|
|
+ cflags-$(CONFIG_MSKYLAKEX) += -march=skylake-avx512
|
|
|
|
|
+ cflags-$(CONFIG_MCANNONLAKE) += -march=cannonlake
|
|
|
|
|
+ cflags-$(CONFIG_MICELAKE) += -march=icelake-client
|
|
|
|
|
+ cflags-$(CONFIG_MICELAKE_CLIENT) += -march=icelake-client
|
|
|
|
|
+ cflags-$(CONFIG_MICELAKE_SERVER) += -march=icelake-server
|
|
|
|
|
+ cflags-$(CONFIG_MCASCADELAKE) += -march=cascadelake
|
|
|
|
|
+ cflags-$(CONFIG_MCOOPERLAKE) += -march=cooperlake
|
|
|
|
|
+ cflags-$(CONFIG_MTIGERLAKE) += -march=tigerlake
|
|
|
|
@@ -653,7 +662,8 @@ REFERENCES
|
|
|
|
|
+ rustflags-$(CONFIG_MSKYLAKE) += -Ctarget-cpu=skylake
|
|
|
|
|
+ rustflags-$(CONFIG_MSKYLAKEX) += -Ctarget-cpu=skylake-avx512
|
|
|
|
|
+ rustflags-$(CONFIG_MCANNONLAKE) += -Ctarget-cpu=cannonlake
|
|
|
|
|
+ rustflags-$(CONFIG_MICELAKE) += -Ctarget-cpu=icelake-client
|
|
|
|
|
+ rustflags-$(CONFIG_MICELAKE_CLIENT) += -Ctarget-cpu=icelake-client
|
|
|
|
|
+ rustflags-$(CONFIG_MICELAKE_SERVER) += -Ctarget-cpu=icelake-server
|
|
|
|
|
+ rustflags-$(CONFIG_MCASCADELAKE) += -Ctarget-cpu=cascadelake
|
|
|
|
|
+ rustflags-$(CONFIG_MCOOPERLAKE) += -Ctarget-cpu=cooperlake
|
|
|
|
|
+ rustflags-$(CONFIG_MTIGERLAKE) += -Ctarget-cpu=tigerlake
|
|
|
|
@@ -668,7 +678,7 @@ REFERENCES
|
|
|
|
|
KBUILD_CFLAGS += -mno-red-zone
|
|
|
|
|
--- a/arch/x86/include/asm/vermagic.h
|
|
|
|
|
+++ b/arch/x86/include/asm/vermagic.h
|
|
|
|
|
@@ -17,6 +17,54 @@
|
|
|
|
|
@@ -17,6 +17,56 @@
|
|
|
|
|
#define MODULE_PROC_FAMILY "586MMX "
|
|
|
|
|
#elif defined CONFIG_MCORE2
|
|
|
|
|
#define MODULE_PROC_FAMILY "CORE2 "
|
|
|
|
@@ -700,8 +710,10 @@ REFERENCES
|
|
|
|
|
+#define MODULE_PROC_FAMILY "SKYLAKEX "
|
|
|
|
|
+#elif defined CONFIG_MCANNONLAKE
|
|
|
|
|
+#define MODULE_PROC_FAMILY "CANNONLAKE "
|
|
|
|
|
+#elif defined CONFIG_MICELAKE
|
|
|
|
|
+#define MODULE_PROC_FAMILY "ICELAKE "
|
|
|
|
|
+#elif defined CONFIG_MICELAKE_CLIENT
|
|
|
|
|
+#define MODULE_PROC_FAMILY "ICELAKE_CLIENT "
|
|
|
|
|
+#elif defined CONFIG_MICELAKE_SERVER
|
|
|
|
|
+#define MODULE_PROC_FAMILY "ICELAKE_SERVER "
|
|
|
|
|
+#elif defined CONFIG_MCASCADELAKE
|
|
|
|
|
+#define MODULE_PROC_FAMILY "CASCADELAKE "
|
|
|
|
|
+#elif defined CONFIG_MCOOPERLAKE
|
|
|
|
@@ -723,7 +735,7 @@ REFERENCES
|
|
|
|
|
#elif defined CONFIG_MATOM
|
|
|
|
|
#define MODULE_PROC_FAMILY "ATOM "
|
|
|
|
|
#elif defined CONFIG_M686
|
|
|
|
|
@@ -35,6 +83,28 @@
|
|
|
|
|
@@ -35,6 +85,28 @@
|
|
|
|
|
#define MODULE_PROC_FAMILY "K7 "
|
|
|
|
|
#elif defined CONFIG_MK8
|
|
|
|
|
#define MODULE_PROC_FAMILY "K8 "
|
|
|
|
|