lkml.org 
[lkml]   [2008]   [May]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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


\
 
 \ /
  Last update: 2008-05-23 15:25    [W:0.029 / U:0.824 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site