![]() |
coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
|
Go to the source code of this file.
Functions | |
int | load_stm_image (uintptr_t mseg) |
void | stm_setup (uintptr_t mseg, int cpu, uintptr_t smbase, uintptr_t smbase_base, uint32_t offset32) |
int | add_pi_resource (STM_RSC *resource_list, uint32_t num_entries) |
int | delete_pi_resource (STM_RSC *resource_list, uint32_t num_entries) |
int | get_pi_resource (STM_RSC *resource_list, uint32_t *resource_size) |
void | notify_stm_resource_change (void *stm_resource) |
void * | get_stm_resource (void) |
void | setup_smm_descriptor (void *smbase, int32_t apic_id, int32_t entry32_off) |
bool | stm_check_stm_image (void *stm_image, uint32_t stm_image_size) |
void | stm_gen_4g_pagetable_ia32 (uint32_t pagetable_base) |
void | stm_gen_4g_pagetable_x64 (uint32_t pagetable_base) |
Definition at line 470 of file SmmStm.c.
References add_resource(), BIOS_DEBUG, get_resource_size(), m_rsc_end_node, m_stm_resource_size_available, m_stm_resource_size_used, m_stm_resource_total_size, m_stm_resources_ptr, memcpy(), memset(), NULL, printk, stm_resource_heap, validate_resource(), and wbinvd().
Referenced by add_msr_resources(), and add_simple_resources().
Definition at line 523 of file SmmStm.c.
References m_rsc_end_node, m_stm_resource_size_available, m_stm_resource_size_used, m_stm_resource_total_size, m_stm_resources_ptr, memcpy(), and NULL.
Definition at line 551 of file SmmStm.c.
References m_stm_resource_size_used, m_stm_resources_ptr, and memcpy().
Definition at line 675 of file SmmStm.c.
References m_stm_resources_ptr.
Referenced by setup_smm_descriptor().
int load_stm_image | ( | uintptr_t | mseg | ) |
Definition at line 21 of file StmPlatformSmm.c.
References BIOS_DEBUG, cbfs_load(), HARDWARE_STM_HEADER::cr3_offset, STM_HEADER::hw_stm_hdr, memset(), HARDWARE_STM_HEADER::monitor_features, printk, SOFTWARE_STM_HEADER::static_image_size, stm_check_stm_image(), stm_gen_4g_pagetable_x64(), HARDWARE_STM_HEADER::stm_header_revision, and STM_HEADER::sw_stm_hdr.
Referenced by stm_setup().
Definition at line 80 of file StmPlatformSmm.c.
References TXT_PROCESSOR_SMM_DESCRIPTOR::acpi_rsdp, descriptor::base, BIOS_DEBUG, TXT_PROCESSOR_SMM_DESCRIPTOR::bios_hw_resource_requirements_ptr, get_stm_resource(), descriptor::limit, TXT_PROCESSOR_SMM_DESCRIPTOR::local_apic_id, memcpy(), memset(), printk, read_gdtr(), ROM_CODE_SEG, ROM_DATA_SEG, TXT_PROCESSOR_SMM_DESCRIPTOR::signature, TXT_PROCESSOR_SMM_DESCRIPTOR::size, TXT_PROCESSOR_SMM_DESCRIPTOR::smm_cs, SMM_DEFAULT_BASE, TXT_PROCESSOR_SMM_DESCRIPTOR::smm_descriptor_ver_major, TXT_PROCESSOR_SMM_DESCRIPTOR::smm_descriptor_ver_minor, TXT_PROCESSOR_SMM_DESCRIPTOR::smm_ds, SMM_ENTRY_OFFSET, TXT_PROCESSOR_SMM_DESCRIPTOR::smm_gdt_ptr, TXT_PROCESSOR_SMM_DESCRIPTOR::smm_gdt_size, TXT_PROCESSOR_SMM_DESCRIPTOR::smm_other_segment, SMM_PSD_OFFSET, TXT_PROCESSOR_SMM_DESCRIPTOR::smm_smi_handler_rip, TXT_PROCESSOR_SMM_DESCRIPTOR::smm_ss, SMM_TASK_STATE_SEG, TXT_PROCESSOR_SMM_DESCRIPTOR::smm_tr, TXT_PROCESSOR_SMM_DESCRIPTOR_SIGNATURE, TXT_PROCESSOR_SMM_DESCRIPTOR_VERSION_MAJOR, and TXT_PROCESSOR_SMM_DESCRIPTOR_VERSION_MINOR.
Referenced by stm_setup().
Definition at line 632 of file SmmStm.c.
References SOFTWARE_STM_HEADER::additional_dynamic_memory_size, mp_state::cpu_count, HARDWARE_STM_HEADER::cr3_offset, get_vmcs_size(), STM_HEADER::hw_stm_hdr, SOFTWARE_STM_HEADER::per_proc_dynamic_memory_size, SOFTWARE_STM_HEADER::static_image_size, STM_PAGES_TO_SIZE, STM_SIZE_TO_PAGES, and STM_HEADER::sw_stm_hdr.
Referenced by load_stm_image().
Definition at line 592 of file SmmStm.c.
References IA32_PG_P, IA32_PG_PS, IA32_PG_RW, PTP_SIZE, and SIZE_4KB.
Referenced by load_stm_image().
void stm_setup | ( | uintptr_t | mseg, |
int | cpu, | ||
uintptr_t | smbase, | ||
uintptr_t | smbase_base, | ||
uint32_t | offset32 | ||
) |
Definition at line 139 of file StmPlatformSmm.c.
References add_resources_cmd(), BIOS_DEBUG, BIOS_WARNING, msr_struct::hi, IA32_SMM_MONITOR_CTL_MSR, IA32_SMM_MONITOR_VALID, IA32_VMX_BASIC_MSR, msr_struct::lo, load_stm_image(), printk, rdmsr(), setup_smm_descriptor(), stm_load_status, stm_resource_heap, VMX_BASIC_HI_DUAL_MONITOR, and wrmsr().
Referenced by smm_do_relocation().