1 // SPDX-License-Identifier: MIT
3 * Copyright © 2014-2019 Intel Corporation
6 #include "gt/intel_gt.h"
7 #include "intel_huc_fw.h"
11 * intel_huc_fw_init_early() - initializes HuC firmware struct
12 * @huc: intel_huc struct
14 * On platforms with HuC selects firmware for uploading
16 void intel_huc_fw_init_early(struct intel_huc
*huc
)
18 struct intel_gt
*gt
= huc_to_gt(huc
);
19 struct intel_uc
*uc
= >
->uc
;
20 struct drm_i915_private
*i915
= gt
->i915
;
22 intel_uc_fw_init_early(&huc
->fw
, INTEL_UC_FW_TYPE_HUC
,
23 intel_uc_uses_guc(uc
),
24 INTEL_INFO(i915
)->platform
, INTEL_REVID(i915
));
28 * intel_huc_fw_upload() - load HuC uCode to device
29 * @huc: intel_huc structure
31 * Called from intel_uc_init_hw() during driver load, resume from sleep and
32 * after a GPU reset. Note that HuC must be loaded before GuC.
34 * The firmware image should have already been fetched into memory, so only
35 * check that fetch succeeded, and then transfer the image to the h/w.
37 * Return: non-zero code on error
39 int intel_huc_fw_upload(struct intel_huc
*huc
)
41 /* HW doesn't look at destination address for HuC, so set it to 0 */
42 return intel_uc_fw_upload(&huc
->fw
, 0, HUC_UKERNEL
);