Lines Matching refs:tpm
265 static int get_tpm_nv_size(struct udevice *tpm, uint32_t index, uint32_t *size) in get_tpm_nv_size() argument
272 err = tpm_get_capability(tpm, TPM_CAP_NV_INDEX, index, in get_tpm_nv_size()
301 static int find_key(struct udevice *tpm, const uint8_t auth[20], in find_key() argument
314 err = tpm_get_capability(tpm, TPM_CAP_HANDLE, TPM_RT_KEY, buf, in find_key()
326 err = tpm_get_pub_key_oiap(tpm, key_handles[i], auth, buf, in find_key()
345 static int read_common_data(struct udevice *tpm) in read_common_data() argument
352 if (get_tpm_nv_size(tpm, NV_COMMON_DATA_INDEX, &size) || in read_common_data()
355 err = tpm_nv_read_value(tpm, NV_COMMON_DATA_INDEX, in read_common_data()
489 static struct h_reg *access_hreg(struct udevice *tpm, uint8_t spec, in access_hreg() argument
507 hre_tpm_err = tpm_pcr_read(tpm, HREG_IDX(spec), in access_hreg()
513 read_common_data(tpm); in access_hreg()
589 static int hre_op_loadkey(struct udevice *tpm, struct h_reg *src_reg, in hre_op_loadkey() argument
598 if (find_key(tpm, src_reg->digest, dst_reg->digest, &parent_handle)) in hre_op_loadkey()
600 hre_tpm_err = tpm_load_key2_oiap(tpm, parent_handle, key, key_size, in hre_op_loadkey()
617 static const uint8_t *hre_execute_op(struct udevice *tpm, const uint8_t **ip, in hre_execute_op() argument
649 src_reg = access_hreg(tpm, src_spec, HREG_RD); in hre_execute_op()
652 dst_reg = access_hreg(tpm, dst_spec, in hre_execute_op()
709 if (hre_op_loadkey(tpm, src_reg, dst_reg, data, data_size)) in hre_execute_op()
717 hre_tpm_err = tpm_extend(tpm, HREG_IDX(dst_spec), in hre_execute_op()
741 static int hre_run_program(struct udevice *tpm, const uint8_t *code, in hre_run_program() argument
751 if (!hre_execute_op(tpm, &ip, &code_left)) in hre_run_program()
956 static int first_stage_actions(struct udevice *tpm) in first_stage_actions() argument
963 if (tpm_continue_self_test(tpm)) in first_stage_actions()
966 tpm_continue_self_test(tpm); in first_stage_actions()
970 if (hre_run_program(tpm, prg_stage1_prepare, in first_stage_actions()
976 if (hre_run_program(tpm, sd_prg->code, sd_prg->code_size)) in first_stage_actions()
997 struct udevice *tpm; in first_stage_init() local
1001 ret = get_tpm(&tpm); in first_stage_init()
1002 if (ret || tpm_init(tpm) || tpm_startup(tpm, TPM_ST_CLEAR)) in first_stage_init()
1004 ret = first_stage_actions(tpm); in first_stage_init()
1052 struct udevice *tpm; in second_stage_init() local
1057 ret = get_tpm(&tpm); in second_stage_init()
1058 if (ret || tpm_init(tpm)) in second_stage_init()
1060 err = tpm_startup(tpm, TPM_ST_CLEAR); in second_stage_init()
1065 if (!did_first_stage_run && first_stage_actions(tpm)) in second_stage_init()
1072 if (hre_run_program(tpm, prg_stage2_prepare, in second_stage_init()
1118 hre_run_program(tpm, prg_stage2_success, sizeof(prg_stage2_success)); in second_stage_init()
1123 hre_run_program(tpm, prg_stage_fail, sizeof(prg_stage_fail)); in second_stage_init()