coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
cpu.h File Reference
#include <types.h>
Include dependency graph for cpu.h:

Go to the source code of this file.

Data Structures

struct  cpuid_result
 
struct  cpu_device_id
 
struct  cpu_driver
 
struct  cpu_info
 
struct  per_cpu_segment_data
 
struct  cpuinfo_x86
 
struct  cpu_cache_info
 

Macros

#define X86_EFLAGS_CF   0x00000001 /* Carry Flag */
 
#define X86_EFLAGS_PF   0x00000004 /* Parity Flag */
 
#define X86_EFLAGS_AF   0x00000010 /* Auxiliary carry Flag */
 
#define X86_EFLAGS_ZF   0x00000040 /* Zero Flag */
 
#define X86_EFLAGS_SF   0x00000080 /* Sign Flag */
 
#define X86_EFLAGS_TF   0x00000100 /* Trap Flag */
 
#define X86_EFLAGS_IF   0x00000200 /* Interrupt Flag */
 
#define X86_EFLAGS_DF   0x00000400 /* Direction Flag */
 
#define X86_EFLAGS_OF   0x00000800 /* Overflow Flag */
 
#define X86_EFLAGS_IOPL   0x00003000 /* IOPL mask */
 
#define X86_EFLAGS_NT   0x00004000 /* Nested Task */
 
#define X86_EFLAGS_RF   0x00010000 /* Resume Flag */
 
#define X86_EFLAGS_VM   0x00020000 /* Virtual Mode */
 
#define X86_EFLAGS_AC   0x00040000 /* Alignment Check */
 
#define X86_EFLAGS_VIF   0x00080000 /* Virtual Interrupt Flag */
 
#define X86_EFLAGS_VIP   0x00100000 /* Virtual Interrupt Pending */
 
#define X86_EFLAGS_ID   0x00200000 /* CPUID detection flag */
 
#define X86_VENDOR_INVALID   0
 
#define X86_VENDOR_INTEL   1
 
#define X86_VENDOR_CYRIX   2
 
#define X86_VENDOR_AMD   3
 
#define X86_VENDOR_UMC   4
 
#define X86_VENDOR_NEXGEN   5
 
#define X86_VENDOR_CENTAUR   6
 
#define X86_VENDOR_RISE   7
 
#define X86_VENDOR_TRANSMETA   8
 
#define X86_VENDOR_NSC   9
 
#define X86_VENDOR_SIS   10
 
#define X86_VENDOR_HYGON   11
 
#define X86_VENDOR_ANY   0xfe
 
#define X86_VENDOR_UNKNOWN   0xff
 
#define CPUID_FEATURE_PAE   (1 << 6)
 
#define CPUID_FEATURE_PSE36   (1 << 17)
 
#define CPUID_FEAURE_HTT   (1 << 28)
 
#define CPUID_CACHE(x, res)    (((res) >> CPUID_CACHE_##x##_SHIFT) & CPUID_CACHE_##x##_MASK)
 
#define CPUID_CACHE_SHARING_CACHE_SHIFT   14
 
#define CPUID_CACHE_SHARING_CACHE_MASK   0xfff
 
#define CPUID_CACHE_SHARING_CACHE(res)   CPUID_CACHE(SHARING_CACHE, (res).eax)
 
#define CPUID_CACHE_FULL_ASSOC_SHIFT   9
 
#define CPUID_CACHE_FULL_ASSOC_MASK   0x1
 
#define CPUID_CACHE_FULL_ASSOC(res)   CPUID_CACHE(FULL_ASSOC, (res).eax)
 
#define CPUID_CACHE_SELF_INIT_SHIFT   8
 
#define CPUID_CACHE_SELF_INIT_MASK   0x1
 
#define CPUID_CACHE_SELF_INIT(res)   CPUID_CACHE(SELF_INIT, (res).eax)
 
#define CPUID_CACHE_LEVEL_SHIFT   5
 
#define CPUID_CACHE_LEVEL_MASK   0x7
 
#define CPUID_CACHE_LEVEL(res)   CPUID_CACHE(LEVEL, (res).eax)
 
#define CPUID_CACHE_TYPE_SHIFT   0
 
#define CPUID_CACHE_TYPE_MASK   0x1f
 
#define CPUID_CACHE_TYPE(res)   CPUID_CACHE(TYPE, (res).eax)
 
#define CPUID_CACHE_WAYS_OF_ASSOC_SHIFT   22
 
#define CPUID_CACHE_WAYS_OF_ASSOC_MASK   0x3ff
 
#define CPUID_CACHE_WAYS_OF_ASSOC(res)   CPUID_CACHE(WAYS_OF_ASSOC, (res).ebx)
 
#define CPUID_CACHE_PHYS_LINE_SHIFT   12
 
#define CPUID_CACHE_PHYS_LINE_MASK   0x3ff
 
#define CPUID_CACHE_PHYS_LINE(res)   CPUID_CACHE(PHYS_LINE, (res).ebx)
 
#define CPUID_CACHE_COHER_LINE_SHIFT   0
 
#define CPUID_CACHE_COHER_LINE_MASK   0xfff
 
#define CPUID_CACHE_COHER_LINE(res)   CPUID_CACHE(COHER_LINE, (res).ebx)
 
#define CPUID_CACHE_NO_OF_SETS_SHIFT   0
 
#define CPUID_CACHE_NO_OF_SETS_MASK   0xffffffff
 
#define CPUID_CACHE_NO_OF_SETS(res)   CPUID_CACHE(NO_OF_SETS, (res).ecx)
 
#define asmlinkage   __attribute__((regparm(0)))
 
#define DETERMINISTIC_CACHE_PARAMETERS_CPUID_IA   0x04
 
#define DETERMINISTIC_CACHE_PARAMETERS_CPUID_AMD   0x8000001d
 

Enumerations

enum  cache_level {
  CACHE_L1D = 0 , CACHE_L1I = 1 , CACHE_L2 = 2 , CACHE_L3 = 3 ,
  CACHE_LINV = 0xFF
}
 
enum  cpu_type { CPUID_COMMAND_UNSUPPORTED = 0 , CPUID_TYPE_AMD = 1 , CPUID_TYPE_INTEL = 2 , CPUID_TYPE_INVALID = 0xFF }
 

Functions

static struct cpuid_result cpuid (int op)
 
static struct cpuid_result cpuid_ext (int op, unsigned int ecx)
 
static unsigned int cpuid_eax (unsigned int op)
 
static unsigned int cpuid_ebx (unsigned int op)
 
static unsigned int cpuid_ecx (unsigned int op)
 
static unsigned int cpuid_edx (unsigned int op)
 
static unsigned int cpuid_get_max_func (void)
 
unsigned int cpu_cpuid_extended_level (void)
 
int cpu_have_cpuid (void)
 
static bool cpu_is_amd (void)
 
static bool cpu_is_intel (void)
 
struct cpu_driverfind_cpu_driver (struct device *cpu)
 
static struct cpu_infocpu_info (void)
 
static void get_fms (struct cpuinfo_x86 *c, uint32_t tfms)
 
static __always_inline void cpu_relax (void)
 
asmlinkage void car_stage_entry (void)
 
uint32_t cpu_get_cpuid (void)
 
uint32_t cpu_get_feature_flags_ecx (void)
 
uint32_t cpu_get_feature_flags_edx (void)
 
int cpu_index (void)
 
enum cpu_type cpu_check_deterministic_cache_cpuid_supported (void)
 
size_t cpu_get_cache_ways_assoc_info (const struct cpu_cache_info *info)
 
uint8_t cpu_get_cache_type (const struct cpu_cache_info *info)
 
uint8_t cpu_get_cache_level (const struct cpu_cache_info *info)
 
size_t cpu_get_cache_phy_partition_info (const struct cpu_cache_info *info)
 
size_t cpu_get_cache_line_size (const struct cpu_cache_info *info)
 
size_t cpu_get_cache_sets (const struct cpu_cache_info *info)
 
bool cpu_is_cache_full_assoc (const struct cpu_cache_info *info)
 
size_t cpu_get_max_cache_share (const struct cpu_cache_info *info)
 
size_t get_cache_size (const struct cpu_cache_info *info)
 
bool fill_cpu_cache_info (uint8_t level, struct cpu_cache_info *info)
 

Macro Definition Documentation

◆ asmlinkage

#define asmlinkage   __attribute__((regparm(0)))

Definition at line 296 of file cpu.h.

◆ CPUID_CACHE

#define CPUID_CACHE (   x,
  res 
)     (((res) >> CPUID_CACHE_##x##_SHIFT) & CPUID_CACHE_##x##_MASK)

Definition at line 158 of file cpu.h.

◆ CPUID_CACHE_COHER_LINE

#define CPUID_CACHE_COHER_LINE (   res)    CPUID_CACHE(COHER_LINE, (res).ebx)

Definition at line 193 of file cpu.h.

◆ CPUID_CACHE_COHER_LINE_MASK

#define CPUID_CACHE_COHER_LINE_MASK   0xfff

Definition at line 192 of file cpu.h.

◆ CPUID_CACHE_COHER_LINE_SHIFT

#define CPUID_CACHE_COHER_LINE_SHIFT   0

Definition at line 191 of file cpu.h.

◆ CPUID_CACHE_FULL_ASSOC

#define CPUID_CACHE_FULL_ASSOC (   res)    CPUID_CACHE(FULL_ASSOC, (res).eax)

Definition at line 167 of file cpu.h.

◆ CPUID_CACHE_FULL_ASSOC_MASK

#define CPUID_CACHE_FULL_ASSOC_MASK   0x1

Definition at line 166 of file cpu.h.

◆ CPUID_CACHE_FULL_ASSOC_SHIFT

#define CPUID_CACHE_FULL_ASSOC_SHIFT   9

Definition at line 165 of file cpu.h.

◆ CPUID_CACHE_LEVEL

#define CPUID_CACHE_LEVEL (   res)    CPUID_CACHE(LEVEL, (res).eax)

Definition at line 175 of file cpu.h.

◆ CPUID_CACHE_LEVEL_MASK

#define CPUID_CACHE_LEVEL_MASK   0x7

Definition at line 174 of file cpu.h.

◆ CPUID_CACHE_LEVEL_SHIFT

#define CPUID_CACHE_LEVEL_SHIFT   5

Definition at line 173 of file cpu.h.

◆ CPUID_CACHE_NO_OF_SETS

#define CPUID_CACHE_NO_OF_SETS (   res)    CPUID_CACHE(NO_OF_SETS, (res).ecx)

Definition at line 199 of file cpu.h.

◆ CPUID_CACHE_NO_OF_SETS_MASK

#define CPUID_CACHE_NO_OF_SETS_MASK   0xffffffff

Definition at line 198 of file cpu.h.

◆ CPUID_CACHE_NO_OF_SETS_SHIFT

#define CPUID_CACHE_NO_OF_SETS_SHIFT   0

Definition at line 197 of file cpu.h.

◆ CPUID_CACHE_PHYS_LINE

#define CPUID_CACHE_PHYS_LINE (   res)    CPUID_CACHE(PHYS_LINE, (res).ebx)

Definition at line 189 of file cpu.h.

◆ CPUID_CACHE_PHYS_LINE_MASK

#define CPUID_CACHE_PHYS_LINE_MASK   0x3ff

Definition at line 188 of file cpu.h.

◆ CPUID_CACHE_PHYS_LINE_SHIFT

#define CPUID_CACHE_PHYS_LINE_SHIFT   12

Definition at line 187 of file cpu.h.

◆ CPUID_CACHE_SELF_INIT

#define CPUID_CACHE_SELF_INIT (   res)    CPUID_CACHE(SELF_INIT, (res).eax)

Definition at line 171 of file cpu.h.

◆ CPUID_CACHE_SELF_INIT_MASK

#define CPUID_CACHE_SELF_INIT_MASK   0x1

Definition at line 170 of file cpu.h.

◆ CPUID_CACHE_SELF_INIT_SHIFT

#define CPUID_CACHE_SELF_INIT_SHIFT   8

Definition at line 169 of file cpu.h.

◆ CPUID_CACHE_SHARING_CACHE

#define CPUID_CACHE_SHARING_CACHE (   res)    CPUID_CACHE(SHARING_CACHE, (res).eax)

Definition at line 163 of file cpu.h.

◆ CPUID_CACHE_SHARING_CACHE_MASK

#define CPUID_CACHE_SHARING_CACHE_MASK   0xfff

Definition at line 162 of file cpu.h.

◆ CPUID_CACHE_SHARING_CACHE_SHIFT

#define CPUID_CACHE_SHARING_CACHE_SHIFT   14

Definition at line 161 of file cpu.h.

◆ CPUID_CACHE_TYPE

#define CPUID_CACHE_TYPE (   res)    CPUID_CACHE(TYPE, (res).eax)

Definition at line 179 of file cpu.h.

◆ CPUID_CACHE_TYPE_MASK

#define CPUID_CACHE_TYPE_MASK   0x1f

Definition at line 178 of file cpu.h.

◆ CPUID_CACHE_TYPE_SHIFT

#define CPUID_CACHE_TYPE_SHIFT   0

Definition at line 177 of file cpu.h.

◆ CPUID_CACHE_WAYS_OF_ASSOC

#define CPUID_CACHE_WAYS_OF_ASSOC (   res)    CPUID_CACHE(WAYS_OF_ASSOC, (res).ebx)

Definition at line 185 of file cpu.h.

◆ CPUID_CACHE_WAYS_OF_ASSOC_MASK

#define CPUID_CACHE_WAYS_OF_ASSOC_MASK   0x3ff

Definition at line 184 of file cpu.h.

◆ CPUID_CACHE_WAYS_OF_ASSOC_SHIFT

#define CPUID_CACHE_WAYS_OF_ASSOC_SHIFT   22

Definition at line 183 of file cpu.h.

◆ CPUID_FEATURE_PAE

#define CPUID_FEATURE_PAE   (1 << 6)

Definition at line 152 of file cpu.h.

◆ CPUID_FEATURE_PSE36

#define CPUID_FEATURE_PSE36   (1 << 17)

Definition at line 153 of file cpu.h.

◆ CPUID_FEAURE_HTT

#define CPUID_FEAURE_HTT   (1 << 28)

Definition at line 154 of file cpu.h.

◆ DETERMINISTIC_CACHE_PARAMETERS_CPUID_AMD

#define DETERMINISTIC_CACHE_PARAMETERS_CPUID_AMD   0x8000001d

Definition at line 337 of file cpu.h.

◆ DETERMINISTIC_CACHE_PARAMETERS_CPUID_IA

#define DETERMINISTIC_CACHE_PARAMETERS_CPUID_IA   0x04

Definition at line 336 of file cpu.h.

◆ X86_EFLAGS_AC

#define X86_EFLAGS_AC   0x00040000 /* Alignment Check */

Definition at line 24 of file cpu.h.

◆ X86_EFLAGS_AF

#define X86_EFLAGS_AF   0x00000010 /* Auxiliary carry Flag */

Definition at line 13 of file cpu.h.

◆ X86_EFLAGS_CF

#define X86_EFLAGS_CF   0x00000001 /* Carry Flag */

Definition at line 11 of file cpu.h.

◆ X86_EFLAGS_DF

#define X86_EFLAGS_DF   0x00000400 /* Direction Flag */

Definition at line 18 of file cpu.h.

◆ X86_EFLAGS_ID

#define X86_EFLAGS_ID   0x00200000 /* CPUID detection flag */

Definition at line 27 of file cpu.h.

◆ X86_EFLAGS_IF

#define X86_EFLAGS_IF   0x00000200 /* Interrupt Flag */

Definition at line 17 of file cpu.h.

◆ X86_EFLAGS_IOPL

#define X86_EFLAGS_IOPL   0x00003000 /* IOPL mask */

Definition at line 20 of file cpu.h.

◆ X86_EFLAGS_NT

#define X86_EFLAGS_NT   0x00004000 /* Nested Task */

Definition at line 21 of file cpu.h.

◆ X86_EFLAGS_OF

#define X86_EFLAGS_OF   0x00000800 /* Overflow Flag */

Definition at line 19 of file cpu.h.

◆ X86_EFLAGS_PF

#define X86_EFLAGS_PF   0x00000004 /* Parity Flag */

Definition at line 12 of file cpu.h.

◆ X86_EFLAGS_RF

#define X86_EFLAGS_RF   0x00010000 /* Resume Flag */

Definition at line 22 of file cpu.h.

◆ X86_EFLAGS_SF

#define X86_EFLAGS_SF   0x00000080 /* Sign Flag */

Definition at line 15 of file cpu.h.

◆ X86_EFLAGS_TF

#define X86_EFLAGS_TF   0x00000100 /* Trap Flag */

Definition at line 16 of file cpu.h.

◆ X86_EFLAGS_VIF

#define X86_EFLAGS_VIF   0x00080000 /* Virtual Interrupt Flag */

Definition at line 25 of file cpu.h.

◆ X86_EFLAGS_VIP

#define X86_EFLAGS_VIP   0x00100000 /* Virtual Interrupt Pending */

Definition at line 26 of file cpu.h.

◆ X86_EFLAGS_VM

#define X86_EFLAGS_VM   0x00020000 /* Virtual Mode */

Definition at line 23 of file cpu.h.

◆ X86_EFLAGS_ZF

#define X86_EFLAGS_ZF   0x00000040 /* Zero Flag */

Definition at line 14 of file cpu.h.

◆ X86_VENDOR_AMD

#define X86_VENDOR_AMD   3

Definition at line 140 of file cpu.h.

◆ X86_VENDOR_ANY

#define X86_VENDOR_ANY   0xfe

Definition at line 149 of file cpu.h.

◆ X86_VENDOR_CENTAUR

#define X86_VENDOR_CENTAUR   6

Definition at line 143 of file cpu.h.

◆ X86_VENDOR_CYRIX

#define X86_VENDOR_CYRIX   2

Definition at line 139 of file cpu.h.

◆ X86_VENDOR_HYGON

#define X86_VENDOR_HYGON   11

Definition at line 148 of file cpu.h.

◆ X86_VENDOR_INTEL

#define X86_VENDOR_INTEL   1

Definition at line 138 of file cpu.h.

◆ X86_VENDOR_INVALID

#define X86_VENDOR_INVALID   0

Definition at line 137 of file cpu.h.

◆ X86_VENDOR_NEXGEN

#define X86_VENDOR_NEXGEN   5

Definition at line 142 of file cpu.h.

◆ X86_VENDOR_NSC

#define X86_VENDOR_NSC   9

Definition at line 146 of file cpu.h.

◆ X86_VENDOR_RISE

#define X86_VENDOR_RISE   7

Definition at line 144 of file cpu.h.

◆ X86_VENDOR_SIS

#define X86_VENDOR_SIS   10

Definition at line 147 of file cpu.h.

◆ X86_VENDOR_TRANSMETA

#define X86_VENDOR_TRANSMETA   8

Definition at line 145 of file cpu.h.

◆ X86_VENDOR_UMC

#define X86_VENDOR_UMC   4

Definition at line 141 of file cpu.h.

◆ X86_VENDOR_UNKNOWN

#define X86_VENDOR_UNKNOWN   0xff

Definition at line 150 of file cpu.h.

Enumeration Type Documentation

◆ cache_level

Enumerator
CACHE_L1D 
CACHE_L1I 
CACHE_L2 
CACHE_L3 
CACHE_LINV 

Definition at line 339 of file cpu.h.

◆ cpu_type

enum cpu_type
Enumerator
CPUID_COMMAND_UNSUPPORTED 
CPUID_TYPE_AMD 
CPUID_TYPE_INTEL 
CPUID_TYPE_INVALID 

Definition at line 347 of file cpu.h.

Function Documentation

◆ car_stage_entry()

◆ cpu_check_deterministic_cache_cpuid_supported()

enum cpu_type cpu_check_deterministic_cache_cpuid_supported ( void  )

Definition at line 81 of file cpu_common.c.

References cpuid_edx().

Referenced by cpu_get_cache_info_leaf(), and smbios_write_type7_cache_parameters().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cpu_cpuid_extended_level()

unsigned int cpu_cpuid_extended_level ( void  )

Definition at line 41 of file cpu_common.c.

References cpuid_eax().

Referenced by cpu_phys_address_size().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cpu_get_cache_level()

uint8_t cpu_get_cache_level ( const struct cpu_cache_info info)

Definition at line 135 of file cpu_common.c.

References info.

◆ cpu_get_cache_line_size()

size_t cpu_get_cache_line_size ( const struct cpu_cache_info info)

Definition at line 151 of file cpu_common.c.

References info.

◆ cpu_get_cache_phy_partition_info()

size_t cpu_get_cache_phy_partition_info ( const struct cpu_cache_info info)

Definition at line 143 of file cpu_common.c.

References info.

◆ cpu_get_cache_sets()

size_t cpu_get_cache_sets ( const struct cpu_cache_info info)

Definition at line 159 of file cpu_common.c.

References info.

◆ cpu_get_cache_type()

uint8_t cpu_get_cache_type ( const struct cpu_cache_info info)

Definition at line 127 of file cpu_common.c.

References info.

◆ cpu_get_cache_ways_assoc_info()

size_t cpu_get_cache_ways_assoc_info ( const struct cpu_cache_info info)

Definition at line 119 of file cpu_common.c.

References info.

◆ cpu_get_cpuid()

◆ cpu_get_feature_flags_ecx()

uint32_t cpu_get_feature_flags_ecx ( void  )

Definition at line 72 of file cpu_common.c.

References cpuid_ecx().

Referenced by configure_dca_cap(), enable_lapic(), is_txt_cpu(), model_206ax_report(), report_cpu_info(), set_aesni_lock(), set_feature_ctrl_lock(), and set_feature_ctrl_vmx_arg().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cpu_get_feature_flags_edx()

uint32_t cpu_get_feature_flags_edx ( void  )

Definition at line 81 of file cpu_common.c.

Referenced by smp_write_processors().

Here is the caller graph for this function:

◆ cpu_get_max_cache_share()

size_t cpu_get_max_cache_share ( const struct cpu_cache_info info)

Definition at line 175 of file cpu_common.c.

References info.

◆ cpu_have_cpuid()

int cpu_have_cpuid ( void  )

◆ cpu_index()

int cpu_index ( void  )

Definition at line 332 of file cpu.c.

References cpu_get_apic_id(), and initial_lapicid().

Referenced by acpi_create_srat_lapics(), ap_wait_for_instruction(), get_cpu_index(), mp_get_processor_info(), mp_identify_processor(), mp_startup_all_aps(), mp_startup_all_cpus(), mp_startup_this_ap(), set_cpu_type(), and x86_exception().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cpu_info()

static struct cpu_info* cpu_info ( void  )
inlinestatic

Definition at line 252 of file cpu.h.

References ALIGN_UP, info, NULL, offset, offsetof, and s.

Referenced by allocate_cpu_devices(), ap_init(), cpu_initialize(), init_bsp(), initialize_cpus(), and mp_initialize_cpu().

Here is the caller graph for this function:

◆ cpu_is_amd()

static bool cpu_is_amd ( void  )
inlinestatic

Definition at line 204 of file cpu.h.

References CONFIG.

◆ cpu_is_cache_full_assoc()

bool cpu_is_cache_full_assoc ( const struct cpu_cache_info info)

Definition at line 167 of file cpu_common.c.

References info.

◆ cpu_is_intel()

static bool cpu_is_intel ( void  )
inlinestatic

Definition at line 209 of file cpu.h.

References CONFIG.

Referenced by ap_init().

Here is the caller graph for this function:

◆ cpu_relax()

static __always_inline void cpu_relax ( void  )
static

Definition at line 291 of file cpu.h.

◆ cpuid()

static struct cpuid_result cpuid ( int  op)
inlinestatic

Definition at line 1 of file cpu.h.

◆ cpuid_eax()

◆ cpuid_ebx()

static unsigned int cpuid_ebx ( unsigned int  op)
inlinestatic

Definition at line 92 of file cpu.h.

References cpuid_result::eax, and cpuid_result::ebx.

Referenced by gen_crat_tlb_entry(), generate_cpu_entries(), get_threads_per_core(), and initial_lapicid().

Here is the caller graph for this function:

◆ cpuid_ecx()

static unsigned int cpuid_ecx ( unsigned int  op)
inlinestatic

◆ cpuid_edx()

static unsigned int cpuid_edx ( unsigned int  op)
inlinestatic

◆ cpuid_ext()

◆ cpuid_get_max_func()

static unsigned int cpuid_get_max_func ( void  )
inlinestatic

Definition at line 132 of file cpu.h.

References cpuid_eax().

Referenced by calculate_tsc_freq_from_core_crystal(), get_cpu_core_thread_bits(), get_freq_from_cpuid16h(), get_number_of_caches(), initial_lapicid(), intel_ht_sibling(), smbios_write_type4(), and update_board_layout().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ fill_cpu_cache_info()

bool fill_cpu_cache_info ( uint8_t  level,
struct cpu_cache_info info 
)

◆ find_cpu_driver()

struct cpu_driver* find_cpu_driver ( struct device cpu)

Definition at line 190 of file cpu.c.

References _cpu_drivers, _ecpu_drivers, cpu_device_id::device, device::device, cpu_driver::id_table, NULL, cpu_device_id::vendor, device::vendor, X86_VENDOR_ANY, and X86_VENDOR_INVALID.

Referenced by set_cpu_ops().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_cache_size()

size_t get_cache_size ( const struct cpu_cache_info info)

Definition at line 183 of file cpu_common.c.

References info.

Referenced by fill_cpu_cache_info(), and report_cache_info().

Here is the caller graph for this function:

◆ get_fms()

static void get_fms ( struct cpuinfo_x86 c,
uint32_t  tfms 
)
inlinestatic

Definition at line 278 of file cpu.h.

References c.

Referenced by cpu_has_alternative_smrr(), cpu_initialize(), find_cbfs_microcode(), get_cores_per_package(), get_fsb_tsc(), get_processor_model(), pch_setup_cir(), and platform_prog_run().

Here is the caller graph for this function: