[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20080523131636.GH9245@ucw.cz>
Date: Fri, 23 May 2008 15:16:36 +0200
From: Pavel Machek <pavel@...e.cz>
To: Dave Jones <davej@...hat.com>
Cc: Linux Kernel <linux-kernel@...r.kernel.org>,
Ingo Molnar <mingo@...e.hu>,
Thomas Gleixner <tglx@...utronix.de>, hpa@...or.com
Subject: Re: [X86] Move the AMD64 specific parts out of setup_64.c
Hi!
> Create a separate amd_64.c file in the cpu/ dir for
> the useful parts to live in.
>
> +#define ENABLE_C1E_MASK 0x18000000
> +#define CPUID_PROCESSOR_SIGNATURE 1
> +#define CPUID_XFAM 0x0ff00000
> +#define CPUID_XFAM_K8 0x00000000
> +#define CPUID_XFAM_10H 0x00100000
> +#define CPUID_XFAM_11H 0x00200000
> +#define CPUID_XMOD 0x000f0000
> +#define CPUID_XMOD_REV_F 0x00040000
> +
> +/* AMD systems with C1E don't have a working lAPIC timer. Check for that. */
> +static __cpuinit int amd_apic_timer_broken(void)
> +{
> + u32 lo, hi, eax = cpuid_eax(CPUID_PROCESSOR_SIGNATURE);
> +
> + switch (eax & CPUID_XFAM) {
> + case CPUID_XFAM_K8:
> + if ((eax & CPUID_XMOD) < CPUID_XMOD_REV_F)
> + break;
> + case CPUID_XFAM_10H:
> + case CPUID_XFAM_11H:
> + rdmsr(MSR_K8_ENABLE_C1E, lo, hi);
> + if (lo & ENABLE_C1E_MASK)
> + return 1;
> + break;
> + default:
> + /* err on the side of caution */
> + return 1;
> + }
> + return 0;
> +}
This needs to be done in 32-bit kernel, too, right?
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists