28 "TSEG base not aligned with TSEG SIZE! Not setting SMRR\n");
35 "TSEG size not aligned to the minimum 4KiB! Not setting SMRR\n");
57 ied_base = (
void *)
params->ied_base;
63 memcpy(ied_base, &ied,
sizeof(ied));
72 size_t *smm_save_state_size)
81 *smm_save_state_size =
sizeof(em64t101_smm_state_save_area_t);
96 smbase = staggered_smbase;
void * memcpy(void *dest, const void *src, size_t n)
void * memset(void *dstpp, int c, size_t len)
#define assert(statement)
static struct sdram_info params
#define printk(level,...)
void smm_relocation_handler(int cpu, uintptr_t curr_smbase, uintptr_t staggered_smbase)
static __always_inline msr_t rdmsr(unsigned int index)
void smm_region(uintptr_t *start, size_t *size)
static __always_inline unsigned int initial_lapicid(void)
#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
static void write_smrr(struct smm_relocation_params *relo_params)
static void setup_ied_area(struct smm_relocation_params *params)
static void update_save_state(int cpu, uintptr_t curr_smbase, uintptr_t staggered_smbase, struct smm_relocation_params *relo_params)
void get_smm_info(uintptr_t *perm_smbase, size_t *perm_smsize, size_t *smm_save_state_size)
static void fill_in_relocation_params(struct smm_relocation_params *params)
int smm_subregion(int sub, uintptr_t *start, size_t *size)
#define MTRR_PHYS_MASK_VALID