cpu.c File Reference

#include <console/console.h>
#include <cpu/cpu.h>
#include <arch/io.h>
#include <string.h>
#include <cpu/x86/mtrr.h>
#include <cpu/x86/msr.h>
#include <cpu/x86/lapic.h>
#include <arch/cpu.h>
#include <device/path.h>
#include <device/device.h>
#include <smp/spinlock.h>

Include dependency graph for cpu.c:

Go to the source code of this file.

Functions

static int flag_is_changeable_p (uint32_t flag)
static int have_cpuid_p (void)
static int test_cyrix_52div (void)
static int deep_magic_nexgen_probe (void)
static const char * cpu_vendor_name (int vendor)
static void identify_cpu (struct device *cpu)
static void set_cpu_ops (struct device *cpu)
void cpu_initialize (void)

Variables

struct {
   int   vendor
   const char *   name
x86_vendors []
static const char * x86_vendor_name []


Function Documentation

void cpu_initialize ( void   ) 

Definition at line 215 of file cpu.c.

Referenced by initialize_cpus().

Here is the caller graph for this function:

static const char* cpu_vendor_name ( int  vendor  )  [static]

Definition at line 122 of file cpu.c.

References ARRAY_SIZE, name, and x86_vendor_name.

Referenced by cpu_initialize().

Here is the caller graph for this function:

static int deep_magic_nexgen_probe ( void   )  [static]

Definition at line 72 of file cpu.c.

References __asm__(), and ret.

Referenced by identify_cpu().

Here is the call graph for this function:

Here is the caller graph for this function:

static int flag_is_changeable_p ( uint32_t  flag  )  [inline, static]

Definition at line 14 of file cpu.c.

Referenced by have_cpuid_p(), and identify_cpu().

Here is the caller graph for this function:

static int have_cpuid_p ( void   )  [static]

Definition at line 36 of file cpu.c.

References flag_is_changeable_p(), and X86_EFLAGS_ID.

Referenced by identify_cpu().

Here is the call graph for this function:

Here is the caller graph for this function:

static void identify_cpu ( struct device cpu  )  [static]

Definition at line 134 of file cpu.c.

References ARRAY_SIZE, cpuid(), cpuid_eax(), deep_magic_nexgen_probe(), device::device, flag_is_changeable_p(), have_cpuid_p(), memcmp(), memcpy(), name, test_cyrix_52div(), device::vendor, X86_EFLAGS_AC, X86_VENDOR_UNKNOWN, and x86_vendors.

Referenced by cpu_initialize().

Here is the call graph for this function:

Here is the caller graph for this function:

static void set_cpu_ops ( struct device cpu  )  [static]

Definition at line 196 of file cpu.c.

References cpu_drivers, device::device, ecpu_drivers, cpu_driver::id_table, cpu_driver::ops, device::ops, device::vendor, and X86_VENDOR_INVALID.

Referenced by cpu_initialize().

Here is the caller graph for this function:

static int test_cyrix_52div ( void   )  [inline, static]

Definition at line 51 of file cpu.c.

References __asm__().

Referenced by identify_cpu().

Here is the call graph for this function:

Here is the caller graph for this function:


Variable Documentation

const char* name

int vendor

const char* x86_vendor_name[] [static]

Initial value:

 {
        [X86_VENDOR_INTEL]     = "Intel",
        [X86_VENDOR_CYRIX]     = "Cyrix",
        [X86_VENDOR_AMD]       = "AMD",
        [X86_VENDOR_UMC]       = "UMC",
        [X86_VENDOR_NEXGEN]    = "NexGen",
        [X86_VENDOR_CENTAUR]   = "Centaur",
        [X86_VENDOR_RISE]      = "Rise",
        [X86_VENDOR_TRANSMETA] = "Transmeta",
        [X86_VENDOR_NSC]       = "NSC",
        [X86_VENDOR_SIS]       = "SiS",
}

Definition at line 109 of file cpu.c.

Referenced by cpu_vendor_name().

struct { ... } x86_vendors[] [static]

Referenced by identify_cpu().


Generated on Wed Jan 7 14:15:47 2009 for coreboot by  doxygen 1.5.5