![]() |
coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
|
#include <acpi/acpi.h>
#include <arch/mmio.h>
#include <bootmem.h>
#include <bootstate.h>
#include <cbfs.h>
#include <console/console.h>
#include <cpu/intel/common/common.h>
#include <cpu/x86/msr.h>
#include <cpu/x86/smm.h>
#include <device/pci_ops.h>
#include <security/intel/cbnt/cbnt.h>
#include <types.h>
#include "txt.h"
#include "txt_platform.h"
#include "txt_register.h"
#include "txt_getsec.h"
Go to the source code of this file.
BOOT_STATE_INIT_ENTRY | ( | BS_DEV_INIT | , |
BS_ON_EXIT | , | ||
init_intel_txt | , | ||
NULL | |||
) |
BOOT_STATE_INIT_ENTRY | ( | BS_POST_DEVICE | , |
BS_ON_ENTRY | , | ||
check_secrets_txt | , | ||
NULL | |||
) |
BOOT_STATE_INIT_ENTRY | ( | BS_POST_DEVICE | , |
BS_ON_EXIT | , | ||
lockdown_intel_txt | , | ||
NULL | |||
) |
Definition at line 43 of file ramstage.c.
References ACMSTS_TXT_DISABLED, BM_MEM_RESERVED, bootmem_add_range(), MiB, dpr_register::raw, read32(), read64(), dpr_register::size, dpr_register::top, TXT_DPR, TXT_PRIVATE_SPACE, TXT_PUBLIC_SPACE, TXT_RESERVED_SPACE, TXT_RESERVED_SPACE_SIZE, TXT_SPAD, and TXT_TPM_DECODE_AREA.
Definition at line 86 of file ramstage.c.
References ACMINPUT_CLEAR_SECRETS, ACMSTS_TXT_DISABLED, BIOS_INFO, die(), intel_txt_log_acm_error(), intel_txt_memory_has_secrets(), intel_txt_run_bios_acm(), printk, read32(), read64(), TXT_BIOSACM_ERRORCODE, and TXT_SPAD.
Definition at line 80 of file ramstage.c.
References read8(), TXT_ESTS, and TXT_ESTS_WAKE_ERROR_STS.
Referenced by init_intel_txt().
Log TXT startup errors, check all bits for TXT, run BIOSACM using GETSEC[ENTERACCS].
If a "TXT reset" is detected or "memory had secrets" is set, then do nothing as
Definition at line 123 of file ramstage.c.
References ACMINPUT_NOP, ACMINPUT_SCHECK, ACMSTS_BIOS_TRUSTED, ACMSTS_IBB_MEASURED, ACMSTS_TXT_DISABLED, acpi_is_wakeup_s3(), BIOS_ERR, BIOS_INFO, CONFIG, get_wake_error_status(), intel_cbnt_log_registers(), intel_txt_log_bios_acm_error(), intel_txt_log_spad(), intel_txt_prepare_txt_env(), intel_txt_run_bios_acm(), log_ibb_measurements(), printk, read64(), txt_dump_chipset_info(), and TXT_SPAD.
Finalize the TXT device.
Chapter 5.10.1 SMM in the Intel TXT for Servers Environment Disable MSEG.
Definition at line 364 of file ramstage.c.
References _Static_assert(), ACMINPUT_LOCK_CONFIG, ACMSTS_TXT_DISABLED, acpi_is_wakeup_s3(), ALIGN_DOWN, BIOS_DEBUG, BIOS_ERR, BIOS_INFO, CONFIG, dpr_register::epm, getsec_parameter(), GETSEC_PARAMS_TXT_EXT_CRTM_SUPPORT, intel_txt_run_bios_acm(), dpr_register::lock, MiB, NULL, printk, dpr_register::prs, dpr_register::raw, read32(), read64(), dpr_register::size, skip_intel_txt_lockdown(), smm_region(), dpr_register::top, TXT_CAPABILITIES, TXT_CAPABILITIES_DPR, TXT_DPR, txt_dump_regions(), txt_get_chipset_dpr(), TXT_HEAP_BASE, TXT_HEAP_SIZE, txt_initialize_heap(), TXT_MSEG_BASE, TXT_MSEG_SIZE, TXT_SINIT_BASE, TXT_SINIT_SIZE, TXT_SPAD, and write64().
Definition at line 22 of file ramstage.c.
References BIOS_INFO, printk, read64(), read8(), TXT_MSEG_BASE, and TXT_MSEG_SIZE.
Referenced by init_intel_txt().
Definition at line 189 of file ramstage.c.
References memcpy().
Referenced by txt_heap_push_bdr_for_one_acm(), txt_heap_push_bdr_for_two_acms(), and txt_initialize_heap().
Definition at line 350 of file ramstage.c.
|
static |
Definition at line 226 of file ramstage.c.
References txt_bios_spec_ver_element::header, HEAP_EXTDATA_TYPE_BIOS_SPEC_VER, txt_extended_data_element_header::size, txt_extended_data_element_header::type, txt_bios_spec_ver_element::ver_major, txt_bios_spec_ver_element::ver_minor, and txt_bios_spec_ver_element::ver_revision.
Referenced by txt_heap_push_bdr_for_one_acm(), and txt_heap_push_bdr_for_two_acms().
|
static |
Definition at line 203 of file ramstage.c.
References BIOS_ERR, cbfs_map(), cbfs_unmap(), dev_count_cpu(), txt_biosdataregion::lcp_pd_base, txt_biosdataregion::lcp_pd_size, txt_biosdataregion::no_logical_procs, txt_biosdataregion::platform_type, printk, txt_biosdataregion::support_acpi_ppi, and txt_biosdataregion::version.
Referenced by txt_heap_push_bdr_for_one_acm(), and txt_heap_push_bdr_for_two_acms().
Definition at line 281 of file ramstage.c.
References cbfs_map(), txt_extended_data_element_header::data, HEAP_EXTDATA_TYPE_ACM, HEAP_EXTDATA_TYPE_END, memset(), NULL, push_sinit_heap(), read64(), txt_heap_fill_bios_spec(), txt_heap_fill_common_bdr(), TXT_SINIT_BASE, and TXT_SINIT_SIZE.
Referenced by txt_initialize_heap().
Definition at line 236 of file ramstage.c.
References BIOS_INFO, cbfs_load(), cbfs_map(), CONFIG, txt_extended_data_element_header::data, HEAP_EXTDATA_TYPE_ACM, HEAP_EXTDATA_TYPE_END, NULL, printk, push_sinit_heap(), read64(), txt_dump_acm_info(), txt_heap_fill_bios_spec(), txt_heap_fill_common_bdr(), TXT_SINIT_BASE, and TXT_SINIT_SIZE.
Referenced by txt_initialize_heap().
Definition at line 319 of file ramstage.c.
References cbfs_file_exists(), NULL, push_sinit_heap(), read64(), TXT_HEAP_BASE, txt_heap_push_bdr_for_one_acm(), and txt_heap_push_bdr_for_two_acms().
Referenced by lockdown_intel_txt().