Messages in this thread Patch in this message | | | Date | Wed, 22 Mar 2000 16:11:02 -0500 (EST) | From | Jason Sodergren <> | Subject | Re: [patch] AMD SC400 support, kernel 2.3.99 |
| |
On Wed, 22 Mar 2000, Giuliano Procida wrote:
> according to the AMD Elan 520 manual, the timer is actually 1.1882 - > could you double check your figure and/or make mention of the Elan520 > in your patch? I suppose we should check with AMD and make sure we get > all of their weird ones.
According to the SC520 manual, the input to the PIT is 1.1882MHz. According to the SC300/310/400/410 manuals, the input is 1.1892MHz. I think that covers all of the ELAN processors and their apparently inconsistent weirdness; the ELAN processors are the only ones AMD makes with the on-board PIT.
An updated patch that handles all of the above is attached.
- Jason Sodergren - jason@taiga.com - http://www.taiga.com/~jason - - PGPK @ http://www/taiga.com/~jason/pgp.phtml -
diff -u -r linux/arch/i386/config.in linux-2.3.99/arch/i386/config.in --- linux/arch/i386/config.in Sun Mar 12 22:49:24 2000 +++ linux-2.3.99/arch/i386/config.in Wed Mar 22 12:50:32 2000 @@ -33,6 +33,10 @@ define_bool CONFIG_X86_BSWAP y define_bool CONFIG_X86_POPAD_OK y fi +if [ "$CONFIG_M386" = "y" -o "$CONFIG_M486" = "y" -o "$CONFIG_M586" = "y" ]; then + bool 'AMD ELAN (SC300/SC310/SC400/SC410/SC520) support' CONFIG_AMD_ELAN +fi + if [ "$CONFIG_M686" = "y" -o "$CONFIG_M586TSC" = "y" ]; then define_bool CONFIG_X86_TSC y fi diff -u -r linux/include/asm-i386/timex.h linux-2.3.99/include/asm-i386/timex.h --- linux/include/asm-i386/timex.h Sat Mar 18 15:10:59 2000 +++ linux-2.3.99/include/asm-i386/timex.h Wed Mar 22 12:53:22 2000 @@ -9,7 +9,18 @@ #include <linux/config.h> #include <asm/msr.h> -#define CLOCK_TICK_RATE 1193180 /* Underlying HZ */ +#ifdef CONFIG_AMD_ELAN + +#ifndef CONFIG_M586 +#define CLOCK_TICK_RATE 1189200 /* Underlying HZ on AMD SC300/310/400/410 */ +#else +#define CLOCK_TICK_RATE 1188200 /* Underlying HZ on AMD SC520 */ +#endif + +#else +#define CLOCK_TICK_RATE 1193180 /* Underlying HZ */ +#endif + #define CLOCK_TICK_FACTOR 20 /* Factor of both 1000000 and CLOCK_TICK_RATE */ #define FINETUNE ((((((long)LATCH * HZ - CLOCK_TICK_RATE) << SHIFT_HZ) * \ (1000000/CLOCK_TICK_FACTOR) / (CLOCK_TICK_RATE/CLOCK_TICK_FACTOR)) \
| |