coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
|
#include <types.h>
#include <acpi/acpigen.h>
#include <acpi/acpi_device.h>
#include <cbmem.h>
#include <console/console.h>
#include "tpm_ppi.h"
Go to the source code of this file.
Macros | |
#define | BCD(x, y) (((x) << 4) | ((y) << 0)) |
Functions | |
static void | set_package_element_op (const char *package_name, unsigned int element, uint8_t src_op) |
static void | set_package_element_name (const char *package_name, unsigned int element, const char *src) |
static void | verify_supported_ppi (uint8_t src_op) |
static void | tpm_ppi_func0_cb (void *arg) |
static void | tpm_ppi_func1_cb (void *arg) |
static void | tpm_ppi_func2_cb (void *arg) |
static void | tpm_ppi_func3_cb (void *arg) |
static void | tpm_ppi_func4_cb (void *arg) |
static void | tpm_ppi_func5_cb (void *arg) |
static void | tpm_ppi_func6_cb (void *arg) |
static void | tpm_ppi_func7_cb (void *arg) |
static void | tpm_ppi_func8_cb (void *arg) |
static void | tpm_mci_func0_cb (void *arg) |
static void | tpm_mci_func1_cb (void *arg) |
void | tpm_ppi_acpi_fill_ssdt (const struct device *dev) |
void | lb_tpm_ppi (struct lb_header *header) |
Variables | |
static void(* | tpm_ppi_callbacks [])(void *) |
static void(* | tpm_mci_callbacks [])(void *) |
Definition at line 707 of file ppi.c.
References BCD, cbmem_find(), CBMEM_ID_TPM_PPI, CONFIG, header, lb_new_record(), LB_TAG_TPM_PPI_HANDOFF, LB_TPM_VERSION_TPM_VERSION_1_2, LB_TPM_VERSION_TPM_VERSION_2, lb_tpm_physical_presence::ppi_address, lb_tpm_physical_presence::ppi_version, lb_tpm_physical_presence::size, lb_tpm_physical_presence::tag, and lb_tpm_physical_presence::tpm_version.
Referenced by write_coreboot_table().
|
static |
Definition at line 24 of file ppi.c.
References acpigen_emit_byte(), acpigen_emit_namestring(), acpigen_write_integer(), acpigen_write_store(), INDEX_OP, and ZERO_OP.
Referenced by tpm_ppi_func3_cb(), and tpm_ppi_func5_cb().
|
static |
Definition at line 13 of file ppi.c.
References acpigen_emit_byte(), acpigen_emit_namestring(), acpigen_write_integer(), acpigen_write_store(), INDEX_OP, and ZERO_OP.
Referenced by tpm_ppi_func3_cb(), and tpm_ppi_func5_cb().
Definition at line 477 of file ppi.c.
References acpigen_write_return_singleton_buffer().
Definition at line 482 of file ppi.c.
References acpigen_write_return_byte().
Definition at line 493 of file ppi.c.
References acpigen_emit_byte(), acpigen_emit_namestring(), acpigen_pop_len(), acpigen_write_dsm_uuid_arr(), acpigen_write_dword(), acpigen_write_field(), acpigen_write_if(), acpigen_write_if_lequal_op_int(), acpigen_write_integer(), acpigen_write_method(), acpigen_write_method_serialized(), acpigen_write_name(), acpigen_write_opregion(), acpigen_write_package(), acpigen_write_return_integer(), acpigen_write_return_op(), acpigen_write_to_integer(), ARG0_OP, ARG1_OP, ARRAY_SIZE, BIOS_DEBUG, BIOS_ERR, cbmem_add(), CBMEM_ID_TPM_PPI, CONFIG, CREATE_BYTE_OP, DSM_UUID, FIELD_ANYACC, FIELD_NOLOCK, FIELD_PRESERVE, FIELDLIST_NAMESTR, FIELDLIST_OFFSET, cb_tpm_ppi_payload_handshake::fret, cb_tpm_ppi_payload_handshake::func, LGREATER_OP, list, LOCAL0_OP, LOCAL1_OP, cb_tpm_ppi_payload_handshake::lppr, memset(), opregion::name, cb_tpm_ppi_payload_handshake::next_step, NULL, OPREGION, cb_tpm_ppi_payload_handshake::ppin, cb_tpm_ppi_payload_handshake::ppip, cb_tpm_ppi_payload_handshake::pprm, cb_tpm_ppi_payload_handshake::pprp, cb_tpm_ppi_payload_handshake::pprq, printk, SYSTEMMEMORY, TO_INTEGER_OP, TPM2_CHANGE_EPS, TPM2_CLEAR, TPM2_CLEAR_ENABLE_ACTIVE, TPM2_DISABLE, TPM2_DISABLE_BLOCK_SID, TPM2_DISABLE_ENDORSMENT_ENABLE_STORAGE_HISTORY, TPM2_ENABLE, TPM2_ENABLE_BLOCK_SID, TPM2_ENABLE_CLEAR, TPM2_ENABLE_CLEAR2, TPM2_LOG_ALL_DIGEST, TPM2_NOOP, TPM2_SET_PCR_BANKS, TPM2_SET_PP_REQUIRED_FOR_CHANGE_EPS_FALSE, TPM2_SET_PP_REQUIRED_FOR_CHANGE_EPS_TRUE, TPM2_SET_PP_REQUIRED_FOR_CHANGE_PCRS_FALSE, TPM2_SET_PP_REQUIRED_FOR_CHANGE_PCRS_TRUE, TPM2_SET_PP_REQUIRED_FOR_CLEAR_FALSE, TPM2_SET_PP_REQUIRED_FOR_CLEAR_TRUE, TPM2_SET_PP_REQUIRED_FOR_DISABLE_BLOCK_SID_FALSE, TPM2_SET_PP_REQUIRED_FOR_DISABLE_BLOCK_SID_TRUE, TPM2_SET_PP_REQUIRED_FOR_ENABLE_BLOCK_SID_FALSE, TPM2_SET_PP_REQUIRED_FOR_ENABLE_BLOCK_SID_TRUE, TPM2_SET_PP_REQUIRED_FOR_TURN_OFF_FALSE, TPM2_SET_PP_REQUIRED_FOR_TURN_OFF_TRUE, TPM2_SET_PP_REQUIRED_FOR_TURN_ON_FALSE, TPM2_SET_PP_REQUIRED_FOR_TURN_ON_TRUE, TPM_ACTIVATE, TPM_CLEAR, TPM_CLEAR_ENABLE_ACTIVATE, TPM_DEACTIVATE, TPM_DEACTIVATE_DISABLE, TPM_DISABLE, TPM_ENABLE, TPM_ENABLE_ACTIVATE, TPM_ENABLE_ACTIVATE_SETOWNERINSTALL_TRUE, TPM_ENABLE_ACTIVE_CLEAR, TPM_ENABLE_ACTIVE_CLEAR_ENABLE_ACTIVE, tpm_mci_callbacks, TPM_MCI_UUID, TPM_NOOP, tpm_ppi_callbacks, TPM_PPI_UUID, TPM_SET_NOPPIPROVISION_FALSE, TPM_SET_NOPPIPROVISION_TRUE, TPM_SETOWNERINSTALL_FALSE, TPM_SETOWNERINSTALL_FALSE_DEACTIVATE_DISABLE, TPM_SETOWNERINSTALL_TRUE, and VENDOR_SPECIFIC_OFFSET.
Definition at line 100 of file ppi.c.
References acpigen_write_return_byte_buffer(), and buf.
Definition at line 115 of file ppi.c.
References acpigen_write_return_string(), CONFIG, and TPM2.
Definition at line 140 of file ppi.c.
References acpigen_pop_len(), acpigen_write_if_lequal_op_int(), acpigen_write_return_integer(), acpigen_write_store_op_to_namestr(), acpigen_write_to_integer(), ARG1_OP, ARG3_OP, LOCAL0_OP, LOCAL2_OP, PPI2_RET_GENERAL_FAILURE, PPI2_RET_SUCCESS, verify_supported_ppi(), and ZERO_OP.
Definition at line 176 of file ppi.c.
References acpigen_emit_byte(), acpigen_emit_namestring(), acpigen_pop_len(), acpigen_write_if_lequal_op_int(), acpigen_write_integer(), acpigen_write_store(), acpigen_write_to_integer(), ARG1_OP, LOCAL0_OP, LOCAL1_OP, PPI3_RET_GENERAL_FAILURE, PPI3_RET_SUCCESS, RETURN_OP, set_package_element_name(), and set_package_element_op().
Definition at line 247 of file ppi.c.
References acpigen_write_return_byte(), and PPI4_RET_REBOOT.
Definition at line 270 of file ppi.c.
References acpigen_emit_byte(), acpigen_emit_namestring(), acpigen_pop_len(), acpigen_write_if_lequal_op_int(), acpigen_write_integer(), acpigen_write_store(), acpigen_write_to_integer(), ARG1_OP, LOCAL0_OP, LOCAL1_OP, PPI5_RET_GENERAL_FAILURE, PPI5_RET_SUCCESS, RETURN_OP, set_package_element_name(), and set_package_element_op().
Definition at line 308 of file ppi.c.
References acpigen_write_return_byte(), and PPI6_RET_NOT_IMPLEMENTED.
Definition at line 331 of file ppi.c.
References acpigen_emit_byte(), acpigen_emit_namestring(), acpigen_get_package_op_element(), acpigen_pop_len(), acpigen_write_if_lequal_op_int(), acpigen_write_return_byte(), acpigen_write_store(), acpigen_write_store_op_to_namestr(), acpigen_write_to_integer(), ARG1_OP, ARG3_OP, LOCAL0_OP, LOCAL1_OP, LOCAL2_OP, LOCAL3_OP, OBJ_TYPE_OP, ONE_OP, PPI7_RET_GENERAL_FAILURE, PPI7_RET_SUCCESS, verify_supported_ppi(), and ZERO_OP.
Definition at line 401 of file ppi.c.
References acpigen_emit_byte(), acpigen_emit_namestring(), acpigen_get_package_op_element(), acpigen_pop_len(), acpigen_write_if_lequal_op_int(), acpigen_write_return_byte(), acpigen_write_return_integer(), acpigen_write_store(), acpigen_write_to_integer(), ARG1_OP, ARG3_OP, ARRAY_SIZE, CONFIG, LOCAL0_OP, LOCAL1_OP, LOCAL2_OP, ONE_OP, PPI8_RET_ALLOWED, PPI8_RET_ALLOWED_WITH_PP, PPI8_RET_NOT_IMPLEMENTED, TPM2, TPM2_NOOP, TPM2_SET_PP_REQUIRED_FOR_CHANGE_EPS_TRUE, TPM2_SET_PP_REQUIRED_FOR_CHANGE_PCRS_TRUE, TPM2_SET_PP_REQUIRED_FOR_CLEAR_TRUE, TPM2_SET_PP_REQUIRED_FOR_DISABLE_BLOCK_SID_TRUE, TPM2_SET_PP_REQUIRED_FOR_ENABLE_BLOCK_SID_TRUE, TPM2_SET_PP_REQUIRED_FOR_TURN_OFF_TRUE, TPM2_SET_PP_REQUIRED_FOR_TURN_ON_TRUE, TPM_NOOP, TPM_SET_NOPPICLEAR_TRUE, TPM_SET_NOPPIMAINTAINANCE_TRUE, TPM_SET_NOPPIPROVISION_TRUE, and ZERO_OP.
Definition at line 36 of file ppi.c.
References acpigen_emit_byte(), acpigen_emit_namestring(), acpigen_get_package_op_element(), acpigen_pop_len(), acpigen_write_if_lequal_op_int(), acpigen_write_return_integer(), acpigen_write_store(), acpigen_write_to_integer(), CONFIG, LOCAL1_OP, LOCAL2_OP, OBJ_TYPE_OP, ONE_OP, PPI2_RET_NOT_SUPPORTED, PPI2_RET_SUCCESS, and ZERO_OP.
Referenced by tpm_ppi_func2_cb(), and tpm_ppi_func7_cb().