Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S264614AbTFEL0M (ORCPT ); Thu, 5 Jun 2003 07:26:12 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S264615AbTFEL0M (ORCPT ); Thu, 5 Jun 2003 07:26:12 -0400 Received: from [61.211.239.235] ([61.211.239.235]:13733 "EHLO maison.kyo-ko.org") by vger.kernel.org with ESMTP id S264614AbTFEL0J (ORCPT ); Thu, 5 Jun 2003 07:26:09 -0400 Date: Thu, 05 Jun 2003 20:39:24 +0900 Message-ID: <87y90gzrbn.wl%miura@da-cha.org> From: Hiroshi Miura To: davej@suse.de Cc: Alan Cox , linux-kernel Subject: [PATCH 2.5.70] NatSemi Geode out-of-order store enables User-Agent: Wanderlust/2.10.0 (Venus) SEMI/1.14.4 (=?ISO-2022-JP?B?GyRCOllPJExaGyhC?=) FLIM/1.14.4 (=?ISO-2022-JP?B?GyRCM2A4Nj9ANVxBMBsoQg==?=) APEL/10.4 Emacs/21.3 (i386-pc-linux-gnu) MULE/5.0 (=?ISO-2022-JP?B?GyRCOC1MWhsoQg==?=) MIME-Version: 1.0 (generated by SEMI 1.14.4 - =?ISO-2022-JP?B?IhskQjpZGyhC?= =?ISO-2022-JP?B?GyRCTyRMWhsoQiI=?=) Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3902 Lines: 107 Hello, This is a patch to enable oostore feature of geode. Most geode specific code already merged, but it need a definition of CONFIG_OOSTORE to speedup geode. in arch/i386/kernel/cpu/cyrix.c: static void __init set_cx86_reorder(void) { #ifdef CONFIG_OOSTORE u8 ccr3; printk(KERN_INFO "Enable Memory access reorder on Cyrix/NSC processor.\n"); ccr3 = getCx86(CX86_CCR3); setCx86(CX86_CCR3, (ccr3 & 0x0f) | 0x10); /* enable MAPEN */ /* Load/Store Serialize to mem access disable (=reorder it) */ setCx86(CX86_PCR0, getCx86(CX86_PCR0) & ~0x80); #ifdef CONFIG_NOHIGHMEM /* set load/store serialize from 1GB to 4GB */ ccr3 |= 0xe0; #endif setCx86(CX86_CCR3, ccr3); #endif } To enable this following Kconfig patch might be good. If user configure for 386 or 586, geode oostore is only disabled. If configure for geode, an oostore feature is enabled and he/she will get more speed. --- linux.o/arch/i386/Kconfig 2003-05-29 00:56:37.000000000 +0900 +++ linux/arch/i386/Kconfig 2003-05-29 19:42:32.000000000 +0900 @@ -284,6 +284,13 @@ of SSE and tells gcc to treat the CPU as a 686. Note, this kernel will not boot on older (pre model 9) C3s. +config MGEODE + bool "MediaGX/Geode" + help + Select this for a Cyrix MediaGX/GXM or NatSemi Geode GXM/GXLV/GX1 + chip. Linux and GCC treat this chip as a 586MMX with some + extended instructions and work arounds. + endchoice config X86_GENERIC @@ -310,7 +317,7 @@ int default "7" if MPENTIUM4 || X86_GENERIC default "4" if MELAN || M486 || M386 - default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 + default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || MVIAC3_2 || MGEODE default "6" if MK7 || MK8 config RWSEM_GENERIC_SPINLOCK @@ -355,7 +362,7 @@ config X86_ALIGNMENT_16 bool - depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 + depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODE default y config X86_GOOD_APIC @@ -380,7 +387,7 @@ config X86_OOSTORE bool - depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 + depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MGEODE default y config HUGETLB_PAGE @@ -489,7 +496,7 @@ config X86_TSC bool - depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2) && !X86_NUMAQ + depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MGEODE) && !X86_NUMAQ default y config X86_MCE --- linux.o/include/asm-i386/module.h 2003-03-25 07:00:02.000000000 +0900 +++ linux/include/asm-i386/module.h 2003-05-29 19:45:06.000000000 +0900 @@ -48,6 +48,8 @@ #define MODULE_PROC_FAMILY "CYRIXIII " #elif CONFIG_MVIAC3_2 #define MODULE_PROC_FAMILY "VIAC3-2 " +#elif CONFIG_MGEODE +#define MODULE_PROC_FAMILY "GEODE " #else #error unknown processor family #endif -- Hiroshi Miura --- http://www.da-cha.org/ NTTDATA Corp. Marketing & Business Strategy Planning Dept. --- miurahr@nttdata.co.jp Key fingerprint = 9117 9407 5684 FBF1 4063 15B4 401D D077 04AB 8617 -- My hacking life is happy as the day is long - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/