![]() |
coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
|
#include <console/console.h>
#include <device/device.h>
#include <cpu/cpu.h>
#include <cpu/x86/mtrr.h>
#include <cpu/x86/msr.h>
#include <cpu/x86/mp.h>
#include <cpu/intel/microcode.h>
#include <cpu/intel/speedstep.h>
#include <cpu/intel/turbo.h>
#include <cpu/x86/cache.h>
#include <cpu/x86/name.h>
#include "model_206ax.h"
#include "chip.h"
#include <cpu/intel/smm_reloc.h>
#include <cpu/intel/common/common.h>
#include <smbios.h>
#include <types.h>
Go to the source code of this file.
Functions | |
int | cpu_config_tdp_levels (void) |
void | set_power_limits (u8 power_limit_1_time) |
static void | configure_c_states (void) |
static void | configure_thermal_target (void) |
static void | configure_misc (void) |
static void | set_max_ratio (void) |
unsigned int | smbios_cpu_get_max_speed_mhz (void) |
unsigned int | smbios_cpu_get_current_speed_mhz (void) |
unsigned int | smbios_processor_external_clock (void) |
static void | model_206ax_report (void) |
static void | model_206ax_init (struct device *cpu) |
static void | pre_mp_init (void) |
static int | get_cpu_count (void) |
static void | get_microcode_info (const void **microcode, int *parallel) |
static void | per_cpu_smm_trigger (void) |
static void | post_mp_init (void) |
void | mp_init_cpus (struct bus *cpu_bus) |
Variables | |
static const u8 | power_limit_time_sec_to_msr [] |
static const u8 | power_limit_time_msr_to_sec [] |
static const struct mp_ops | mp_ops |
static struct device_operations | cpu_dev_ops |
static const struct cpu_device_id | cpu_table [] |
static const struct cpu_driver driver | __cpu_driver |
Definition at line 158 of file model_206ax_init.c.
References cpuid_eax(), msr_struct::hi, IRTL_1024_NS, IRTL_VALID, msr_struct::lo, MSR_MISC_PWR_MGMT, MSR_PKG_CST_CONFIG_CONTROL, MSR_PKGC3_IRTL, MSR_PKGC6_IRTL, MSR_PKGC7_IRTL, MSR_POWER_CTL, MSR_PP0_CURRENT_CONFIG, MSR_PP1_CURRENT_CONFIG, PP0_CURRENT_LIMIT, PP1_CURRENT_LIMIT_IVB, PP1_CURRENT_LIMIT_SNB, rdmsr(), and wrmsr().
Referenced by model_206ax_init().
Definition at line 236 of file model_206ax_init.c.
References msr_struct::hi, IA32_MISC_ENABLE, IA32_PACKAGE_THERM_INTERRUPT, IA32_THERM_INTERRUPT, msr_struct::lo, rdmsr(), and wrmsr().
Referenced by model_206ax_init().
Definition at line 214 of file model_206ax_init.c.
References device::chip_info, dev_find_lapic(), msr_struct::lo, MSR_PLATFORM_INFO, MSR_TEMPERATURE_TARGET, rdmsr(), SPEEDSTEP_APIC_MAGIC, cpu_intel_model_206ax_config::tcc_offset, and wrmsr().
Referenced by model_206ax_init().
int cpu_config_tdp_levels | ( | void | ) |
Definition at line 79 of file model_206ax_init.c.
References cpuid_eax(), msr_struct::hi, IVB_CONFIG_TDP_MIN_CPUID, MSR_PLATFORM_INFO, and rdmsr().
Referenced by set_max_ratio(), and set_power_limits().
|
static |
Definition at line 375 of file model_206ax_init.c.
References BIOS_DEBUG, msr_struct::lo, MSR_CORE_THREAD_COUNT, printk, and rdmsr().
Definition at line 390 of file model_206ax_init.c.
References intel_ht_supported(), and intel_microcode_find().
Definition at line 325 of file model_206ax_init.c.
References configure_c_states(), configure_dca_cap(), configure_misc(), configure_thermal_target(), enable_lapic_tpr(), enable_turbo(), ENERGY_POLICY_NORMAL, mca_clear_status(), model_206ax_report(), set_aesni_lock(), set_energy_perf_bias(), set_max_ratio(), and set_vmx_and_lock().
Definition at line 298 of file model_206ax_init.c.
References BIOS_INFO, cpu_get_cpuid(), cpu_get_feature_flags_ecx(), cpu_id, CPUID_AES, CPUID_SMX, CPUID_VMX, fill_processor_name(), get_platform_id(), printk, and processor_name.
Referenced by model_206ax_init().
Definition at line 427 of file model_206ax_init.c.
Definition at line 396 of file model_206ax_init.c.
References intel_microcode_find(), intel_microcode_load_unlocked(), microcode_patch, and smm_relocate().
Definition at line 406 of file model_206ax_init.c.
Definition at line 368 of file model_206ax_init.c.
References x86_mtrr_check(), and x86_setup_mtrrs_with_detect().
Definition at line 257 of file model_206ax_init.c.
References BIOS_DEBUG, cpu_config_tdp_levels(), msr_struct::hi, IA32_PERF_CTL, msr_struct::lo, MSR_CONFIG_TDP_NOMINAL, MSR_PLATFORM_INFO, printk, rdmsr(), SANDYBRIDGE_BCLK, and wrmsr().
Referenced by model_206ax_init().
Definition at line 96 of file model_206ax_init.c.
References ARRAY_SIZE, BIOS_DEBUG, cpu_config_tdp_levels(), msr_struct::hi, msr_struct::lo, MCH_DDR_POWER_LIMIT_HI, MCH_DDR_POWER_LIMIT_LO, MCH_PKG_POWER_LIMIT_HI, MCH_PKG_POWER_LIMIT_LO, mchbar_read32(), mchbar_write32(), MSR_CONFIG_TDP_NOMINAL, MSR_DDR_RAPL_LIMIT, MSR_PKG_POWER_LIMIT, MSR_PKG_POWER_SKU, MSR_PKG_POWER_SKU_UNIT, MSR_PLATFORM_INFO, MSR_TURBO_ACTIVATION_RATIO, PKG_POWER_LIMIT_EN, PKG_POWER_LIMIT_MASK, PKG_POWER_LIMIT_TIME_MASK, PKG_POWER_LIMIT_TIME_SHIFT, PLATFORM_INFO_SET_TDP, power_limit_time_msr_to_sec, power_limit_time_sec_to_msr, printk, rdmsr(), and wrmsr().
Referenced by northbridge_init(), soc_init(), soc_systemagent_init(), and systemagent_init().
Definition at line 286 of file model_206ax_init.c.
References msr_struct::lo, MSR_PLATFORM_INFO, rdmsr(), and SANDYBRIDGE_BCLK.
Definition at line 279 of file model_206ax_init.c.
References msr_struct::lo, MSR_TURBO_RATIO_LIMIT, rdmsr(), and SANDYBRIDGE_BCLK.
Definition at line 293 of file model_206ax_init.c.
References SANDYBRIDGE_BCLK.
|
static |
Definition at line 427 of file model_206ax_init.c.
|
static |
Definition at line 427 of file model_206ax_init.c.
|
static |
Definition at line 427 of file model_206ax_init.c.
Definition at line 406 of file model_206ax_init.c.
|
static |
Definition at line 51 of file model_206ax_init.c.
Referenced by set_power_limits().
|
static |
Definition at line 22 of file model_206ax_init.c.
Referenced by set_power_limits().