Re: [PATCH] Support for GEODE CPUs

2005-03-22 Thread Kianusch Sayah Karadji
Hi!
On Mon, 21 Mar 2005, Andrew Morton wrote:
The original patch was already applied, so I made an incremental update. 
Please double-check it.

Sometime, could you send me a little description of what the patch does 
("the adjustments Alan suggested") so Linus knows what we're doing to 
his kernel?  And a Signed-off-by: line too, please.
 Changed Name/defines from "Geode GX" to "Geode GX1" for clarification
 Dropped "-march=i586" in favor of "-march=i486"
 Dopped X86_OOSTORE support for Geode GX1
Signed-off-by: Kianusch Sayah Karadji <[EMAIL PROTECTED]>
---
diff -puN arch/i386/Kconfig~x86-geode-support-fixes arch/i386/Kconfig
--- 25/arch/i386/Kconfig~x86-geode-support-fixes2005-03-21 
23:09:34.0 -0800
+++ 25-akpm/arch/i386/Kconfig   2005-03-21 23:09:53.0 -0800
@@ -187,7 +187,7 @@ config M386
  - "Winchip-C6" for original IDT Winchip.
  - "Winchip-2" for IDT Winchip 2.
  - "Winchip-2A" for IDT Winchips with 3dNow! capabilities.
- - "MediaGX/Geode" for Cyrix MediaGX aka Geode.
+ - "GeodeGX1" for Geode GX1 (Cyrix MediaGX).
  - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3.
  - "VIA C3-2 for VIA C3-2 "Nehemiah" (model 9 and above).
@@ -315,12 +315,10 @@ config MWINCHIP3D
  stores for this CPU, which can increase performance of some
  operations.
-config MGEODE
-   bool "MediaGX/Geode"
+config MGEODEGX1
+   bool "GeodeGX1"
help
- Select this for a Cyrix MediaGX aka Geode chip. Linux and GCC
-  treat this chip as a 586TSC with some extended instructions
-  and alignment reqirements.
+ Select this for a Geode GX1 (Cyrix MediaGX) chip.
 config MCYRIXIII
bool "CyrixIII/VIA-C3"
@@ -372,7 +370,7 @@ config X86_L1_CACHE_SHIFT
int
default "7" if MPENTIUM4 || X86_GENERIC
default "4" if X86_ELAN || M486 || M386
-   default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || 
MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC 
|| M586 || MVIAC3_2 || MGEODE
+   default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || 
MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC 
|| M586 || MVIAC3_2 || MGEODEGX1
default "6" if MK7 || MK8 || MPENTIUMM
 config RWSEM_GENERIC_SPINLOCK
@@ -391,7 +389,7 @@ config GENERIC_CALIBRATE_DELAY
 config X86_PPRO_FENCE
bool
-   depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || MGEODE
+   depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || 
MGEODEGX1
default y
 config X86_F00F_BUG
@@ -421,7 +419,7 @@ config X86_POPAD_OK
 config X86_ALIGNMENT_16
bool
-   depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || 
X86_ELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODE
+   depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || 
X86_ELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1
default y
 config X86_GOOD_APIC
@@ -446,7 +444,7 @@ config X86_USE_3DNOW
 config X86_OOSTORE
bool
-   depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MGEODE) && MTRR
+   depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6) && MTRR
default y
 config HPET_TIMER
@@ -582,7 +580,7 @@ config X86_VISWS_APIC
 config X86_TSC
bool
-   depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 
|| MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || 
M586TSC || MK8 || MVIAC3_2 || MGEODE) && !X86_NUMAQ
+   depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 
|| MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || 
M586TSC || MK8 || MVIAC3_2 || MGEODEGX1) && !X86_NUMAQ
default y
 config X86_MCE
diff -puN arch/i386/Makefile~x86-geode-support-fixes arch/i386/Makefile
--- 25/arch/i386/Makefile~x86-geode-support-fixes   2005-03-21 
23:09:34.0 -0800
+++ 25-akpm/arch/i386/Makefile  2005-03-21 23:09:53.0 -0800
@@ -14,7 +14,7 @@
 # 19990713  Artur Skawina <[EMAIL PROTECTED]>
 #   Added '-march' and '-mpreferred-stack-boundary' support
 #
-#   Kianusch Sayah Karadji <[EMAIL PROTECTED]>
+# 20050320  Kianusch Sayah Karadji <[EMAIL PROTECTED]>
 #   Added support for GEODE CPU
 LDFLAGS:= -m elf_i386
@@ -54,8 +54,8 @@ cflags-$(CONFIG_MVIAC3_2) += $(call cc-o
 # AMD Elan support
 cflags-$(CONFIG_X86_ELAN)  += -march=i486
-# MediaGX aka Geode support
-cflags-$(CONFIG_MGEODE)+= $(call 
cc-option,-march=pentium-mmx,-march=i586)
+# Geode GX1 support
+cflags-$(CONFIG_MGEODEGX1) += $(call 
cc-option,-march=pentium-mmx,-march=i486)
 # -mregparm=3 works ok on gcc-3.0 and later
 #
diff -puN include/asm-i386/module.h~x86-geode-support-fixes 
include/asm-i386/module.h
--- 

Re: [PATCH] Support for GEODE CPUs

2005-03-22 Thread Kianusch Sayah Karadji
Hi!
On Mon, 21 Mar 2005, Andrew Morton wrote:
The original patch was already applied, so I made an incremental update. 
Please double-check it.

Sometime, could you send me a little description of what the patch does 
(the adjustments Alan suggested) so Linus knows what we're doing to 
his kernel?  And a Signed-off-by: line too, please.
 Changed Name/defines from Geode GX to Geode GX1 for clarification
 Dropped -march=i586 in favor of -march=i486
 Dopped X86_OOSTORE support for Geode GX1
Signed-off-by: Kianusch Sayah Karadji [EMAIL PROTECTED]
---
diff -puN arch/i386/Kconfig~x86-geode-support-fixes arch/i386/Kconfig
--- 25/arch/i386/Kconfig~x86-geode-support-fixes2005-03-21 
23:09:34.0 -0800
+++ 25-akpm/arch/i386/Kconfig   2005-03-21 23:09:53.0 -0800
@@ -187,7 +187,7 @@ config M386
  - Winchip-C6 for original IDT Winchip.
  - Winchip-2 for IDT Winchip 2.
  - Winchip-2A for IDT Winchips with 3dNow! capabilities.
- - MediaGX/Geode for Cyrix MediaGX aka Geode.
+ - GeodeGX1 for Geode GX1 (Cyrix MediaGX).
  - CyrixIII/VIA C3 for VIA Cyrix III or VIA C3.
  - VIA C3-2 for VIA C3-2 Nehemiah (model 9 and above).
@@ -315,12 +315,10 @@ config MWINCHIP3D
  stores for this CPU, which can increase performance of some
  operations.
-config MGEODE
-   bool MediaGX/Geode
+config MGEODEGX1
+   bool GeodeGX1
help
- Select this for a Cyrix MediaGX aka Geode chip. Linux and GCC
-  treat this chip as a 586TSC with some extended instructions
-  and alignment reqirements.
+ Select this for a Geode GX1 (Cyrix MediaGX) chip.
 config MCYRIXIII
bool CyrixIII/VIA-C3
@@ -372,7 +370,7 @@ config X86_L1_CACHE_SHIFT
int
default 7 if MPENTIUM4 || X86_GENERIC
default 4 if X86_ELAN || M486 || M386
-   default 5 if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || 
MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC 
|| M586 || MVIAC3_2 || MGEODE
+   default 5 if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || 
MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC 
|| M586 || MVIAC3_2 || MGEODEGX1
default 6 if MK7 || MK8 || MPENTIUMM
 config RWSEM_GENERIC_SPINLOCK
@@ -391,7 +389,7 @@ config GENERIC_CALIBRATE_DELAY
 config X86_PPRO_FENCE
bool
-   depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || MGEODE
+   depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || 
MGEODEGX1
default y
 config X86_F00F_BUG
@@ -421,7 +419,7 @@ config X86_POPAD_OK
 config X86_ALIGNMENT_16
bool
-   depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || 
X86_ELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODE
+   depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || 
X86_ELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1
default y
 config X86_GOOD_APIC
@@ -446,7 +444,7 @@ config X86_USE_3DNOW
 config X86_OOSTORE
bool
-   depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MGEODE)  MTRR
+   depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6)  MTRR
default y
 config HPET_TIMER
@@ -582,7 +580,7 @@ config X86_VISWS_APIC
 config X86_TSC
bool
-   depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 
|| MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || 
M586TSC || MK8 || MVIAC3_2 || MGEODE)  !X86_NUMAQ
+   depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 
|| MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || 
M586TSC || MK8 || MVIAC3_2 || MGEODEGX1)  !X86_NUMAQ
default y
 config X86_MCE
diff -puN arch/i386/Makefile~x86-geode-support-fixes arch/i386/Makefile
--- 25/arch/i386/Makefile~x86-geode-support-fixes   2005-03-21 
23:09:34.0 -0800
+++ 25-akpm/arch/i386/Makefile  2005-03-21 23:09:53.0 -0800
@@ -14,7 +14,7 @@
 # 19990713  Artur Skawina [EMAIL PROTECTED]
 #   Added '-march' and '-mpreferred-stack-boundary' support
 #
-#   Kianusch Sayah Karadji [EMAIL PROTECTED]
+# 20050320  Kianusch Sayah Karadji [EMAIL PROTECTED]
 #   Added support for GEODE CPU
 LDFLAGS:= -m elf_i386
@@ -54,8 +54,8 @@ cflags-$(CONFIG_MVIAC3_2) += $(call cc-o
 # AMD Elan support
 cflags-$(CONFIG_X86_ELAN)  += -march=i486
-# MediaGX aka Geode support
-cflags-$(CONFIG_MGEODE)+= $(call 
cc-option,-march=pentium-mmx,-march=i586)
+# Geode GX1 support
+cflags-$(CONFIG_MGEODEGX1) += $(call 
cc-option,-march=pentium-mmx,-march=i486)
 # -mregparm=3 works ok on gcc-3.0 and later
 #
diff -puN include/asm-i386/module.h~x86-geode-support-fixes 
include/asm-i386/module.h
--- 25/include/asm-i386/module.h~x86-geode-support-fixes2005-03-21 

Re: [PATCH] Support for GEODE CPUs

2005-03-21 Thread Andrew Morton
Kianusch Sayah Karadji <[EMAIL PROTECTED]> wrote:
>
> On Mon, 21 Mar 2005, Andrew Morton wrote:
> 
>  >> Either revert it or make it Geode GX and correct the options set. I've 
>  >> no problem with a Geode option that sets the right options 8)
>  >
>  > Two weeks, no patch.  It looks like we'll be reverting it.
> 
>  I somehow missed the thread in the list discussing the neccesary changes.
> 
>  Anyway here's a new patch (this time for 2.6.11).
> 
>  I changed the whole thing from "Geode GX" to "Geode GX1", and made the 
>  adjustments Alan suggested.

The original patch was already applied, so I made an incremental update. 
Please double-check it.

Sometime, could you send me a little description of what the patch does
("the adjustments Alan suggested") so Linus knows what we're doing to his
kernel?  And a Signed-off-by: line too, please.



diff -puN arch/i386/Kconfig~x86-geode-support-fixes arch/i386/Kconfig
--- 25/arch/i386/Kconfig~x86-geode-support-fixes2005-03-21 
23:09:34.0 -0800
+++ 25-akpm/arch/i386/Kconfig   2005-03-21 23:09:53.0 -0800
@@ -187,7 +187,7 @@ config M386
  - "Winchip-C6" for original IDT Winchip.
  - "Winchip-2" for IDT Winchip 2.
  - "Winchip-2A" for IDT Winchips with 3dNow! capabilities.
- - "MediaGX/Geode" for Cyrix MediaGX aka Geode.
+ - "GeodeGX1" for Geode GX1 (Cyrix MediaGX).
  - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3.
  - "VIA C3-2 for VIA C3-2 "Nehemiah" (model 9 and above).
 
@@ -315,12 +315,10 @@ config MWINCHIP3D
  stores for this CPU, which can increase performance of some
  operations.
 
-config MGEODE
-   bool "MediaGX/Geode"
+config MGEODEGX1
+   bool "GeodeGX1"
help
- Select this for a Cyrix MediaGX aka Geode chip. Linux and GCC
-  treat this chip as a 586TSC with some extended instructions
-  and alignment reqirements.
+ Select this for a Geode GX1 (Cyrix MediaGX) chip.
 
 config MCYRIXIII
bool "CyrixIII/VIA-C3"
@@ -372,7 +370,7 @@ config X86_L1_CACHE_SHIFT
int
default "7" if MPENTIUM4 || X86_GENERIC
default "4" if X86_ELAN || M486 || M386
-   default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || 
MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX 
|| M586TSC || M586 || MVIAC3_2 || MGEODE
+   default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || 
MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX 
|| M586TSC || M586 || MVIAC3_2 || MGEODEGX1
default "6" if MK7 || MK8 || MPENTIUMM
 
 config RWSEM_GENERIC_SPINLOCK
@@ -391,7 +389,7 @@ config GENERIC_CALIBRATE_DELAY
 
 config X86_PPRO_FENCE
bool
-   depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || MGEODE
+   depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || 
MGEODEGX1
default y
 
 config X86_F00F_BUG
@@ -421,7 +419,7 @@ config X86_POPAD_OK
 
 config X86_ALIGNMENT_16
bool
-   depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || 
X86_ELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODE
+   depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || 
X86_ELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1
default y
 
 config X86_GOOD_APIC
@@ -446,7 +444,7 @@ config X86_USE_3DNOW
 
 config X86_OOSTORE
bool
-   depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MGEODE) && MTRR
+   depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6) && MTRR
default y
 
 config HPET_TIMER
@@ -582,7 +580,7 @@ config X86_VISWS_APIC
 
 config X86_TSC
bool
-   depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || 
MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII 
|| M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MGEODE) && !X86_NUMAQ
+   depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || 
MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII 
|| M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MGEODEGX1) && !X86_NUMAQ
default y
 
 config X86_MCE
diff -puN arch/i386/Makefile~x86-geode-support-fixes arch/i386/Makefile
--- 25/arch/i386/Makefile~x86-geode-support-fixes   2005-03-21 
23:09:34.0 -0800
+++ 25-akpm/arch/i386/Makefile  2005-03-21 23:09:53.0 -0800
@@ -14,7 +14,7 @@
 # 19990713  Artur Skawina <[EMAIL PROTECTED]>
 #   Added '-march' and '-mpreferred-stack-boundary' support
 #
-#   Kianusch Sayah Karadji <[EMAIL PROTECTED]>
+# 20050320  Kianusch Sayah Karadji <[EMAIL PROTECTED]>
 #   Added support for GEODE CPU
 
 LDFLAGS:= -m elf_i386
@@ -54,8 +54,8 @@ cflags-$(CONFIG_MVIAC3_2) += $(call cc-o
 # AMD Elan support
 cflags-$(CONFIG_X86_ELAN)  += -march=i486
 
-# MediaGX aka Geode support
-cflags-$(CONFIG_MGEODE)+= $(call 

Re: [PATCH] Support for GEODE CPUs

2005-03-21 Thread Kianusch Sayah Karadji
Hi!
On Mon, 21 Mar 2005, Andrew Morton wrote:
Either revert it or make it Geode GX and correct the options set. I've 
no problem with a Geode option that sets the right options 8)
Two weeks, no patch.  It looks like we'll be reverting it.
I somehow missed the thread in the list discussing the neccesary changes.
Anyway here's a new patch (this time for 2.6.11).
I changed the whole thing from "Geode GX" to "Geode GX1", and made the 
adjustments Alan suggested.

Regards
  Kianusch
BTW.: I wish everybody - celebrating "new year" (NowRouz) these days - a 
happy and peaceful new year - and everybody else a wonderful spring 
quinox.diff -Nur linux-2.6.11/arch/i386/Kconfig linux-2.6.11_geode/arch/i386/Kconfig
--- linux-2.6.11/arch/i386/Kconfig  Wed Mar  2 08:37:49 2005
+++ linux-2.6.11_geode/arch/i386/KconfigTue Mar 22 02:03:17 2005
@@ -183,6 +183,7 @@
  - "Winchip-C6" for original IDT Winchip.
  - "Winchip-2" for IDT Winchip 2.
  - "Winchip-2A" for IDT Winchips with 3dNow! capabilities.
+ - "GeodeGX1" for Geode GX1 (Cyrix MediaGX).
  - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3.
  - "VIA C3-2 for VIA C3-2 "Nehemiah" (model 9 and above).
 
@@ -310,6 +311,11 @@
  stores for this CPU, which can increase performance of some
  operations.
 
+config MGEODEGX1
+   bool "GeodeGX1"
+   help
+ Select this for a Geode GX1 (Cyrix MediaGX) chip.
+
 config MCYRIXIII
bool "CyrixIII/VIA-C3"
help
@@ -360,7 +366,7 @@
int
default "7" if MPENTIUM4 || X86_GENERIC
default "4" if X86_ELAN || M486 || M386
-   default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || 
MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX 
|| M586TSC || M586 || MVIAC3_2
+   default "5" if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || 
MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX 
|| M586TSC || M586 || MVIAC3_2 || MGEODEGX1
default "6" if MK7 || MK8 || MPENTIUMM
 
 config RWSEM_GENERIC_SPINLOCK
@@ -379,7 +385,7 @@
 
 config X86_PPRO_FENCE
bool
-   depends on M686 || M586MMX || M586TSC || M586 || M486 || M386
+   depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || 
MGEODEGX1
default y
 
 config X86_F00F_BUG
@@ -409,7 +415,7 @@
 
 config X86_ALIGNMENT_16
bool
-   depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || 
X86_ELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2
+   depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || 
X86_ELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1
default y
 
 config X86_GOOD_APIC
@@ -570,7 +576,7 @@
 
 config X86_TSC
bool
-   depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || 
MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII 
|| M686 || M586MMX || M586TSC || MK8 || MVIAC3_2) && !X86_NUMAQ
+   depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || 
MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII 
|| M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MGEODEGX1) && !X86_NUMAQ
default y
 
 config X86_MCE
diff -Nur linux-2.6.11/arch/i386/Makefile linux-2.6.11_geode/arch/i386/Makefile
--- linux-2.6.11/arch/i386/Makefile Wed Mar  2 08:37:58 2005
+++ linux-2.6.11_geode/arch/i386/Makefile   Tue Mar 22 02:04:27 2005
@@ -14,6 +14,8 @@
 # 19990713  Artur Skawina <[EMAIL PROTECTED]>
 #   Added '-march' and '-mpreferred-stack-boundary' support
 #
+# 20050320  Kianusch Sayah Karadji <[EMAIL PROTECTED]>
+#   Added support for GEODE CPU
 
 LDFLAGS:= -m elf_i386
 OBJCOPYFLAGS   := -O binary -R .note -R .comment -S
@@ -51,6 +53,9 @@
 
 # AMD Elan support
 cflags-$(CONFIG_X86_ELAN)  += -march=i486
+
+# Geode GX1 support
+cflags-$(CONFIG_MGEODEGX1) += $(call 
cc-option,-march=pentium-mmx,-march=i486)
 
 # -mregparm=3 works ok on gcc-3.0 and later
 #
diff -Nur linux-2.6.11/include/asm-i386/module.h 
linux-2.6.11_geode/include/asm-i386/module.h
--- linux-2.6.11/include/asm-i386/module.h  Wed Mar  2 08:37:48 2005
+++ linux-2.6.11_geode/include/asm-i386/module.hTue Mar 22 02:03:17 2005
@@ -52,6 +52,8 @@
 #define MODULE_PROC_FAMILY "CYRIXIII "
 #elif defined CONFIG_MVIAC3_2
 #define MODULE_PROC_FAMILY "VIAC3-2 "
+#elif CONFIG_MGEODEGX1
+#define MODULE_PROC_FAMILY "GEODEGX1 "
 #else
 #error unknown processor family
 #endif


Re: [PATCH] Support for GEODE CPUs

2005-03-21 Thread Andrew Morton
Alan Cox <[EMAIL PROTECTED]> wrote:
>
> On Gwe, 2005-03-11 at 01:42, Andrew Morton wrote:
> > So..  did we end up deciding that the Geode patch should be reverted
> > wholesale?
> 
> Either revert it or make it Geode GX and correct the options set. I've
> no problem with a Geode option that sets the right options 8)

Two weeks, no patch.  It looks like we'll be reverting it.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Support for GEODE CPUs

2005-03-21 Thread Andrew Morton
Alan Cox [EMAIL PROTECTED] wrote:

 On Gwe, 2005-03-11 at 01:42, Andrew Morton wrote:
  So..  did we end up deciding that the Geode patch should be reverted
  wholesale?
 
 Either revert it or make it Geode GX and correct the options set. I've
 no problem with a Geode option that sets the right options 8)

Two weeks, no patch.  It looks like we'll be reverting it.
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Support for GEODE CPUs

2005-03-21 Thread Kianusch Sayah Karadji
Hi!
On Mon, 21 Mar 2005, Andrew Morton wrote:
Either revert it or make it Geode GX and correct the options set. I've 
no problem with a Geode option that sets the right options 8)
Two weeks, no patch.  It looks like we'll be reverting it.
I somehow missed the thread in the list discussing the neccesary changes.
Anyway here's a new patch (this time for 2.6.11).
I changed the whole thing from Geode GX to Geode GX1, and made the 
adjustments Alan suggested.

Regards
  Kianusch
BTW.: I wish everybody - celebrating new year (NowRouz) these days - a 
happy and peaceful new year - and everybody else a wonderful spring 
quinox.diff -Nur linux-2.6.11/arch/i386/Kconfig linux-2.6.11_geode/arch/i386/Kconfig
--- linux-2.6.11/arch/i386/Kconfig  Wed Mar  2 08:37:49 2005
+++ linux-2.6.11_geode/arch/i386/KconfigTue Mar 22 02:03:17 2005
@@ -183,6 +183,7 @@
  - Winchip-C6 for original IDT Winchip.
  - Winchip-2 for IDT Winchip 2.
  - Winchip-2A for IDT Winchips with 3dNow! capabilities.
+ - GeodeGX1 for Geode GX1 (Cyrix MediaGX).
  - CyrixIII/VIA C3 for VIA Cyrix III or VIA C3.
  - VIA C3-2 for VIA C3-2 Nehemiah (model 9 and above).
 
@@ -310,6 +311,11 @@
  stores for this CPU, which can increase performance of some
  operations.
 
+config MGEODEGX1
+   bool GeodeGX1
+   help
+ Select this for a Geode GX1 (Cyrix MediaGX) chip.
+
 config MCYRIXIII
bool CyrixIII/VIA-C3
help
@@ -360,7 +366,7 @@
int
default 7 if MPENTIUM4 || X86_GENERIC
default 4 if X86_ELAN || M486 || M386
-   default 5 if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || 
MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX 
|| M586TSC || M586 || MVIAC3_2
+   default 5 if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || 
MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX 
|| M586TSC || M586 || MVIAC3_2 || MGEODEGX1
default 6 if MK7 || MK8 || MPENTIUMM
 
 config RWSEM_GENERIC_SPINLOCK
@@ -379,7 +385,7 @@
 
 config X86_PPRO_FENCE
bool
-   depends on M686 || M586MMX || M586TSC || M586 || M486 || M386
+   depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || 
MGEODEGX1
default y
 
 config X86_F00F_BUG
@@ -409,7 +415,7 @@
 
 config X86_ALIGNMENT_16
bool
-   depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || 
X86_ELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2
+   depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || 
X86_ELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1
default y
 
 config X86_GOOD_APIC
@@ -570,7 +576,7 @@
 
 config X86_TSC
bool
-   depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || 
MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII 
|| M686 || M586MMX || M586TSC || MK8 || MVIAC3_2)  !X86_NUMAQ
+   depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || 
MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII 
|| M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MGEODEGX1)  !X86_NUMAQ
default y
 
 config X86_MCE
diff -Nur linux-2.6.11/arch/i386/Makefile linux-2.6.11_geode/arch/i386/Makefile
--- linux-2.6.11/arch/i386/Makefile Wed Mar  2 08:37:58 2005
+++ linux-2.6.11_geode/arch/i386/Makefile   Tue Mar 22 02:04:27 2005
@@ -14,6 +14,8 @@
 # 19990713  Artur Skawina [EMAIL PROTECTED]
 #   Added '-march' and '-mpreferred-stack-boundary' support
 #
+# 20050320  Kianusch Sayah Karadji [EMAIL PROTECTED]
+#   Added support for GEODE CPU
 
 LDFLAGS:= -m elf_i386
 OBJCOPYFLAGS   := -O binary -R .note -R .comment -S
@@ -51,6 +53,9 @@
 
 # AMD Elan support
 cflags-$(CONFIG_X86_ELAN)  += -march=i486
+
+# Geode GX1 support
+cflags-$(CONFIG_MGEODEGX1) += $(call 
cc-option,-march=pentium-mmx,-march=i486)
 
 # -mregparm=3 works ok on gcc-3.0 and later
 #
diff -Nur linux-2.6.11/include/asm-i386/module.h 
linux-2.6.11_geode/include/asm-i386/module.h
--- linux-2.6.11/include/asm-i386/module.h  Wed Mar  2 08:37:48 2005
+++ linux-2.6.11_geode/include/asm-i386/module.hTue Mar 22 02:03:17 2005
@@ -52,6 +52,8 @@
 #define MODULE_PROC_FAMILY CYRIXIII 
 #elif defined CONFIG_MVIAC3_2
 #define MODULE_PROC_FAMILY VIAC3-2 
+#elif CONFIG_MGEODEGX1
+#define MODULE_PROC_FAMILY GEODEGX1 
 #else
 #error unknown processor family
 #endif


Re: [PATCH] Support for GEODE CPUs

2005-03-21 Thread Andrew Morton
Kianusch Sayah Karadji [EMAIL PROTECTED] wrote:

 On Mon, 21 Mar 2005, Andrew Morton wrote:
 
   Either revert it or make it Geode GX and correct the options set. I've 
   no problem with a Geode option that sets the right options 8)
  
   Two weeks, no patch.  It looks like we'll be reverting it.
 
  I somehow missed the thread in the list discussing the neccesary changes.
 
  Anyway here's a new patch (this time for 2.6.11).
 
  I changed the whole thing from Geode GX to Geode GX1, and made the 
  adjustments Alan suggested.

The original patch was already applied, so I made an incremental update. 
Please double-check it.

Sometime, could you send me a little description of what the patch does
(the adjustments Alan suggested) so Linus knows what we're doing to his
kernel?  And a Signed-off-by: line too, please.



diff -puN arch/i386/Kconfig~x86-geode-support-fixes arch/i386/Kconfig
--- 25/arch/i386/Kconfig~x86-geode-support-fixes2005-03-21 
23:09:34.0 -0800
+++ 25-akpm/arch/i386/Kconfig   2005-03-21 23:09:53.0 -0800
@@ -187,7 +187,7 @@ config M386
  - Winchip-C6 for original IDT Winchip.
  - Winchip-2 for IDT Winchip 2.
  - Winchip-2A for IDT Winchips with 3dNow! capabilities.
- - MediaGX/Geode for Cyrix MediaGX aka Geode.
+ - GeodeGX1 for Geode GX1 (Cyrix MediaGX).
  - CyrixIII/VIA C3 for VIA Cyrix III or VIA C3.
  - VIA C3-2 for VIA C3-2 Nehemiah (model 9 and above).
 
@@ -315,12 +315,10 @@ config MWINCHIP3D
  stores for this CPU, which can increase performance of some
  operations.
 
-config MGEODE
-   bool MediaGX/Geode
+config MGEODEGX1
+   bool GeodeGX1
help
- Select this for a Cyrix MediaGX aka Geode chip. Linux and GCC
-  treat this chip as a 586TSC with some extended instructions
-  and alignment reqirements.
+ Select this for a Geode GX1 (Cyrix MediaGX) chip.
 
 config MCYRIXIII
bool CyrixIII/VIA-C3
@@ -372,7 +370,7 @@ config X86_L1_CACHE_SHIFT
int
default 7 if MPENTIUM4 || X86_GENERIC
default 4 if X86_ELAN || M486 || M386
-   default 5 if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || 
MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX 
|| M586TSC || M586 || MVIAC3_2 || MGEODE
+   default 5 if MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCRUSOE || 
MEFFICEON || MCYRIXIII || MK6 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX 
|| M586TSC || M586 || MVIAC3_2 || MGEODEGX1
default 6 if MK7 || MK8 || MPENTIUMM
 
 config RWSEM_GENERIC_SPINLOCK
@@ -391,7 +389,7 @@ config GENERIC_CALIBRATE_DELAY
 
 config X86_PPRO_FENCE
bool
-   depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || MGEODE
+   depends on M686 || M586MMX || M586TSC || M586 || M486 || M386 || 
MGEODEGX1
default y
 
 config X86_F00F_BUG
@@ -421,7 +419,7 @@ config X86_POPAD_OK
 
 config X86_ALIGNMENT_16
bool
-   depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || 
X86_ELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODE
+   depends on MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MCYRIXIII || 
X86_ELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1
default y
 
 config X86_GOOD_APIC
@@ -446,7 +444,7 @@ config X86_USE_3DNOW
 
 config X86_OOSTORE
bool
-   depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6 || MGEODE)  MTRR
+   depends on (MWINCHIP3D || MWINCHIP2 || MWINCHIPC6)  MTRR
default y
 
 config HPET_TIMER
@@ -582,7 +580,7 @@ config X86_VISWS_APIC
 
 config X86_TSC
bool
-   depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || 
MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII 
|| M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MGEODE)  !X86_NUMAQ
+   depends on (MWINCHIP3D || MWINCHIP2 || MCRUSOE || MEFFICEON || 
MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII 
|| M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MGEODEGX1)  !X86_NUMAQ
default y
 
 config X86_MCE
diff -puN arch/i386/Makefile~x86-geode-support-fixes arch/i386/Makefile
--- 25/arch/i386/Makefile~x86-geode-support-fixes   2005-03-21 
23:09:34.0 -0800
+++ 25-akpm/arch/i386/Makefile  2005-03-21 23:09:53.0 -0800
@@ -14,7 +14,7 @@
 # 19990713  Artur Skawina [EMAIL PROTECTED]
 #   Added '-march' and '-mpreferred-stack-boundary' support
 #
-#   Kianusch Sayah Karadji [EMAIL PROTECTED]
+# 20050320  Kianusch Sayah Karadji [EMAIL PROTECTED]
 #   Added support for GEODE CPU
 
 LDFLAGS:= -m elf_i386
@@ -54,8 +54,8 @@ cflags-$(CONFIG_MVIAC3_2) += $(call cc-o
 # AMD Elan support
 cflags-$(CONFIG_X86_ELAN)  += -march=i486
 
-# MediaGX aka Geode support
-cflags-$(CONFIG_MGEODE)+= $(call 
cc-option,-march=pentium-mmx,-march=i586)
+# Geode GX1 support

Re: [PATCH] Support for GEODE CPUs

2005-03-11 Thread Lennart Sorensen
On Fri, Mar 11, 2005 at 11:02:33AM +, Alan Cox wrote:
> Either revert it or make it Geode GX and correct the options set. I've
> no problem with a Geode option that sets the right options 8)

Maybe it should say GX1 unless someone is sure the GX1 and GX2 (now GX
[EMAIL PROTECTED] it seems) like the same optimizations.  The SCx200 could go in
the help text to clarify that those too are GX1 based.

Len Sorensen
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Support for GEODE CPUs

2005-03-11 Thread Alan Cox
On Gwe, 2005-03-11 at 01:42, Andrew Morton wrote:
> So..  did we end up deciding that the Geode patch should be reverted
> wholesale?

Either revert it or make it Geode GX and correct the options set. I've
no problem with a Geode option that sets the right options 8)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Support for GEODE CPUs

2005-03-11 Thread Alan Cox
On Gwe, 2005-03-11 at 01:42, Andrew Morton wrote:
 So..  did we end up deciding that the Geode patch should be reverted
 wholesale?

Either revert it or make it Geode GX and correct the options set. I've
no problem with a Geode option that sets the right options 8)

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Support for GEODE CPUs

2005-03-11 Thread Lennart Sorensen
On Fri, Mar 11, 2005 at 11:02:33AM +, Alan Cox wrote:
 Either revert it or make it Geode GX and correct the options set. I've
 no problem with a Geode option that sets the right options 8)

Maybe it should say GX1 unless someone is sure the GX1 and GX2 (now GX
[EMAIL PROTECTED] it seems) like the same optimizations.  The SCx200 could go in
the help text to clarify that those too are GX1 based.

Len Sorensen
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Support for GEODE CPUs

2005-03-10 Thread Andrew Morton

So..  did we end up deciding that the Geode patch should be reverted
wholesale?

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Support for GEODE CPUs

2005-03-10 Thread Andrew Morton

So..  did we end up deciding that the Geode patch should be reverted
wholesale?

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Support for GEODE CPUs

2005-03-09 Thread Lennart Sorensen
On Wed, Mar 09, 2005 at 09:59:26PM +, Alan Cox wrote:
> If you build 486 it will still use the TSC because it is available (The
> PIT is buggy but the kernel knows about that anyway and handles it). 

Hmm, I thought that was the whole point of the different cpu type
choices in the kernel.  Then again the MTRR is still available with a
386 kernel on a newer cpu as far as I remember, so I guess I will try a
486 optimized kernel next.

> There are a few Geode tricks to know for performance
> 
> - Turn off the video

That is the plan long term, although the BIOS's serial console doesn't
seem to work well with grub at least on minicom.  I think switching to
lilo may help that.

> - If you can't turn it off use solid areas of colour to speed the system
> up (The hardware uses RLE encoding to reduce ram fetch bandwidth)
> - Remember the cache is only 16K (12K when running X11 as 4K is borrowed
> for the blitter)

Even more reason to keep the video off (I think it steals some system
ram when on as well).

> - The onboard audio is a software SB emulation on older GX. It burns
> CPU.

I have audio disabled since I have no need for it.

> Also avoid touching various legacy registers as much as possible, many
> cause BIOS traps in SMM emulation code. The list I have is NDA but you
> can use rdtsc/inb or outb/rdtsc to work out which 8)

Only PCI and LPC devices in use, so I don't think I will be poking any
legacy registers directly, although I have no idea if the kernel would
be poking any of them as part of running the drivers.  Hopefully not.

Thanks for the information.

Len Sorensen
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Support for GEODE CPUs

2005-03-09 Thread Alan Cox
On Mer, 2005-03-09 at 23:26, David Vrabel wrote:
> Alan Cox wrote:
> > - If you can't turn it off use solid areas of colour to speed the system
> > up (The hardware uses RLE encoding to reduce ram fetch bandwidth)
> 
> How much of a difference does the compression make to performance?

Depends on the resolution but a display that is mostly solid can drop to
1/10th of a fancy background for memory fetch cost. Big deal on 66MHz
SDRAM

> > - The onboard audio is a software SB emulation on older GX. It burns
> > CPU.
> 
> Presumably one could write a native audio driver that didn't use the 
> soundblaster emulation?

The newer ones have native audio, the older ones you could but it would
be hard as the native audio is chip dependant, undocumented and the IRQ
it raises is hard coded to the SMI/SMM line.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Support for GEODE CPUs

2005-03-09 Thread David Vrabel
Alan Cox wrote:
There are a few Geode tricks to know for performance
- If you can't turn it off use solid areas of colour to speed the system
up (The hardware uses RLE encoding to reduce ram fetch bandwidth)
How much of a difference does the compression make to performance?
- The onboard audio is a software SB emulation on older GX. It burns
CPU.
Presumably one could write a native audio driver that didn't use the 
soundblaster emulation?

David Vrabel
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Support for GEODE CPUs

2005-03-09 Thread Alan Cox
On Mer, 2005-03-09 at 17:33, Lennart Sorensen wrote:
> Now if the Geode GX1 in fact runs faster optimized for 486 rather than
> 586 (I have been running one as 586tsc since it had mmx and tsc in its
> feature list), then I think I will be recompiling my kernel to see if I
> can't make this 266MHz GX1 run almost as fast as a 400MHz PXA255 (arm).
> Right now it has somewhat lower ethernet bandwidth than the arm.

If you build 486 it will still use the TSC because it is available (The
PIT is buggy but the kernel knows about that anyway and handles it). 

There are a few Geode tricks to know for performance

- Turn off the video
- If you can't turn it off use solid areas of colour to speed the system
up (The hardware uses RLE encoding to reduce ram fetch bandwidth)
- Remember the cache is only 16K (12K when running X11 as 4K is borrowed
for the blitter)
- The onboard audio is a software SB emulation on older GX. It burns
CPU.

Also avoid touching various legacy registers as much as possible, many
cause BIOS traps in SMM emulation code. The list I have is NDA but you
can use rdtsc/inb or outb/rdtsc to work out which 8)

Alan

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Support for GEODE CPUs

2005-03-09 Thread Lennart Sorensen
On Wed, Mar 09, 2005 at 05:01:09PM +, Alan Cox wrote:
[snip]
> And I have each time pointed out it is wrong over time because
> 
> a) "Geode" (Geode GX) runs -m486 code faster than -m586
> b) "Geode" as a name also includes AMD Athlon "Geode NX" processors
> c) Geode GX does not need OOSTORE because the processor manages DMA
> snooping in hardware.

It even looks to me like the Geode GX1 (SCx200 family) is a Cyrix MediaGX
design, the Geode GX2 (Geode GX [EMAIL PROTECTED] and company) I suspect is an
AMD k6 based design (given the 400Mhz speed, and the inclusion of 3Dnow
and MMX), and of course the Geode NX is athlon based.

Now if the Geode GX1 in fact runs faster optimized for 486 rather than
586 (I have been running one as 586tsc since it had mmx and tsc in its
feature list), then I think I will be recompiling my kernel to see if I
can't make this 266MHz GX1 run almost as fast as a 400MHz PXA255 (arm).
Right now it has somewhat lower ethernet bandwidth than the arm.

Len Sorensen
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Support for GEODE CPUs

2005-03-09 Thread Alan Cox
On Maw, 2005-03-08 at 17:39, Linux Kernel Mailing List wrote:
> ChangeSet 1.2088, 2005/03/08 09:39:30-08:00, [EMAIL PROTECTED]
> 
>   [PATCH] Support for GEODE CPUs
>   

This patch is also incorrect.

>   This patch has been on my homepage
>   (http://www.sk-tech.net/support/soekris.html) for quite a time - but 
> I've
>   been asked several time to have it included in the main kernel.

And I have each time pointed out it is wrong over time because

a) "Geode" (Geode GX) runs -m486 code faster than -m586
b) "Geode" as a name also includes AMD Athlon "Geode NX" processors
c) Geode GX does not need OOSTORE because the processor manages DMA
snooping in hardware.

Linus please drop this patch.

Alan

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Support for GEODE CPUs

2005-03-09 Thread Alan Cox
On Maw, 2005-03-08 at 17:39, Linux Kernel Mailing List wrote:
 ChangeSet 1.2088, 2005/03/08 09:39:30-08:00, [EMAIL PROTECTED]
 
   [PATCH] Support for GEODE CPUs
   

This patch is also incorrect.

   This patch has been on my homepage
   (http://www.sk-tech.net/support/soekris.html) for quite a time - but 
 I've
   been asked several time to have it included in the main kernel.

And I have each time pointed out it is wrong over time because

a) Geode (Geode GX) runs -m486 code faster than -m586
b) Geode as a name also includes AMD Athlon Geode NX processors
c) Geode GX does not need OOSTORE because the processor manages DMA
snooping in hardware.

Linus please drop this patch.

Alan

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Support for GEODE CPUs

2005-03-09 Thread Lennart Sorensen
On Wed, Mar 09, 2005 at 05:01:09PM +, Alan Cox wrote:
[snip]
 And I have each time pointed out it is wrong over time because
 
 a) Geode (Geode GX) runs -m486 code faster than -m586
 b) Geode as a name also includes AMD Athlon Geode NX processors
 c) Geode GX does not need OOSTORE because the processor manages DMA
 snooping in hardware.

It even looks to me like the Geode GX1 (SCx200 family) is a Cyrix MediaGX
design, the Geode GX2 (Geode GX [EMAIL PROTECTED] and company) I suspect is an
AMD k6 based design (given the 400Mhz speed, and the inclusion of 3Dnow
and MMX), and of course the Geode NX is athlon based.

Now if the Geode GX1 in fact runs faster optimized for 486 rather than
586 (I have been running one as 586tsc since it had mmx and tsc in its
feature list), then I think I will be recompiling my kernel to see if I
can't make this 266MHz GX1 run almost as fast as a 400MHz PXA255 (arm).
Right now it has somewhat lower ethernet bandwidth than the arm.

Len Sorensen
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Support for GEODE CPUs

2005-03-09 Thread Alan Cox
On Mer, 2005-03-09 at 17:33, Lennart Sorensen wrote:
 Now if the Geode GX1 in fact runs faster optimized for 486 rather than
 586 (I have been running one as 586tsc since it had mmx and tsc in its
 feature list), then I think I will be recompiling my kernel to see if I
 can't make this 266MHz GX1 run almost as fast as a 400MHz PXA255 (arm).
 Right now it has somewhat lower ethernet bandwidth than the arm.

If you build 486 it will still use the TSC because it is available (The
PIT is buggy but the kernel knows about that anyway and handles it). 

There are a few Geode tricks to know for performance

- Turn off the video
- If you can't turn it off use solid areas of colour to speed the system
up (The hardware uses RLE encoding to reduce ram fetch bandwidth)
- Remember the cache is only 16K (12K when running X11 as 4K is borrowed
for the blitter)
- The onboard audio is a software SB emulation on older GX. It burns
CPU.

Also avoid touching various legacy registers as much as possible, many
cause BIOS traps in SMM emulation code. The list I have is NDA but you
can use rdtsc/inb or outb/rdtsc to work out which 8)

Alan

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Support for GEODE CPUs

2005-03-09 Thread David Vrabel
Alan Cox wrote:
There are a few Geode tricks to know for performance
- If you can't turn it off use solid areas of colour to speed the system
up (The hardware uses RLE encoding to reduce ram fetch bandwidth)
How much of a difference does the compression make to performance?
- The onboard audio is a software SB emulation on older GX. It burns
CPU.
Presumably one could write a native audio driver that didn't use the 
soundblaster emulation?

David Vrabel
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Support for GEODE CPUs

2005-03-09 Thread Alan Cox
On Mer, 2005-03-09 at 23:26, David Vrabel wrote:
 Alan Cox wrote:
  - If you can't turn it off use solid areas of colour to speed the system
  up (The hardware uses RLE encoding to reduce ram fetch bandwidth)
 
 How much of a difference does the compression make to performance?

Depends on the resolution but a display that is mostly solid can drop to
1/10th of a fancy background for memory fetch cost. Big deal on 66MHz
SDRAM

  - The onboard audio is a software SB emulation on older GX. It burns
  CPU.
 
 Presumably one could write a native audio driver that didn't use the 
 soundblaster emulation?

The newer ones have native audio, the older ones you could but it would
be hard as the native audio is chip dependant, undocumented and the IRQ
it raises is hard coded to the SMI/SMM line.

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] Support for GEODE CPUs

2005-03-09 Thread Lennart Sorensen
On Wed, Mar 09, 2005 at 09:59:26PM +, Alan Cox wrote:
 If you build 486 it will still use the TSC because it is available (The
 PIT is buggy but the kernel knows about that anyway and handles it). 

Hmm, I thought that was the whole point of the different cpu type
choices in the kernel.  Then again the MTRR is still available with a
386 kernel on a newer cpu as far as I remember, so I guess I will try a
486 optimized kernel next.

 There are a few Geode tricks to know for performance
 
 - Turn off the video

That is the plan long term, although the BIOS's serial console doesn't
seem to work well with grub at least on minicom.  I think switching to
lilo may help that.

 - If you can't turn it off use solid areas of colour to speed the system
 up (The hardware uses RLE encoding to reduce ram fetch bandwidth)
 - Remember the cache is only 16K (12K when running X11 as 4K is borrowed
 for the blitter)

Even more reason to keep the video off (I think it steals some system
ram when on as well).

 - The onboard audio is a software SB emulation on older GX. It burns
 CPU.

I have audio disabled since I have no need for it.

 Also avoid touching various legacy registers as much as possible, many
 cause BIOS traps in SMM emulation code. The list I have is NDA but you
 can use rdtsc/inb or outb/rdtsc to work out which 8)

Only PCI and LPC devices in use, so I don't think I will be poking any
legacy registers directly, although I have no idea if the kernel would
be poking any of them as part of running the drivers.  Hopefully not.

Thanks for the information.

Len Sorensen
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/