26 const unsigned int cores = (cpuid1.
ebx >> 16) & 0xf;
46 #define SMRR_SUPPORTED (1 << 11)
57 if (ia32_ft_ctrl.
lo & (1 << 0)) {
62 ia32_ft_ctrl.
lo & (1 << 3) ?
"" :
"not ");
64 if (!
CONFIG(SET_IA32_FC_LOCK_BIT))
66 "Overriding CONFIG(SET_IA32_FC_LOCK_BIT) to enable SMRR\n");
67 ia32_ft_ctrl.
lo |= (1 << 3) | (1 << 0);
#define printk(level,...)
void set_feature_ctrl_vmx(void)
void set_vmx_and_lock(void)
bool intel_ht_supported(void)
void smm_relocation_handler(int cpu, uintptr_t curr_smbase, uintptr_t staggered_smbase)
void smm_initialize(void)
void smm_info(uintptr_t *perm_smbase, size_t *perm_smsize, size_t *smm_save_state_size)
static void get_microcode_info(const void **microcode, int *parallel)
void mp_init_cpus(struct bus *cpu_bus)
static void pre_mp_init(void)
static void per_cpu_smm_trigger(void)
static void pre_mp_smm_init(void)
static int get_cpu_count(void)
static void post_mp_init(void)
bool cpu_has_alternative_smrr(void)
enum cb_err mp_init_with_smm(struct bus *cpu_bus, const struct mp_ops *mp_ops)
void x86_mtrr_check(void)
void x86_setup_mtrrs_with_detect(void)
static __always_inline msr_t rdmsr(unsigned int index)
#define IA32_FEATURE_CONTROL
static __always_inline void wrmsr(unsigned int index, msr_t msr)
void global_smi_enable(void)
Set the EOS bit and enable SMI generation from southbridge.
#define BIOS_INFO
BIOS_INFO - Expected events.
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
void intel_microcode_load_unlocked(const void *microcode_patch)
const void * intel_microcode_find(void)
void(* pre_mp_init)(void)