Lines Matching refs:huc
40 void intel_huc_init_early(struct intel_huc *huc) in intel_huc_init_early() argument
42 struct drm_i915_private *i915 = huc_to_gt(huc)->i915; in intel_huc_init_early()
44 intel_uc_fw_init_early(&huc->fw, INTEL_UC_FW_TYPE_HUC); in intel_huc_init_early()
47 huc->status.reg = GEN11_HUC_KERNEL_LOAD_INFO; in intel_huc_init_early()
48 huc->status.mask = HUC_LOAD_SUCCESSFUL; in intel_huc_init_early()
49 huc->status.value = HUC_LOAD_SUCCESSFUL; in intel_huc_init_early()
51 huc->status.reg = HUC_STATUS2; in intel_huc_init_early()
52 huc->status.mask = HUC_FW_VERIFIED; in intel_huc_init_early()
53 huc->status.value = HUC_FW_VERIFIED; in intel_huc_init_early()
57 static int intel_huc_rsa_data_create(struct intel_huc *huc) in intel_huc_rsa_data_create() argument
59 struct intel_gt *gt = huc_to_gt(huc); in intel_huc_rsa_data_create()
80 GEM_BUG_ON(huc->fw.rsa_size > PAGE_SIZE); in intel_huc_rsa_data_create()
91 copied = intel_uc_fw_copy_rsa(&huc->fw, vaddr, vma->size); in intel_huc_rsa_data_create()
92 GEM_BUG_ON(copied < huc->fw.rsa_size); in intel_huc_rsa_data_create()
96 huc->rsa_data = vma; in intel_huc_rsa_data_create()
101 static void intel_huc_rsa_data_destroy(struct intel_huc *huc) in intel_huc_rsa_data_destroy() argument
103 i915_vma_unpin_and_release(&huc->rsa_data, 0); in intel_huc_rsa_data_destroy()
106 int intel_huc_init(struct intel_huc *huc) in intel_huc_init() argument
108 struct drm_i915_private *i915 = huc_to_gt(huc)->i915; in intel_huc_init()
111 err = intel_uc_fw_init(&huc->fw); in intel_huc_init()
120 err = intel_huc_rsa_data_create(huc); in intel_huc_init()
124 intel_uc_fw_change_status(&huc->fw, INTEL_UC_FIRMWARE_LOADABLE); in intel_huc_init()
129 intel_uc_fw_fini(&huc->fw); in intel_huc_init()
135 void intel_huc_fini(struct intel_huc *huc) in intel_huc_fini() argument
137 if (!intel_uc_fw_is_loadable(&huc->fw)) in intel_huc_fini()
140 intel_huc_rsa_data_destroy(huc); in intel_huc_fini()
141 intel_uc_fw_fini(&huc->fw); in intel_huc_fini()
154 int intel_huc_auth(struct intel_huc *huc) in intel_huc_auth() argument
156 struct intel_gt *gt = huc_to_gt(huc); in intel_huc_auth()
160 GEM_BUG_ON(intel_huc_is_authenticated(huc)); in intel_huc_auth()
162 if (!intel_uc_fw_is_loaded(&huc->fw)) in intel_huc_auth()
170 intel_guc_ggtt_offset(guc, huc->rsa_data)); in intel_huc_auth()
178 huc->status.reg, in intel_huc_auth()
179 huc->status.mask, in intel_huc_auth()
180 huc->status.value, in intel_huc_auth()
187 intel_uc_fw_change_status(&huc->fw, INTEL_UC_FIRMWARE_RUNNING); in intel_huc_auth()
192 intel_uc_fw_change_status(&huc->fw, INTEL_UC_FIRMWARE_FAIL); in intel_huc_auth()
211 int intel_huc_check_status(struct intel_huc *huc) in intel_huc_check_status() argument
213 struct intel_gt *gt = huc_to_gt(huc); in intel_huc_check_status()
217 switch (__intel_uc_fw_status(&huc->fw)) { in intel_huc_check_status()
231 status = intel_uncore_read(gt->uncore, huc->status.reg); in intel_huc_check_status()
233 return (status & huc->status.mask) == huc->status.value; in intel_huc_check_status()
243 void intel_huc_load_status(struct intel_huc *huc, struct drm_printer *p) in intel_huc_load_status() argument
245 struct intel_gt *gt = huc_to_gt(huc); in intel_huc_load_status()
248 if (!intel_huc_is_supported(huc)) { in intel_huc_load_status()
253 if (!intel_huc_is_wanted(huc)) { in intel_huc_load_status()
258 intel_uc_fw_dump(&huc->fw, p); in intel_huc_load_status()
262 intel_uncore_read(gt->uncore, huc->status.reg)); in intel_huc_load_status()