Linux : Patch for Intel Atom Architecture

Kernel untuk prosessor Atom, pertama kali saya mengetahuinya dari Jolicloud yang terpasang di netbook saya. Yah, anda bisa menginstall kernel untuk prosessor atom melalui repository Jolicloud. Saya tidak merasakan perbedaan yang berarti di penggunaan saya sehari-hari, atau memang karena perbedaan itu tidak bisa dilihat dengan mata telanjang.

Setelah mencoba berusaha mencari perbedaan yang mungkin terjadi di configurasi kernel pun tidak saya dapatkan, configurasinya sama. Artinya perbedaan memang terjadi didalam tambalan kode di Kernel.

Jika anda pengguna Jolicloud, cobalah kernel untuk atom tersebut dengan menginstall menggunakan perintah berikut.

# sudo apt-get install linux-jolicloud-atom

Dari informasi yang saya dapat dari sumber, berikut ini kode tambalan yang di tambalkan ke Kernel.

diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index 8130334..f88a7f6 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -262,6 +262,15 @@  config MCORE2
 	  family in /proc/cpuinfo. Newer ones have 6 and older ones 15
 	  (not a typo)

+config MATOM
+	bool "Intel Atom"
+	---help---
+
+	  Select this for Intel Atom platform. Intel Atom CPUs have an in-order
+	  pipelining architecture and thus can benefit from in-order optimized
+	  code. Use a recent GCC with specific Intel Atom support in order to
+	  fully benefit from selecting this option.
+
 config GENERIC_CPU
 	bool "Generic-x86-64"
 	depends on X86_64
@@ -310,7 +319,7 @@  config X86_L1_CACHE_SHIFT
 	default "7" if MPENTIUM4 || MPSC
 	default "4" if X86_ELAN || M486 || M386 || MGEODEGX1
 	default "5" if MWINCHIP3D || MWINCHIPC6 || MCRUSOE || MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE_LX
-	default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MVIAC7 || X86_GENERIC || GENERIC_CPU
+	default "6" if MK7 || MK8 || MPENTIUMM || MCORE2 || MATOM || MVIAC7 || X86_GENERIC || GENERIC_CPU

 config X86_XADD
 	def_bool y
@@ -359,7 +368,7 @@  config X86_INTEL_USERCOPY

 config X86_USE_PPRO_CHECKSUM
 	def_bool y
-	depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MEFFICEON || MGEODE_LX || MCORE2
+	depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MK8 || MVIAC3_2 || MEFFICEON || MGEODE_LX || MCORE2 || MATOM

 config X86_USE_3DNOW
 	def_bool y
@@ -387,7 +396,7 @@  config X86_P6_NOP

 config X86_TSC
 	def_bool y
-	depends on ((MWINCHIP3D || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MCORE2) && !X86_NUMAQ) || X86_64
+	depends on ((MWINCHIP3D || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MCORE2 || MATOM) && !X86_NUMAQ) || X86_64

 config X86_CMPXCHG64
 	def_bool y
@@ -397,7 +406,7 @@  config X86_CMPXCHG64
 # generates cmov.
 config X86_CMOV
 	def_bool y
-	depends on (MK8 || MK7 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64)
+	depends on (MK8 || MK7 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MATOM)

 config X86_MINIMUM_CPU_FAMILY
 	int
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 8c86b72..c989eec 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -57,6 +57,8 @@  else

         cflags-$(CONFIG_MCORE2) += \
                 $(call cc-option,-march=core2,$(call cc-option,-mtune=generic))
+	cflags-$(CONFIG_MATOM) += $(call cc-option,-march=atom) \
+		$(call cc-option,-mtune=atom,$(call cc-option,-mtune=generic))
         cflags-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=generic)
         KBUILD_CFLAGS += $(cflags-y)

diff --git a/arch/x86/Makefile_32.cpu b/arch/x86/Makefile_32.cpu
index 80177ec..30e9a26 100644
--- a/arch/x86/Makefile_32.cpu
+++ b/arch/x86/Makefile_32.cpu
@@ -33,6 +33,8 @@  cflags-$(CONFIG_MCYRIXIII)	+= $(call cc-option,-march=c3,-march=i486) $(align)-f
 cflags-$(CONFIG_MVIAC3_2)	+= $(call cc-option,-march=c3-2,-march=i686)
 cflags-$(CONFIG_MVIAC7)		+= -march=i686
 cflags-$(CONFIG_MCORE2)		+= -march=i686 $(call tune,core2)
+cflags-$(CONFIG_MATOM)		+= $(call cc-option,-march=atom,$(call cc-option,-march=core2,-march=i686)) \
+	$(call cc-option,-mtune=atom,$(call cc-option,-mtune=generic))

 # AMD Elan support
 cflags-$(CONFIG_X86_ELAN)	+= -march=i486
diff --git a/arch/x86/include/asm/module.h b/arch/x86/include/asm/module.h
index 47d6274..e959c4a 100644
--- a/arch/x86/include/asm/module.h
+++ b/arch/x86/include/asm/module.h
@@ -28,6 +28,8 @@  struct mod_arch_specific {};
 #define MODULE_PROC_FAMILY "586MMX "
 #elif defined CONFIG_MCORE2
 #define MODULE_PROC_FAMILY "CORE2 "
+#elif defined CONFIG_MATOM
+#define MODULE_PROC_FAMILY "ATOM "
 #elif defined CONFIG_M686
 #define MODULE_PROC_FAMILY "686 "
 #elif defined CONFIG_MPENTIUMII

9 Responses - Add Yours+

  1. milisdad says:

    bisa diperjelas lagi tidak?
    supaya orang awam bisa lebih tertarik menggunakan Jolicloud :)

    Google Chrome 5.0.342.9 Google Chrome 5.0.342.9 GNU/Linux GNU/Linux
    Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.9 Safari/533.2
  2. hmmm…besok saya update…
    cari inspirasi dulu…membahas detail dari jolicloud :D

    Google Chrome 4.1.249.1064 Google Chrome 4.1.249.1064 Windows 7 Windows 7
    Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.1.249.1064 Safari/532.5
  3. milisdad says:

    7 ?

    Google Chrome 5.0.342.9 Google Chrome 5.0.342.9 GNU/Linux GNU/Linux
    Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.9 Safari/533.2
  4. (LOL) lapie nya dedek mas (tongue)

    Firefox 3.6.3 Firefox 3.6.3 Ubuntu 9.04 Ubuntu 9.04
    Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2) Gecko/20100325 Ubuntu/9.04 (jaunty) Firefox/3.6.3
  5. darmanex says:

    Hari gini maen ngepatch??ckckckk…(rofl)

    Mobile Safari 3.1.2 Mobile Safari 3.1.2 Android Android
    Mozilla/5.0 (Linux; U; Android 1.6; en-us; T-Mobile myTouch 3G Build/DMD64) AppleWebKit/528.5+ (KHTML, like Gecko) Version/3.1.2 Mobile Safari/525.20.1
  6. iqbal says:

    cuma mau pamer android aja nih anak…
    gagaga

    Google Chrome 5.0.307.7 Google Chrome 5.0.307.7 GNU/Linux GNU/Linux
    Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/532.9 (KHTML, like Gecko) Chrome/5.0.307.7 Safari/532.9
  7. iya deh yg pake android (tongue)

    Firefox 3.6.3 Firefox 3.6.3 Ubuntu 9.04 Ubuntu 9.04
    Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2) Gecko/20100325 Ubuntu/9.04 (jaunty) Firefox/3.6.3
  8. darmanex says:

    aahhaha..moga2 bentar lagi saya bisa memili android.. (tongue) (rofl)

    Epiphany 2.22 Epiphany 2.22 FreeBSD FreeBSD
    Mozilla/5.0 (X11; U; FreeBSD i386; en; rv:1.9.0.14) Gecko/20080528 Epiphany/2.22 Firefox/3.0
  9. aku tau @darmanex cuman mau ngeliatin freebsdnya yg baru jadi (lmao)(rofl)

    Google Chrome 5.0.342.9 Google Chrome 5.0.342.9 GNU/Linux GNU/Linux
    Mozilla/5.0 (X11; U; Linux i686; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.9 Safari/533.2

Leave a Reply



Nice job!
You now have 30 lives.
Use them wisely, my friend.

Konami Easter Egg by Adrian3.com