17 #include <soc/pci_devs.h>
18 #include <soc/soc_chip.h>
34 smbase = staggered_smbase;
54 smbase_msr.
lo = smbase;
62 iedbase_msr.
hi = iedbase;
84 msr_t smm_feature_control;
87 smm_feature_control.
hi = 0;
123 msr_t smm_feature_control;
168 const u32 rmask = ~(4 *
KiB - 1);
196 ied_base = (
void *)
params->ied_base;
202 memcpy(ied_base, &ied,
sizeof(ied));
209 size_t *smm_save_state_size)
220 *smm_save_state_size =
sizeof(em64t101_smm_state_save_area_t);
void * memcpy(void *dest, const void *src, size_t n)
void * memset(void *dstpp, int c, size_t len)
static struct sdram_info params
#define printk(level,...)
bool intel_ht_sibling(void)
#define SMM_FEATURE_CONTROL_MSR
#define SMM_CPU_SVRSTR_MASK
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)
void smm_initiate_relocation(void)
void smm_initiate_relocation_parallel(void)
static __always_inline msr_t rdmsr(unsigned int index)
static __always_inline void wrmsr(unsigned int index, msr_t msr)
void smm_region(uintptr_t *start, size_t *size)
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
#define BIOS_WARNING
BIOS_WARNING - Bad configuration.
static const struct smm_save_state_ops * save_state
struct smm_relocation_params smm_reloc_params
void smm_southbridge_clear_state(void)
static void write_smrr(struct smm_relocation_params *relo_params)
static void setup_ied_area(struct smm_relocation_params *params)
static int bsp_setup_msr_save_state(struct smm_relocation_params *relo_params)
static void update_save_state(int cpu, uintptr_t curr_smbase, uintptr_t staggered_smbase, struct smm_relocation_params *relo_params)
static void fill_in_relocation_params(struct smm_relocation_params *params)
#define SMRR_LOCK_SUPPORTED
int smm_save_state_in_msrs
int smm_subregion(int sub, uintptr_t *start, size_t *size)
#define MTRR_PHYS_MASK_VALID
#define SMRR_PHYS_MASK_LOCK