* [PATCH 0/8] HuC Loading Patches @ 2017-01-13 17:03 Anusha Srivatsa 2017-01-13 17:03 ` [PATCH 1/8] drm/i915/guc: Make the GuC fw loading helper functions general Anusha Srivatsa 2017-01-16 9:27 ` [PATCH 0/8] HuC Loading Patches Jani Nikula 0 siblings, 2 replies; 20+ messages in thread From: Anusha Srivatsa @ 2017-01-13 17:03 UTC (permalink / raw) To: intel-gfx The patches add HuC loading support. The driver builds a frame level workload which is stored in the graphics memory. This workload is presented to HuC for processing. The driver, therefore should first determine if the HuC is enabled and also read the huC athentication status bit to determine if HuC was successfully loaded. The GuC is required to authenticate the HuC. The userspace patches that check for a fully loaded HuC firmware and use it can be found at: https://lists.freedesktop.org/archives/libva/2016-September/004554.html https://lists.freedesktop.org/archives/libva/2016-September/004555.html More information regarding the HuC, batch commands that configure the HuC etc can be found at- https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-skl-vol02a-commandreference-instructions-huc.pdf https://www.x.org/docs/intel/CHV/intel-gfx-prm-osrc-chv-bsw-vol10-hevc.pdf v2: rebased. Changed the code following the review comments. v3: rebased. Organize code. Move contents of intel_huc.h to intel_uc.h. Update function intel_huc_load(),intel_huc_init() and intel_uc_fw_fetch() to accept dev_priv instead of dev. v4: rebased. Remove intel_is_huc_valid() since it is called onoly once. Refactor the code to reduce redundency. Remove fiels like uc_dev which are no longer used. v5: rebased. Beautify the code- remove comments that no longer hold good, add newlines etc. v6: rebased. Remove further redundency. Correct comments. Replace wait_for with intel_wait_for_register() for optimisation purpose.Make fw_type an enum. v7: rebased. Rename intel_huc_loader() to intel_huc(). Move intel_guc_auth_huc() from intel_uc.c to intel_huc.c. Add return values to DRM_ERRORs. Anusha Srivatsa (8): drm/i915/guc: Make the GuC fw loading helper functions general drm/i915/huc: Unified css_header struct for GuC and HuC drm/i915/huc: Add HuC fw loading support drm/i915/huc: Add BXT HuC Loading Support drm/i915/HuC: Add KBL huC loading Support drm/i915/huc: Add debugfs for HuC loading status check drm/i915/huc: Support HuC authentication drm/i915/get_params: Add HuC status to getparams drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/i915_debugfs.c | 43 +++- drivers/gpu/drm/i915/i915_drv.c | 10 + drivers/gpu/drm/i915/i915_drv.h | 2 + drivers/gpu/drm/i915/i915_guc_reg.h | 6 + drivers/gpu/drm/i915/i915_guc_submission.c | 4 +- drivers/gpu/drm/i915/intel_guc_fwif.h | 24 +- drivers/gpu/drm/i915/intel_guc_loader.c | 196 +++++++++-------- drivers/gpu/drm/i915/intel_huc.c | 342 +++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_uc.h | 60 +++-- include/uapi/drm/i915_drm.h | 1 + 11 files changed, 569 insertions(+), 120 deletions(-) create mode 100644 drivers/gpu/drm/i915/intel_huc.c -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 1/8] drm/i915/guc: Make the GuC fw loading helper functions general 2017-01-13 17:03 [PATCH 0/8] HuC Loading Patches Anusha Srivatsa @ 2017-01-13 17:03 ` Anusha Srivatsa 2017-01-16 9:27 ` [PATCH 0/8] HuC Loading Patches Jani Nikula 1 sibling, 0 replies; 20+ messages in thread From: Anusha Srivatsa @ 2017-01-13 17:03 UTC (permalink / raw) To: intel-gfx; +Cc: Alex Dai, Peter Antoine Rename some of the GuC fw loading code to make them more general. We will utilise them for HuC loading as well. s/intel_guc_fw/intel_uc_fw/g s/GUC_FIRMWARE/INTEL_UC_FIRMWARE/g Struct intel_guc_fw is renamed to intel_uc_fw. Prefix of tts members, such as 'guc' or 'guc_fw' either is renamed to 'uc' or removed for same purpose. v2: rebased on top of nightly. reapplied the search/replace as upstream code as changed. v3: removed G from messages in shared fw fetch function. v4: rebased.Updated dev to dev_priv in intel_guc_setup(), guc_fw_getch() and intel_guc_init(). v5: rebased. Remove uint32_t fw_type to patch 2. Add INTEL_ prefix for fields in enum intel_uc_fw_status. Remove uc_dev field since its never used.Rename uc_fw to just fw and guc_fw to fw to avoid redundency. v6: rebased. Remove sections of code that were commented and no longer required. v7: rebased. Remove uc_fw_ prefix from path and obj fields in intel_uc_fw struct as suggested by Michal. v8: rebased. Add declaration of intel_guc_wopcm_size() in this patch instead of patch 3. Cc: Michal Wajdeczko <michal.wajdeczko@intel.com> Cc: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com> Signed-off-by: Alex Dai <yu.dai@intel.com> Signed-off-by: Peter Antoine <peter.antoine@intel.com> Reviewed-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Michal Wajdeczko <michal.wajdeczko@intel.com> --- drivers/gpu/drm/i915/i915_debugfs.c | 12 +-- drivers/gpu/drm/i915/i915_guc_submission.c | 4 +- drivers/gpu/drm/i915/intel_guc_loader.c | 156 ++++++++++++++--------------- drivers/gpu/drm/i915/intel_uc.h | 37 +++---- 4 files changed, 105 insertions(+), 104 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index 9d7b5a8..19fe38e 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c @@ -2328,7 +2328,7 @@ static int i915_llc(struct seq_file *m, void *data) static int i915_guc_load_status_info(struct seq_file *m, void *data) { struct drm_i915_private *dev_priv = node_to_i915(m->private); - struct intel_guc_fw *guc_fw = &dev_priv->guc.guc_fw; + struct intel_uc_fw *guc_fw = &dev_priv->guc.fw; u32 tmp, i; if (!HAS_GUC_UCODE(dev_priv)) @@ -2336,15 +2336,15 @@ static int i915_guc_load_status_info(struct seq_file *m, void *data) seq_printf(m, "GuC firmware status:\n"); seq_printf(m, "\tpath: %s\n", - guc_fw->guc_fw_path); + guc_fw->path); seq_printf(m, "\tfetch: %s\n", - intel_guc_fw_status_repr(guc_fw->guc_fw_fetch_status)); + intel_uc_fw_status_repr(guc_fw->fetch_status)); seq_printf(m, "\tload: %s\n", - intel_guc_fw_status_repr(guc_fw->guc_fw_load_status)); + intel_uc_fw_status_repr(guc_fw->load_status)); seq_printf(m, "\tversion wanted: %d.%d\n", - guc_fw->guc_fw_major_wanted, guc_fw->guc_fw_minor_wanted); + guc_fw->major_ver_wanted, guc_fw->minor_ver_wanted); seq_printf(m, "\tversion found: %d.%d\n", - guc_fw->guc_fw_major_found, guc_fw->guc_fw_minor_found); + guc_fw->major_ver_found, guc_fw->minor_ver_found); seq_printf(m, "\theader: offset is %d; size = %d\n", guc_fw->header_offset, guc_fw->header_size); seq_printf(m, "\tuCode: offset is %d; size = %d\n", diff --git a/drivers/gpu/drm/i915/i915_guc_submission.c b/drivers/gpu/drm/i915/i915_guc_submission.c index 710fbb9..f0eb62d 100644 --- a/drivers/gpu/drm/i915/i915_guc_submission.c +++ b/drivers/gpu/drm/i915/i915_guc_submission.c @@ -1484,7 +1484,7 @@ int intel_guc_suspend(struct drm_i915_private *dev_priv) struct i915_gem_context *ctx; u32 data[3]; - if (guc->guc_fw.guc_fw_load_status != GUC_FIRMWARE_SUCCESS) + if (guc->fw.load_status != INTEL_UC_FIRMWARE_SUCCESS) return 0; gen9_disable_guc_interrupts(dev_priv); @@ -1511,7 +1511,7 @@ int intel_guc_resume(struct drm_i915_private *dev_priv) struct i915_gem_context *ctx; u32 data[3]; - if (guc->guc_fw.guc_fw_load_status != GUC_FIRMWARE_SUCCESS) + if (guc->fw.load_status != INTEL_UC_FIRMWARE_SUCCESS) return 0; if (i915.guc_log_level >= 0) diff --git a/drivers/gpu/drm/i915/intel_guc_loader.c b/drivers/gpu/drm/i915/intel_guc_loader.c index 5a6ab87..9071575 100644 --- a/drivers/gpu/drm/i915/intel_guc_loader.c +++ b/drivers/gpu/drm/i915/intel_guc_loader.c @@ -81,16 +81,16 @@ MODULE_FIRMWARE(I915_BXT_GUC_UCODE); MODULE_FIRMWARE(I915_KBL_GUC_UCODE); /* User-friendly representation of an enum */ -const char *intel_guc_fw_status_repr(enum intel_guc_fw_status status) +const char *intel_uc_fw_status_repr(enum intel_uc_fw_status status) { switch (status) { - case GUC_FIRMWARE_FAIL: + case INTEL_UC_FIRMWARE_FAIL: return "FAIL"; - case GUC_FIRMWARE_NONE: + case INTEL_UC_FIRMWARE_NONE: return "NONE"; - case GUC_FIRMWARE_PENDING: + case INTEL_UC_FIRMWARE_PENDING: return "PENDING"; - case GUC_FIRMWARE_SUCCESS: + case INTEL_UC_FIRMWARE_SUCCESS: return "SUCCESS"; default: return "UNKNOWN!"; @@ -278,7 +278,7 @@ static inline bool guc_ucode_response(struct drm_i915_private *dev_priv, static int guc_ucode_xfer_dma(struct drm_i915_private *dev_priv, struct i915_vma *vma) { - struct intel_guc_fw *guc_fw = &dev_priv->guc.guc_fw; + struct intel_uc_fw *guc_fw = &dev_priv->guc.fw; unsigned long offset; struct sg_table *sg = vma->pages; u32 status, rsa[UOS_RSA_SCRATCH_MAX_COUNT]; @@ -350,17 +350,17 @@ static u32 guc_wopcm_size(struct drm_i915_private *dev_priv) */ static int guc_ucode_xfer(struct drm_i915_private *dev_priv) { - struct intel_guc_fw *guc_fw = &dev_priv->guc.guc_fw; + struct intel_uc_fw *guc_fw = &dev_priv->guc.fw; struct i915_vma *vma; int ret; - ret = i915_gem_object_set_to_gtt_domain(guc_fw->guc_fw_obj, false); + ret = i915_gem_object_set_to_gtt_domain(guc_fw->obj, false); if (ret) { DRM_DEBUG_DRIVER("set-domain failed %d\n", ret); return ret; } - vma = i915_gem_object_ggtt_pin(guc_fw->guc_fw_obj, NULL, 0, 0, + vma = i915_gem_object_ggtt_pin(guc_fw->obj, NULL, 0, 0, PIN_OFFSET_BIAS | GUC_WOPCM_TOP); if (IS_ERR(vma)) { DRM_DEBUG_DRIVER("pin failed %d\n", (int)PTR_ERR(vma)); @@ -451,14 +451,14 @@ static int guc_hw_reset(struct drm_i915_private *dev_priv) */ int intel_guc_setup(struct drm_i915_private *dev_priv) { - struct intel_guc_fw *guc_fw = &dev_priv->guc.guc_fw; - const char *fw_path = guc_fw->guc_fw_path; + struct intel_uc_fw *guc_fw = &dev_priv->guc.fw; + const char *fw_path = guc_fw->path; int retries, ret, err; DRM_DEBUG_DRIVER("GuC fw status: path %s, fetch %s, load %s\n", fw_path, - intel_guc_fw_status_repr(guc_fw->guc_fw_fetch_status), - intel_guc_fw_status_repr(guc_fw->guc_fw_load_status)); + intel_uc_fw_status_repr(guc_fw->fetch_status), + intel_uc_fw_status_repr(guc_fw->load_status)); /* Loading forbidden, or no firmware to load? */ if (!i915.enable_guc_loading) { @@ -476,10 +476,10 @@ int intel_guc_setup(struct drm_i915_private *dev_priv) } /* Fetch failed, or already fetched but failed to load? */ - if (guc_fw->guc_fw_fetch_status != GUC_FIRMWARE_SUCCESS) { + if (guc_fw->fetch_status != INTEL_UC_FIRMWARE_SUCCESS) { err = -EIO; goto fail; - } else if (guc_fw->guc_fw_load_status == GUC_FIRMWARE_FAIL) { + } else if (guc_fw->load_status == INTEL_UC_FIRMWARE_FAIL) { err = -ENOEXEC; goto fail; } @@ -487,11 +487,11 @@ int intel_guc_setup(struct drm_i915_private *dev_priv) guc_interrupts_release(dev_priv); gen9_reset_guc_interrupts(dev_priv); - guc_fw->guc_fw_load_status = GUC_FIRMWARE_PENDING; + guc_fw->load_status = INTEL_UC_FIRMWARE_PENDING; DRM_DEBUG_DRIVER("GuC fw status: fetch %s, load %s\n", - intel_guc_fw_status_repr(guc_fw->guc_fw_fetch_status), - intel_guc_fw_status_repr(guc_fw->guc_fw_load_status)); + intel_uc_fw_status_repr(guc_fw->fetch_status), + intel_uc_fw_status_repr(guc_fw->load_status)); err = i915_guc_submission_init(dev_priv); if (err) @@ -523,11 +523,11 @@ int intel_guc_setup(struct drm_i915_private *dev_priv) "retry %d more time(s)\n", err, retries); } - guc_fw->guc_fw_load_status = GUC_FIRMWARE_SUCCESS; + guc_fw->load_status = INTEL_UC_FIRMWARE_SUCCESS; DRM_DEBUG_DRIVER("GuC fw status: fetch %s, load %s\n", - intel_guc_fw_status_repr(guc_fw->guc_fw_fetch_status), - intel_guc_fw_status_repr(guc_fw->guc_fw_load_status)); + intel_uc_fw_status_repr(guc_fw->fetch_status), + intel_uc_fw_status_repr(guc_fw->load_status)); if (i915.enable_guc_submission) { if (i915.guc_log_level >= 0) @@ -542,8 +542,8 @@ int intel_guc_setup(struct drm_i915_private *dev_priv) return 0; fail: - if (guc_fw->guc_fw_load_status == GUC_FIRMWARE_PENDING) - guc_fw->guc_fw_load_status = GUC_FIRMWARE_FAIL; + if (guc_fw->load_status == INTEL_UC_FIRMWARE_PENDING) + guc_fw->load_status = INTEL_UC_FIRMWARE_FAIL; guc_interrupts_release(dev_priv); i915_guc_submission_disable(dev_priv); @@ -588,8 +588,8 @@ int intel_guc_setup(struct drm_i915_private *dev_priv) return ret; } -static void guc_fw_fetch(struct drm_i915_private *dev_priv, - struct intel_guc_fw *guc_fw) +void intel_uc_fw_fetch(struct drm_i915_private *dev_priv, + struct intel_uc_fw *uc_fw) { struct pci_dev *pdev = dev_priv->drm.pdev; struct drm_i915_gem_object *obj; @@ -598,17 +598,17 @@ static void guc_fw_fetch(struct drm_i915_private *dev_priv, size_t size; int err; - DRM_DEBUG_DRIVER("before requesting firmware: GuC fw fetch status %s\n", - intel_guc_fw_status_repr(guc_fw->guc_fw_fetch_status)); + DRM_DEBUG_DRIVER("before requesting firmware: uC fw fetch status %s\n", + intel_uc_fw_status_repr(uc_fw->fetch_status)); - err = request_firmware(&fw, guc_fw->guc_fw_path, &pdev->dev); + err = request_firmware(&fw, uc_fw->path, &pdev->dev); if (err) goto fail; if (!fw) goto fail; - DRM_DEBUG_DRIVER("fetch GuC fw from %s succeeded, fw %p\n", - guc_fw->guc_fw_path, fw); + DRM_DEBUG_DRIVER("fetch uC fw from %s succeeded, fw %p\n", + uc_fw->path, fw); /* Check the size of the blob before examining buffer contents */ if (fw->size < sizeof(struct guc_css_header)) { @@ -619,36 +619,36 @@ static void guc_fw_fetch(struct drm_i915_private *dev_priv, css = (struct guc_css_header *)fw->data; /* Firmware bits always start from header */ - guc_fw->header_offset = 0; - guc_fw->header_size = (css->header_size_dw - css->modulus_size_dw - + uc_fw->header_offset = 0; + uc_fw->header_size = (css->header_size_dw - css->modulus_size_dw - css->key_size_dw - css->exponent_size_dw) * sizeof(u32); - if (guc_fw->header_size != sizeof(struct guc_css_header)) { + if (uc_fw->header_size != sizeof(struct guc_css_header)) { DRM_NOTE("CSS header definition mismatch\n"); goto fail; } /* then, uCode */ - guc_fw->ucode_offset = guc_fw->header_offset + guc_fw->header_size; - guc_fw->ucode_size = (css->size_dw - css->header_size_dw) * sizeof(u32); + uc_fw->ucode_offset = uc_fw->header_offset + uc_fw->header_size; + uc_fw->ucode_size = (css->size_dw - css->header_size_dw) * sizeof(u32); /* now RSA */ if (css->key_size_dw != UOS_RSA_SCRATCH_MAX_COUNT) { DRM_NOTE("RSA key size is bad\n"); goto fail; } - guc_fw->rsa_offset = guc_fw->ucode_offset + guc_fw->ucode_size; - guc_fw->rsa_size = css->key_size_dw * sizeof(u32); + uc_fw->rsa_offset = uc_fw->ucode_offset + uc_fw->ucode_size; + uc_fw->rsa_size = css->key_size_dw * sizeof(u32); /* At least, it should have header, uCode and RSA. Size of all three. */ - size = guc_fw->header_size + guc_fw->ucode_size + guc_fw->rsa_size; + size = uc_fw->header_size + uc_fw->ucode_size + uc_fw->rsa_size; if (fw->size < size) { DRM_NOTE("Missing firmware components\n"); goto fail; } /* Header and uCode will be loaded to WOPCM. Size of the two. */ - size = guc_fw->header_size + guc_fw->ucode_size; + size = uc_fw->header_size + uc_fw->ucode_size; if (size > guc_wopcm_size(dev_priv)) { DRM_NOTE("Firmware is too large to fit in WOPCM\n"); goto fail; @@ -660,21 +660,21 @@ static void guc_fw_fetch(struct drm_i915_private *dev_priv, * TWO bytes each (i.e. u16), although all pointers and offsets are defined * in terms of bytes (u8). */ - guc_fw->guc_fw_major_found = css->guc_sw_version >> 16; - guc_fw->guc_fw_minor_found = css->guc_sw_version & 0xFFFF; - - if (guc_fw->guc_fw_major_found != guc_fw->guc_fw_major_wanted || - guc_fw->guc_fw_minor_found < guc_fw->guc_fw_minor_wanted) { - DRM_NOTE("GuC firmware version %d.%d, required %d.%d\n", - guc_fw->guc_fw_major_found, guc_fw->guc_fw_minor_found, - guc_fw->guc_fw_major_wanted, guc_fw->guc_fw_minor_wanted); + uc_fw->major_ver_found = css->guc_sw_version >> 16; + uc_fw->minor_ver_found = css->guc_sw_version & 0xFFFF; + + if (uc_fw->major_ver_found != uc_fw->major_ver_wanted || + uc_fw->minor_ver_found < uc_fw->minor_ver_wanted) { + DRM_NOTE("uC firmware version %d.%d, required %d.%d\n", + uc_fw->major_ver_found, uc_fw->minor_ver_found, + uc_fw->major_ver_wanted, uc_fw->minor_ver_wanted); err = -ENOEXEC; goto fail; } DRM_DEBUG_DRIVER("firmware version %d.%d OK (minimum %d.%d)\n", - guc_fw->guc_fw_major_found, guc_fw->guc_fw_minor_found, - guc_fw->guc_fw_major_wanted, guc_fw->guc_fw_minor_wanted); + uc_fw->major_ver_found, uc_fw->minor_ver_found, + uc_fw->major_ver_wanted, uc_fw->minor_ver_wanted); mutex_lock(&dev_priv->drm.struct_mutex); obj = i915_gem_object_create_from_data(dev_priv, fw->data, fw->size); @@ -684,31 +684,31 @@ static void guc_fw_fetch(struct drm_i915_private *dev_priv, goto fail; } - guc_fw->guc_fw_obj = obj; - guc_fw->guc_fw_size = fw->size; + uc_fw->obj = obj; + uc_fw->size = fw->size; - DRM_DEBUG_DRIVER("GuC fw fetch status SUCCESS, obj %p\n", - guc_fw->guc_fw_obj); + DRM_DEBUG_DRIVER("uC fw fetch status SUCCESS, obj %p\n", + uc_fw->obj); release_firmware(fw); - guc_fw->guc_fw_fetch_status = GUC_FIRMWARE_SUCCESS; + uc_fw->fetch_status = INTEL_UC_FIRMWARE_SUCCESS; return; fail: - DRM_WARN("Failed to fetch valid GuC firmware from %s (error %d)\n", - guc_fw->guc_fw_path, err); - DRM_DEBUG_DRIVER("GuC fw fetch status FAIL; err %d, fw %p, obj %p\n", - err, fw, guc_fw->guc_fw_obj); + DRM_WARN("Failed to fetch valid uC firmware from %s (error %d)\n", + uc_fw->path, err); + DRM_DEBUG_DRIVER("uC fw fetch status FAIL; err %d, fw %p, obj %p\n", + err, fw, uc_fw->obj); mutex_lock(&dev_priv->drm.struct_mutex); - obj = guc_fw->guc_fw_obj; + obj = uc_fw->obj; if (obj) i915_gem_object_put(obj); - guc_fw->guc_fw_obj = NULL; + uc_fw->obj = NULL; mutex_unlock(&dev_priv->drm.struct_mutex); release_firmware(fw); /* OK even if fw is NULL */ - guc_fw->guc_fw_fetch_status = GUC_FIRMWARE_FAIL; + uc_fw->fetch_status = INTEL_UC_FIRMWARE_FAIL; } /** @@ -722,7 +722,7 @@ static void guc_fw_fetch(struct drm_i915_private *dev_priv, */ void intel_guc_init(struct drm_i915_private *dev_priv) { - struct intel_guc_fw *guc_fw = &dev_priv->guc.guc_fw; + struct intel_uc_fw *guc_fw = &dev_priv->guc.fw; const char *fw_path; if (!HAS_GUC(dev_priv)) { @@ -740,23 +740,23 @@ void intel_guc_init(struct drm_i915_private *dev_priv) fw_path = NULL; } else if (IS_SKYLAKE(dev_priv)) { fw_path = I915_SKL_GUC_UCODE; - guc_fw->guc_fw_major_wanted = SKL_FW_MAJOR; - guc_fw->guc_fw_minor_wanted = SKL_FW_MINOR; + guc_fw->major_ver_wanted = SKL_FW_MAJOR; + guc_fw->minor_ver_wanted = SKL_FW_MINOR; } else if (IS_BROXTON(dev_priv)) { fw_path = I915_BXT_GUC_UCODE; - guc_fw->guc_fw_major_wanted = BXT_FW_MAJOR; - guc_fw->guc_fw_minor_wanted = BXT_FW_MINOR; + guc_fw->major_ver_wanted = BXT_FW_MAJOR; + guc_fw->minor_ver_wanted = BXT_FW_MINOR; } else if (IS_KABYLAKE(dev_priv)) { fw_path = I915_KBL_GUC_UCODE; - guc_fw->guc_fw_major_wanted = KBL_FW_MAJOR; - guc_fw->guc_fw_minor_wanted = KBL_FW_MINOR; + guc_fw->major_ver_wanted = KBL_FW_MAJOR; + guc_fw->minor_ver_wanted = KBL_FW_MINOR; } else { fw_path = ""; /* unknown device */ } - guc_fw->guc_fw_path = fw_path; - guc_fw->guc_fw_fetch_status = GUC_FIRMWARE_NONE; - guc_fw->guc_fw_load_status = GUC_FIRMWARE_NONE; + guc_fw->path = fw_path; + guc_fw->fetch_status = INTEL_UC_FIRMWARE_NONE; + guc_fw->load_status = INTEL_UC_FIRMWARE_NONE; /* Early (and silent) return if GuC loading is disabled */ if (!i915.enable_guc_loading) @@ -766,9 +766,9 @@ void intel_guc_init(struct drm_i915_private *dev_priv) if (*fw_path == '\0') return; - guc_fw->guc_fw_fetch_status = GUC_FIRMWARE_PENDING; + guc_fw->fetch_status = INTEL_UC_FIRMWARE_PENDING; DRM_DEBUG_DRIVER("GuC firmware pending, path %s\n", fw_path); - guc_fw_fetch(dev_priv, guc_fw); + intel_uc_fw_fetch(dev_priv, guc_fw); /* status must now be FAIL or SUCCESS */ } @@ -778,17 +778,17 @@ void intel_guc_init(struct drm_i915_private *dev_priv) */ void intel_guc_fini(struct drm_i915_private *dev_priv) { - struct intel_guc_fw *guc_fw = &dev_priv->guc.guc_fw; + struct intel_uc_fw *guc_fw = &dev_priv->guc.fw; mutex_lock(&dev_priv->drm.struct_mutex); guc_interrupts_release(dev_priv); i915_guc_submission_disable(dev_priv); i915_guc_submission_fini(dev_priv); - if (guc_fw->guc_fw_obj) - i915_gem_object_put(guc_fw->guc_fw_obj); - guc_fw->guc_fw_obj = NULL; + if (guc_fw->obj) + i915_gem_object_put(guc_fw->obj); + guc_fw->obj = NULL; mutex_unlock(&dev_priv->drm.struct_mutex); - guc_fw->guc_fw_fetch_status = GUC_FIRMWARE_NONE; + guc_fw->fetch_status = INTEL_UC_FIRMWARE_NONE; } diff --git a/drivers/gpu/drm/i915/intel_uc.h b/drivers/gpu/drm/i915/intel_uc.h index 9490a8e..9bb8a1e 100644 --- a/drivers/gpu/drm/i915/intel_uc.h +++ b/drivers/gpu/drm/i915/intel_uc.h @@ -93,28 +93,28 @@ struct i915_guc_client { uint64_t submissions[I915_NUM_ENGINES]; }; -enum intel_guc_fw_status { - GUC_FIRMWARE_FAIL = -1, - GUC_FIRMWARE_NONE = 0, - GUC_FIRMWARE_PENDING, - GUC_FIRMWARE_SUCCESS +enum intel_uc_fw_status { + INTEL_UC_FIRMWARE_FAIL = -1, + INTEL_UC_FIRMWARE_NONE = 0, + INTEL_UC_FIRMWARE_PENDING, + INTEL_UC_FIRMWARE_SUCCESS }; /* * This structure encapsulates all the data needed during the process * of fetching, caching, and loading the firmware image into the GuC. */ -struct intel_guc_fw { - const char * guc_fw_path; - size_t guc_fw_size; - struct drm_i915_gem_object * guc_fw_obj; - enum intel_guc_fw_status guc_fw_fetch_status; - enum intel_guc_fw_status guc_fw_load_status; - - uint16_t guc_fw_major_wanted; - uint16_t guc_fw_minor_wanted; - uint16_t guc_fw_major_found; - uint16_t guc_fw_minor_found; +struct intel_uc_fw { + const char *path; + size_t size; + struct drm_i915_gem_object *obj; + enum intel_uc_fw_status fetch_status; + enum intel_uc_fw_status load_status; + + uint16_t major_ver_wanted; + uint16_t minor_ver_wanted; + uint16_t major_ver_found; + uint16_t minor_ver_found; uint32_t header_size; uint32_t header_offset; @@ -141,7 +141,7 @@ struct intel_guc_log { }; struct intel_guc { - struct intel_guc_fw guc_fw; + struct intel_uc_fw fw; struct intel_guc_log log; /* intel_guc_recv interrupt related state */ @@ -182,9 +182,10 @@ int intel_guc_log_control(struct intel_guc *guc, u32 control_val); extern void intel_guc_init(struct drm_i915_private *dev_priv); extern int intel_guc_setup(struct drm_i915_private *dev_priv); extern void intel_guc_fini(struct drm_i915_private *dev_priv); -extern const char *intel_guc_fw_status_repr(enum intel_guc_fw_status status); +extern const char *intel_uc_fw_status_repr(enum intel_uc_fw_status status); extern int intel_guc_suspend(struct drm_i915_private *dev_priv); extern int intel_guc_resume(struct drm_i915_private *dev_priv); +u32 intel_guc_wopcm_size(struct drm_i915_private *dev_priv); /* i915_guc_submission.c */ int i915_guc_submission_init(struct drm_i915_private *dev_priv); -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH 0/8] HuC Loading Patches 2017-01-13 17:03 [PATCH 0/8] HuC Loading Patches Anusha Srivatsa 2017-01-13 17:03 ` [PATCH 1/8] drm/i915/guc: Make the GuC fw loading helper functions general Anusha Srivatsa @ 2017-01-16 9:27 ` Jani Nikula 2017-01-16 9:45 ` Jani Nikula 1 sibling, 1 reply; 20+ messages in thread From: Jani Nikula @ 2017-01-16 9:27 UTC (permalink / raw) To: Anusha Srivatsa, intel-gfx On Fri, 13 Jan 2017, Anusha Srivatsa <anusha.srivatsa@intel.com> wrote: > The patches add HuC loading support. The driver builds a frame level > workload which is stored in the graphics memory. This workload is presented > to HuC for processing. The driver, therefore should first determine if the > HuC is enabled and also read the huC athentication status bit to determine > if HuC was successfully loaded. The GuC is required to authenticate the HuC. Please fix your git send-email workflow to send the patches properly threaded. Thank you. BR, Jani. -- Jani Nikula, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 0/8] HuC Loading Patches 2017-01-16 9:27 ` [PATCH 0/8] HuC Loading Patches Jani Nikula @ 2017-01-16 9:45 ` Jani Nikula 0 siblings, 0 replies; 20+ messages in thread From: Jani Nikula @ 2017-01-16 9:45 UTC (permalink / raw) To: Anusha Srivatsa, intel-gfx On Mon, 16 Jan 2017, Jani Nikula <jani.nikula@linux.intel.com> wrote: > On Fri, 13 Jan 2017, Anusha Srivatsa <anusha.srivatsa@intel.com> wrote: >> The patches add HuC loading support. The driver builds a frame level >> workload which is stored in the graphics memory. This workload is presented >> to HuC for processing. The driver, therefore should first determine if the >> HuC is enabled and also read the huC athentication status bit to determine >> if HuC was successfully loaded. The GuC is required to authenticate the HuC. > > Please fix your git send-email workflow to send the patches properly > threaded. Thank you. And now I finally reached the properly sent series from Saturday. Sorry for the noise. BR, Jani. -- Jani Nikula, Intel Open Source Technology Center _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 0/8] HuC Loading Patches @ 2017-01-14 1:17 Anusha Srivatsa 0 siblings, 0 replies; 20+ messages in thread From: Anusha Srivatsa @ 2017-01-14 1:17 UTC (permalink / raw) To: intel-gfx The patches add HuC loading support. The driver builds a frame level workload which is stored in the graphics memory. This workload is presented to HuC for processing. The driver, therefore should first determine if the HuC is enabled and also read the huC athentication status bit to determine if HuC was successfully loaded. The GuC is required to authenticate the HuC. The userspace patches that check for a fully loaded HuC firmware and use it can be found at: https://lists.freedesktop.org/archives/libva/2016-September/004554.html https://lists.freedesktop.org/archives/libva/2016-September/004555.html More information regarding the HuC, batch commands that configure the HuC etc can be found at- https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-skl-vol02a-commandreference-instructions-huc.pdf https://www.x.org/docs/intel/CHV/intel-gfx-prm-osrc-chv-bsw-vol10-hevc.pdf v2: rebased. Changed the code following the review comments. v3: rebased. Organize code. Move contents of intel_huc.h to intel_uc.h. Update function intel_huc_load(),intel_huc_init() and intel_uc_fw_fetch() to accept dev_priv instead of dev. v4: rebased. Remove intel_is_huc_valid() since it is called onoly once. Refactor the code to reduce redundency. Remove fiels like uc_dev which are no longer used. v5: rebased. Beautify the code- remove comments that no longer hold good, add newlines etc. v6: rebased. Remove further redundency. Correct comments. Replace wait_for with intel_wait_for_register() for optimisation purpose.Make fw_type an enum. v7: rebased. Rename intel_huc_loader() to intel_huc(). Move intel_guc_auth_huc() from intel_uc.c to intel_huc.c. Add return values to DRM_ERRORs. v8: Use DRM_INFO instead of DRM_ERROR in places that are non-erraneous. Remove invalidates that are no longer required. Anusha Srivatsa (8): drm/i915/guc: Make the GuC fw loading helper functions general drm/i915/huc: Unified css_header struct for GuC and HuC drm/i915/huc: Add HuC fw loading support drm/i915/huc: Add BXT HuC Loading Support drm/i915/HuC: Add KBL huC loading Support drm/i915/huc: Add debugfs for HuC loading status check drm/i915/huc: Support HuC authentication drm/i915/get_params: Add HuC status to getparams drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/i915_debugfs.c | 43 +++- drivers/gpu/drm/i915/i915_drv.c | 10 + drivers/gpu/drm/i915/i915_drv.h | 2 + drivers/gpu/drm/i915/i915_guc_reg.h | 6 + drivers/gpu/drm/i915/i915_guc_submission.c | 4 +- drivers/gpu/drm/i915/intel_guc_fwif.h | 24 +- drivers/gpu/drm/i915/intel_guc_loader.c | 196 +++++++++-------- drivers/gpu/drm/i915/intel_huc.c | 342 +++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_uc.h | 60 +++-- include/uapi/drm/i915_drm.h | 1 + 11 files changed, 569 insertions(+), 120 deletions(-) create mode 100644 drivers/gpu/drm/i915/intel_huc.c -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 0/8] HuC Loading Patches @ 2017-01-13 18:08 Anusha Srivatsa 0 siblings, 0 replies; 20+ messages in thread From: Anusha Srivatsa @ 2017-01-13 18:08 UTC (permalink / raw) To: intel-gfx The patches add HuC loading support. The driver builds a frame level workload which is stored in the graphics memory. This workload is presented to HuC for processing. The driver, therefore should first determine if the HuC is enabled and also read the huC athentication status bit to determine if HuC was successfully loaded. The GuC is required to authenticate the HuC. The userspace patches that check for a fully loaded HuC firmware and use it can be found at: https://lists.freedesktop.org/archives/libva/2016-September/004554.html https://lists.freedesktop.org/archives/libva/2016-September/004555.html More information regarding the HuC, batch commands that configure the HuC etc can be found at- https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-skl-vol02a-commandreference-instructions-huc.pdf https://www.x.org/docs/intel/CHV/intel-gfx-prm-osrc-chv-bsw-vol10-hevc.pdf v2: rebased. Changed the code following the review comments. v3: rebased. Organize code. Move contents of intel_huc.h to intel_uc.h. Update function intel_huc_load(),intel_huc_init() and intel_uc_fw_fetch() to accept dev_priv instead of dev. v4: rebased. Remove intel_is_huc_valid() since it is called onoly once. Refactor the code to reduce redundency. Remove fiels like uc_dev which are no longer used. v5: rebased. Beautify the code- remove comments that no longer hold good, add newlines etc. v6: rebased. Remove further redundency. Correct comments. Replace wait_for with intel_wait_for_register() for optimisation purpose.Make fw_type an enum. v7: rebased. Rename intel_huc_loader() to intel_huc(). Move intel_guc_auth_huc() from intel_uc.c to intel_huc.c. Add return values to DRM_ERRORs. v8: Use DRM_INFO instead of DRM_ERROR in places that are non-erraneous. Remove invalidates that are no longer required. Anusha Srivatsa (8): drm/i915/guc: Make the GuC fw loading helper functions general drm/i915/huc: Unified css_header struct for GuC and HuC drm/i915/huc: Add HuC fw loading support drm/i915/huc: Add BXT HuC Loading Support drm/i915/HuC: Add KBL huC loading Support drm/i915/huc: Add debugfs for HuC loading status check drm/i915/huc: Support HuC authentication drm/i915/get_params: Add HuC status to getparams drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/i915_debugfs.c | 43 +++- drivers/gpu/drm/i915/i915_drv.c | 10 + drivers/gpu/drm/i915/i915_drv.h | 2 + drivers/gpu/drm/i915/i915_guc_reg.h | 6 + drivers/gpu/drm/i915/i915_guc_submission.c | 4 +- drivers/gpu/drm/i915/intel_guc_fwif.h | 24 +- drivers/gpu/drm/i915/intel_guc_loader.c | 196 +++++++++-------- drivers/gpu/drm/i915/intel_huc.c | 342 +++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_uc.h | 60 +++-- include/uapi/drm/i915_drm.h | 1 + 11 files changed, 569 insertions(+), 120 deletions(-) create mode 100644 drivers/gpu/drm/i915/intel_huc.c -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 0/8] HuC Loading Patches @ 2017-01-13 16:40 Anusha Srivatsa 0 siblings, 0 replies; 20+ messages in thread From: Anusha Srivatsa @ 2017-01-13 16:40 UTC (permalink / raw) To: intel-gfx The patches add HuC loading support. The driver builds a frame level workload which is stored in the graphics memory. This workload is presented to HuC for processing. The driver, therefore should first determine if the HuC is enabled and also read the huC athentication status bit to determine if HuC was successfully loaded. The GuC is required to authenticate the HuC. The userspace patches that check for a fully loaded HuC firmware and use it can be found at: https://lists.freedesktop.org/archives/libva/2016-September/004554.html https://lists.freedesktop.org/archives/libva/2016-September/004555.html More information regarding the HuC, batch commands that configure the HuC etc can be found at- https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-skl-vol02a-commandreference-instructions-huc.pdf https://www.x.org/docs/intel/CHV/intel-gfx-prm-osrc-chv-bsw-vol10-hevc.pdf v2: rebased. Changed the code following the review comments. v3: rebased. Organize code. Move contents of intel_huc.h to intel_uc.h. Update function intel_huc_load(),intel_huc_init() and intel_uc_fw_fetch() to accept dev_priv instead of dev. v4: rebased. Remove intel_is_huc_valid() since it is called onoly once. Refactor the code to reduce redundency. Remove fiels like uc_dev which are no longer used. v5: rebased. Beautify the code- remove comments that no longer hold good, add newlines etc. v6: rebased. Remove further redundency. Correct comments. Replace wait_for with intel_wait_for_register() for optimisation purpose.Make fw_type an enum. v7: rebased. Rename intel_huc_loader() to intel_huc(). Move intel_guc_auth_huc() from intel_uc.c to intel_huc.c. Add return values to DRM_ERRORs. Anusha Srivatsa (8): drm/i915/guc: Make the GuC fw loading helper functions general drm/i915/huc: Unified css_header struct for GuC and HuC drm/i915/huc: Add HuC fw loading support drm/i915/huc: Add BXT HuC Loading Support drm/i915/HuC: Add KBL huC loading Support drm/i915/huc: Add debugfs for HuC loading status check drm/i915/huc: Support HuC authentication drm/i915/get_params: Add HuC status to getparams drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/i915_debugfs.c | 43 +++- drivers/gpu/drm/i915/i915_drv.c | 10 + drivers/gpu/drm/i915/i915_drv.h | 2 + drivers/gpu/drm/i915/i915_guc_reg.h | 6 + drivers/gpu/drm/i915/i915_guc_submission.c | 4 +- drivers/gpu/drm/i915/intel_guc_fwif.h | 24 +- drivers/gpu/drm/i915/intel_guc_loader.c | 196 +++++++++-------- drivers/gpu/drm/i915/intel_huc.c | 342 +++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_uc.h | 60 +++-- include/uapi/drm/i915_drm.h | 1 + 11 files changed, 569 insertions(+), 120 deletions(-) create mode 100644 drivers/gpu/drm/i915/intel_huc.c -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 0/8] HuC Loading Patches @ 2017-01-13 14:26 Anusha Srivatsa 0 siblings, 0 replies; 20+ messages in thread From: Anusha Srivatsa @ 2017-01-13 14:26 UTC (permalink / raw) To: intel-gfx The patches add HuC loading support. The driver builds a frame level workload which is stored in the graphics memory. This workload is presented to HuC for processing. The driver, therefore should first determine if the HuC is enabled and also read the huC athentication status bit to determine if HuC was successfully loaded. The GuC is required to authenticate the HuC. The userspace patches that check for a fully loaded HuC firmware and use it can be found at: https://lists.freedesktop.org/archives/libva/2016-September/004554.html https://lists.freedesktop.org/archives/libva/2016-September/004555.html More information regarding the HuC, batch commands that configure the HuC etc can be found at- https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-skl-vol02a-commandreference-instructions-huc.pdf https://www.x.org/docs/intel/CHV/intel-gfx-prm-osrc-chv-bsw-vol10-hevc.pdf v2: rebased. Changed the code following the review comments. v3: rebased. Organize code. Move contents of intel_huc.h to intel_uc.h. Update function intel_huc_load(),intel_huc_init() and intel_uc_fw_fetch() to accept dev_priv instead of dev. v4: rebased. Remove intel_is_huc_valid() since it is called onoly once. Refactor the code to reduce redundency. Remove fiels like uc_dev which are no longer used. v5: rebased. Beautify the code- remove comments that no longer hold good, add newlines etc. v6: rebased. Remove further redundency. Correct comments. Replace wait_for with intel_wait_for_register() for optimisation purpose.Make fw_type an enum. v7: rebased. Rename intel_huc_loader() to intel_huc(). Move intel_guc_auth_huc() from intel_uc.c to intel_huc.c. Add return values to DRM_ERRORs. Anusha Srivatsa (8): drm/i915/guc: Make the GuC fw loading helper functions general drm/i915/huc: Unified css_header struct for GuC and HuC drm/i915/huc: Add HuC fw loading support drm/i915/huc: Add BXT HuC Loading Support drm/i915/HuC: Add KBL huC loading Support drm/i915/huc: Add debugfs for HuC loading status check drm/i915/huc: Support HuC authentication drm/i915/get_params: Add HuC status to getparams drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/i915_debugfs.c | 43 +++- drivers/gpu/drm/i915/i915_drv.c | 10 + drivers/gpu/drm/i915/i915_drv.h | 2 + drivers/gpu/drm/i915/i915_guc_reg.h | 6 + drivers/gpu/drm/i915/i915_guc_submission.c | 4 +- drivers/gpu/drm/i915/intel_guc_fwif.h | 24 +- drivers/gpu/drm/i915/intel_guc_loader.c | 196 +++++++++-------- drivers/gpu/drm/i915/intel_huc.c | 342 +++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_uc.h | 60 +++-- include/uapi/drm/i915_drm.h | 1 + 11 files changed, 569 insertions(+), 120 deletions(-) create mode 100644 drivers/gpu/drm/i915/intel_huc.c -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 0/8] HuC Loading Patches @ 2017-01-04 14:55 Anusha Srivatsa 0 siblings, 0 replies; 20+ messages in thread From: Anusha Srivatsa @ 2017-01-04 14:55 UTC (permalink / raw) To: intel-gfx These patches add HuC loading support. The driver builds a frame level workload which is stored in the graphics memory. This workload is presented to HuC for processing. The driver, therefore should first determine if the HuC is enabled and also read the huC athentication status bit to determine if HuC was successfully loaded. The GuC is required to authenticate the HuC. The userspace patches that check for a fully loaded HuC firmware and use it can be found at: https://lists.freedesktop.org/archives/libva/2016-September/004554.html https://lists.freedesktop.org/archives/libva/2016-September/004555.html More information regarding the HuC, batch commands that configure the HuC etc can be found at- https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-skl-vol02a-commandreference-instructions-huc.pdf https://www.x.org/docs/intel/CHV/intel-gfx-prm-osrc-chv-bsw-vol10-hevc.pdf v2: rebased. v3: rebased. Changed the code following the review comments. v4: Added action_lock initialization fix provided by Arek (Hiler Arkadiusz) to the first patch in the series- Make the GuC fw loading helper functions general. v5: rebased on top of drm-tip. The patch series is now in sync with GuC code reorganization efforts by Arek- https://patchwork.freedesktop.org/series/15896/ v6:rebased. Organize code. Move contents of intel_huc.h to intel_uc.h. Update function intel_huc_load(),intel_huc_init() and intel_uc_fw_fetch() to accept dev_priv instead of dev. v7: rebased. Remove intel_is_huc_valid() since it is called onoly once. Refactor the code to reduce redundency. Remove fiels like uc_dev which are no longer used. v8: rebased. Beautify the code- remove comments that no longer hold good, add newlines etc. v9: rebased. Remove further redundency. Correct comments. Replace wait_for with intel_wait_for_register() for optimisation purpose.Make fw_type an enum. Anusha Srivatsa (3): drm/i915/huc: Add HuC fw loading support drm/i915/huc: Add BXT HuC Loading Support drm/i915/HuC: Add KBL huC loading Support Peter Antoine (5): drm/i915/guc: Make the GuC fw loading helper functions general drm/i915/huc: Unified css_header struct for GuC and HuC drm/i915/huc: Add debugfs for HuC loading status check drm/i915/huc: Support HuC authentication drm/i915/get_params: Add HuC status to getparams drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/i915_debugfs.c | 43 ++++- drivers/gpu/drm/i915/i915_drv.c | 11 +- drivers/gpu/drm/i915/i915_drv.h | 3 +- drivers/gpu/drm/i915/i915_guc_reg.h | 3 + drivers/gpu/drm/i915/i915_guc_submission.c | 4 +- drivers/gpu/drm/i915/intel_guc_fwif.h | 24 ++- drivers/gpu/drm/i915/intel_guc_loader.c | 200 ++++++++++---------- drivers/gpu/drm/i915/intel_huc_loader.c | 283 +++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_uc.c | 68 ++++++- drivers/gpu/drm/i915/intel_uc.h | 64 +++++-- include/uapi/drm/i915_drm.h | 1 + 12 files changed, 579 insertions(+), 126 deletions(-) create mode 100644 drivers/gpu/drm/i915/intel_huc_loader.c -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 0/8] HuC Loading Patches @ 2017-01-04 13:27 Anusha Srivatsa 0 siblings, 0 replies; 20+ messages in thread From: Anusha Srivatsa @ 2017-01-04 13:27 UTC (permalink / raw) To: intel-gfx These patches add HuC loading support. The driver builds a frame level workload which is stored in the graphics memory. This workload is presented to HuC for processing. The driver, therefore should first determine if the HuC is enabled and also read the huC athentication status bit to determine if HuC was successfully loaded. The GuC is required to authenticate the HuC. The userspace patches that check for a fully loaded HuC firmware and use it can be found at: https://lists.freedesktop.org/archives/libva/2016-September/004554.html https://lists.freedesktop.org/archives/libva/2016-September/004555.html More information regarding the HuC, batch commands that configure the HuC etc can be found at- https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-skl-vol02a-commandreference-instructions-huc.pdf https://www.x.org/docs/intel/CHV/intel-gfx-prm-osrc-chv-bsw-vol10-hevc.pdf v2: rebased. v3: rebased. Changed the code following the review comments. v4: Added action_lock initialization fix provided by Arek (Hiler Arkadiusz) to the first patch in the series- Make the GuC fw loading helper functions general. v5: rebased on top of drm-tip. The patch series is now in sync with GuC code reorganization efforts by Arek- https://patchwork.freedesktop.org/series/15896/ v6:rebased. Organize code. Move contents of intel_huc.h to intel_uc.h. Update function intel_huc_load(),intel_huc_init() and intel_uc_fw_fetch() to accept dev_priv instead of dev. v7: rebased. Remove intel_is_huc_valid() since it is called onoly once. Refactor the code to reduce redundency. Remove fiels like uc_dev which are no longer used. v8: rebased. Beautify the code- remove comments that no longer hold good, add newlines etc. v9: rebased. Remove further redundency. Correct comments. Replace wait_for with intel_wait_for_register() for optimisation purpose.Make fw_type an enum. Anusha Srivatsa (3): drm/i915/huc: Add HuC fw loading support drm/i915/huc: Add BXT HuC Loading Support drm/i915/HuC: Add KBL huC loading Support Peter Antoine (5): drm/i915/guc: Make the GuC fw loading helper functions general drm/i915/huc: Unified css_header struct for GuC and HuC drm/i915/huc: Add debugfs for HuC loading status check drm/i915/huc: Support HuC authentication drm/i915/get_params: Add HuC status to getparams drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/i915_debugfs.c | 43 ++++- drivers/gpu/drm/i915/i915_drv.c | 11 +- drivers/gpu/drm/i915/i915_drv.h | 3 +- drivers/gpu/drm/i915/i915_guc_reg.h | 3 + drivers/gpu/drm/i915/i915_guc_submission.c | 4 +- drivers/gpu/drm/i915/intel_guc_fwif.h | 24 ++- drivers/gpu/drm/i915/intel_guc_loader.c | 200 ++++++++++---------- drivers/gpu/drm/i915/intel_huc_loader.c | 283 +++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_uc.c | 68 ++++++- drivers/gpu/drm/i915/intel_uc.h | 64 +++++-- include/uapi/drm/i915_drm.h | 1 + 12 files changed, 579 insertions(+), 126 deletions(-) create mode 100644 drivers/gpu/drm/i915/intel_huc_loader.c -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 0/8] HuC Loading Patches @ 2016-12-22 23:12 Anusha Srivatsa 0 siblings, 0 replies; 20+ messages in thread From: Anusha Srivatsa @ 2016-12-22 23:12 UTC (permalink / raw) To: intel-gfx These patches add HuC loading support. The driver builds a frame level workload which is stored in the graphics memory. This workload is presented to HuC for processing. The driver, therefore should first determine if the HuC is enabled and also read the huC athentication status bit to determine if HuC was successfully loaded. The GuC is required to authenticate the HuC. The userspace patches that check for a fully loaded HuC firmware and use it can be found at: https://lists.freedesktop.org/archives/libva/2016-September/004554.html https://lists.freedesktop.org/archives/libva/2016-September/004555.html More information regarding the HuC, batch commands that configure the HuC etc can be found at- https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-skl-vol02a-commandreference-instructions-huc.pdf https://www.x.org/docs/intel/CHV/intel-gfx-prm-osrc-chv-bsw-vol10-hevc.pdf v2: rebased. v3: rebased. Changed the code following the review comments. v4: Added action_lock initialization fix provided by Arek (Hiler Arkadiusz) to the first patch in the series- Make the GuC fw loading helper functions general. v5: rebased on top of drm-tip. The patch series is now in sync with GuC code reorganization efforts by Arek- https://patchwork.freedesktop.org/series/15896/ v6:rebased. Organize code. Move contents of intel_huc.h to intel_uc.h. Update function intel_huc_load(),intel_huc_init() and intel_uc_fw_fetch() to accept dev_priv instead of dev. v7: rebased. Remove intel_is_huc_valid() since it is called onoly once. Refactor the code to reduce redundency. Remove fiels like uc_dev which are no longer used. v8: rebased. Beautify the code- remove comments that no longer hold good, add newlines etc. Anusha Srivatsa (3): drm/i915/huc: Add HuC fw loading support drm/i915/huc: Add BXT HuC Loading Support drm/i915/HuC: Add KBL huC loading Support Peter Antoine (5): drm/i915/guc: Make the GuC fw loading helper functions general drm/i915/huc: Unified css_header struct for GuC and HuC drm/i915/huc: Add debugfs for HuC loading status check drm/i915/huc: Support HuC authentication drm/i915/get_params: Add HuC status to getparams drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/i915_debugfs.c | 43 ++++- drivers/gpu/drm/i915/i915_drv.c | 11 +- drivers/gpu/drm/i915/i915_drv.h | 3 +- drivers/gpu/drm/i915/i915_guc_reg.h | 3 + drivers/gpu/drm/i915/i915_guc_submission.c | 4 +- drivers/gpu/drm/i915/intel_guc_fwif.h | 24 ++- drivers/gpu/drm/i915/intel_guc_loader.c | 200 +++++++++++--------- drivers/gpu/drm/i915/intel_huc_loader.c | 286 +++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_uc.c | 62 +++++++ drivers/gpu/drm/i915/intel_uc.h | 63 +++++-- include/uapi/drm/i915_drm.h | 1 + 12 files changed, 577 insertions(+), 124 deletions(-) create mode 100644 drivers/gpu/drm/i915/intel_huc_loader.c -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 0/8] HuC Loading Patches @ 2016-12-15 22:29 anushasr 0 siblings, 0 replies; 20+ messages in thread From: anushasr @ 2016-12-15 22:29 UTC (permalink / raw) To: intel-gfx These patches add HuC loading support. The driver builds a frame level workload which is stored in the graphics memory. This workload is presented to HuC for processing. The driver, therefore should first determine if the HuC is enabled and also read the huC athentication status bit to determine if HuC was successfully loaded. The GuC is required to authenticate the HuC. The userspace patches that check for a fully loaded HuC firmware and use it can be found at: https://lists.freedesktop.org/archives/libva/2016-September/004554.html https://lists.freedesktop.org/archives/libva/2016-September/004555.html More information regarding the HuC, batch commands that configure the HuC etc can be found at- https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-skl-vol02a-commandreference-instructions-huc.pdf https://www.x.org/docs/intel/CHV/intel-gfx-prm-osrc-chv-bsw-vol10-hevc.pdf v2: rebased. v3: rebased. Changed the code following the review comments. v4: Added action_lock initialization fix provided by Arek (Hiler Arkadiusz) to the first patch in the series- Make the GuC fw loading helper functions general. v5: rebased on top of drm-tip. The patch series is now in sync with GuC code reorganization efforts by Arek- https://patchwork.freedesktop.org/series/15896/ v6:rebased. Organize code. Move contents of intel_huc.h to intel_uc.h. Update function intel_huc_load(),intel_huc_init() and intel_uc_fw_fetch() to accept dev_priv instead of dev. v7: rebased. Remove intel_is_huc_valid() since it is called onoly once. Refactor the code to reduce redundency. Remove fiels like uc_dev which are no longer used. Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com> Cc: Arek <arkadiusz.hiler@intel.com> Cc: Jeff Mcgee <jeff.mcgee@intel.com> BLURB HERE *** Cc: Chris Wilson <Chris@chris-wilson.co.uk> Anusha Srivatsa (3): drm/i915/huc: Add HuC fw loading support drm/i915/huc: Add BXT HuC Loading Support drm/i915/HuC: Add KBL huC loading Support Peter Antoine (5): drm/i915/guc: Make the GuC fw loading helper functions general drm/i915/huc: Unified css_header struct for GuC and HuC drm/i915/huc: Add debugfs for HuC loading status check drm/i915/huc: Support HuC authentication drm/i915/get_params: Add HuC status to getparams drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/i915_debugfs.c | 43 ++++- drivers/gpu/drm/i915/i915_drv.c | 8 +- drivers/gpu/drm/i915/i915_drv.h | 3 +- drivers/gpu/drm/i915/i915_guc_reg.h | 3 + drivers/gpu/drm/i915/i915_guc_submission.c | 4 +- drivers/gpu/drm/i915/intel_guc_fwif.h | 24 ++- drivers/gpu/drm/i915/intel_guc_loader.c | 201 +++++++++++--------- drivers/gpu/drm/i915/intel_huc_loader.c | 290 +++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_uc.c | 62 ++++++ drivers/gpu/drm/i915/intel_uc.h | 63 +++++-- include/uapi/drm/i915_drm.h | 1 + 12 files changed, 579 insertions(+), 124 deletions(-) create mode 100644 drivers/gpu/drm/i915/intel_huc_loader.c -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 0/8]HuC Loading Patches @ 2016-12-08 23:02 anushasr 0 siblings, 0 replies; 20+ messages in thread From: anushasr @ 2016-12-08 23:02 UTC (permalink / raw) To: intel-gfx These patches add HuC loading support. The GuC is required to authenticate the HuC. The userspace patches that check for a fully loaded HuC firmware and use it can be found at: https://lists.freedesktop.org/archives/libva/2016-September/004554.html https://lists.freedesktop.org/archives/libva/2016-September/004555.html More information regarding the HuC, batch commands that configure the HuC etc can be found at- https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-skl-vol02a-commandreference-instructions-huc.pdf https://www.x.org/docs/intel/CHV/intel-gfx-prm-osrc-chv-bsw-vol10-hevc.pdf v2: rebased. v3: rebased. Changed the code following the review comments. v4: Added action_lock initialization fix provided by Arek (Hiler Arkadiusz) to the first patch in the series- Make the GuC fw loading helper functions general. v5: rebased on top of drm-tip. The patch series is now in sync with GuC code reorganization efforts by Arek- https://patchwork.freedesktop.org/series/15896/ v6: rebased. Organize the code-move contents of intel_huc.h to intel_uc.h. Update functions intel_huc_load(),intel_huc_init() and intel_uc_fw_fetch() to accept dev_priv instead of dev. Anusha Srivatsa (3): drm/i915/huc: Add HuC fw loading support drm/i915/huc: Add BXT HuC Loading Support drm/i915/HuC: Add KBL huC loading Support Peter Antoine (5): drm/i915/guc: Make the GuC fw loading helper functions general drm/i915/huc: Unified css_header struct for GuC and HuC drm/i915/huc: Add debugfs for HuC loading status check drm/i915/huc: Support HuC authentication drm/i915/get_params: Add HuC status to getparams drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/i915_debugfs.c | 43 +++- drivers/gpu/drm/i915/i915_drv.c | 8 +- drivers/gpu/drm/i915/i915_drv.h | 3 +- drivers/gpu/drm/i915/i915_guc_reg.h | 3 + drivers/gpu/drm/i915/i915_guc_submission.c | 4 +- drivers/gpu/drm/i915/intel_guc_fwif.h | 22 ++- drivers/gpu/drm/i915/intel_guc_loader.c | 199 ++++++++++--------- drivers/gpu/drm/i915/intel_huc_loader.c | 303 +++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_uc.c | 61 ++++++ drivers/gpu/drm/i915/intel_uc.h | 68 +++++-- include/uapi/drm/i915_drm.h | 1 + 12 files changed, 593 insertions(+), 123 deletions(-) create mode 100644 drivers/gpu/drm/i915/intel_huc_loader.c -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 0/8] HuC Loading Patches @ 2016-11-30 23:31 Anusha Srivatsa 0 siblings, 0 replies; 20+ messages in thread From: Anusha Srivatsa @ 2016-11-30 23:31 UTC (permalink / raw) To: intel-gfx These patches add HuC loading support. The GuC is required to authenticate the HuC. The userspace patches that check for a fully loaded HuC firmware and use it can be found at: https://lists.freedesktop.org/archives/libva/2016-September/004554.html https://lists.freedesktop.org/archives/libva/2016-September/004555.html More information regarding the HuC, batch commands that configure the HuC etc can be found at- https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-skl-vol02a-commandreference-instructions-huc.pdf https://www.x.org/docs/intel/CHV/intel-gfx-prm-osrc-chv-bsw-vol10-hevc.pdf v2: rebased. v3: rebased. Changed the code following the review comments. v4: Added action_lock initialization fix provided by Arek (Hiler Arkadiusz) to the first patch in the series- Make the GuC fw loading helper functions general. v5: rebased on top of drm-tip. The patch series is now in sync with GuC code reorganization efforts by Arek- https://patchwork.freedesktop.org/series/15896/ Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com> Cc: Arek <arkadiusz.hiler@intel.com> Cc: Jeff Mcgee <jeff.mcgee@intel.com> Anusha Srivatsa (2): drm/i915/huc: Add BXT HuC Loading Support drm/i915/HuC: Add KBL huC loading Support Peter Antoine (6): drm/i915/guc: Make the GuC fw loading helper functions general drm/i915/huc: Unified css_header struct for GuC and HuC drm/i914/huc: Add HuC fw loading support drm/i915/huc: Add debugfs for HuC loading status check drm/i915/huc: Support HuC authentication drm/i915/get_params: Add HuC status to getparams drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/i915_debugfs.c | 43 +++- drivers/gpu/drm/i915/i915_drv.c | 9 +- drivers/gpu/drm/i915/i915_drv.h | 4 +- drivers/gpu/drm/i915/i915_guc_reg.h | 3 + drivers/gpu/drm/i915/i915_guc_submission.c | 67 ++++++- drivers/gpu/drm/i915/intel_guc_fwif.h | 22 ++- drivers/gpu/drm/i915/intel_guc_loader.c | 196 +++++++++--------- drivers/gpu/drm/i915/intel_huc.h | 43 ++++ drivers/gpu/drm/i915/intel_huc_loader.c | 306 +++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_uc.h | 47 +++-- include/uapi/drm/i915_drm.h | 1 + 12 files changed, 620 insertions(+), 122 deletions(-) create mode 100644 drivers/gpu/drm/i915/intel_huc.h create mode 100644 drivers/gpu/drm/i915/intel_huc_loader.c -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 0/8] HuC Loading Patches @ 2016-11-23 22:27 Anusha Srivatsa 2016-11-25 14:40 ` Arkadiusz Hiler 0 siblings, 1 reply; 20+ messages in thread From: Anusha Srivatsa @ 2016-11-23 22:27 UTC (permalink / raw) To: intel-gfx These patches add HuC loading support. The userspace patches that check for a fully loaded HuC firmware and use it can be found at: https://lists.freedesktop.org/archives/libva/2016-September/004554.html https://lists.freedesktop.org/archives/libva/2016-September/004555.html v2: rebased. v3: rebased. Changed the code following the review comments. v4: Added action_lock initialization fix provided by Arick (Hiler Arkadiusz) to the first patch in the series- Make the GuC fw loading helper functions general. Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com> Anusha Srivatsa (2): drm/i915/huc: Add BXT HuC Loading Support drm/i915/HuC: Add KBL huC loading Support Peter Antoine (6): drm/i915/guc: Make the GuC fw loading helper functions general. Always initialize action_lock drm/i915/huc: Unified css_header struct for GuC and HuC drm/i915/huc: Add HuC fw loading support drm/i915/huc: Add debugfs for HuC loading status check drm/i915/huc: Support HuC authentication drm/i915/get_params: Add HuC status to getparams drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/i915_debugfs.c | 43 +++- drivers/gpu/drm/i915/i915_drv.c | 8 + drivers/gpu/drm/i915/i915_drv.h | 3 + drivers/gpu/drm/i915/i915_guc_reg.h | 3 + drivers/gpu/drm/i915/i915_guc_submission.c | 70 ++++++- drivers/gpu/drm/i915/intel_guc.h | 49 +++-- drivers/gpu/drm/i915/intel_guc_fwif.h | 22 ++- drivers/gpu/drm/i915/intel_guc_loader.c | 196 +++++++++--------- drivers/gpu/drm/i915/intel_huc.h | 43 ++++ drivers/gpu/drm/i915/intel_huc_loader.c | 306 +++++++++++++++++++++++++++++ include/uapi/drm/i915_drm.h | 1 + 12 files changed, 624 insertions(+), 121 deletions(-) create mode 100644 drivers/gpu/drm/i915/intel_huc.h create mode 100644 drivers/gpu/drm/i915/intel_huc_loader.c -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 0/8] HuC Loading Patches 2016-11-23 22:27 Anusha Srivatsa @ 2016-11-25 14:40 ` Arkadiusz Hiler 0 siblings, 0 replies; 20+ messages in thread From: Arkadiusz Hiler @ 2016-11-25 14:40 UTC (permalink / raw) To: Anusha Srivatsa; +Cc: intel-gfx On Wed, Nov 23, 2016 at 02:27:35PM -0800, Anusha Srivatsa wrote: > These patches add HuC loading support. The userspace > patches that check for a fully loaded HuC firmware and use > it can be found at: > https://lists.freedesktop.org/archives/libva/2016-September/004554.html > https://lists.freedesktop.org/archives/libva/2016-September/004555.html > > v2: rebased. > v3: rebased. Changed the code following the review comments. > v4: Added action_lock initialization fix provided by Arick > (Hiler Arkadiusz) to the first patch in the series- Make the > GuC fw loading helper functions general. > > Signed-off-by: Anusha Srivatsa <anusha.srivatsa@intel.com> > > Anusha Srivatsa (2): > drm/i915/huc: Add BXT HuC Loading Support > drm/i915/HuC: Add KBL huC loading Support > > Peter Antoine (6): > drm/i915/guc: Make the GuC fw loading helper functions general. Always > initialize action_lock > drm/i915/huc: Unified css_header struct for GuC and HuC > drm/i915/huc: Add HuC fw loading support > drm/i915/huc: Add debugfs for HuC loading status check > drm/i915/huc: Support HuC authentication Bolting HuC authenticaiton to the guc_submission.c is not very elegant solution. Yes, it uses the same mechanism, but HuC can be set up having GuC submission turned off. This approach already caused us issues with the 'action_lock'. I do not think that is the place for the code anyway. Instead I have whole patch series (currently in review) that does some GuC codebase reorganization - it evolved from the mutex_init() moving patch you've seen. New files, intel_uc.{c,h} are introduced - those are suitable for renamed intel_uc_* entities from: " drm/i915/guc: Make the GuC fw loading helper functions general" The series also exposes intel_guc_{send,recv}() functions which you can use for triggering the HuC authentication (rebranded host2guc_*). Please take a look at "GuC code reorganization" series and share your thoughs. -- Cheers, Arek _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 0/8] HuC Loading Patches @ 2016-10-03 18:42 Anusha Srivatsa 2016-10-07 7:09 ` Daniel Vetter 0 siblings, 1 reply; 20+ messages in thread From: Anusha Srivatsa @ 2016-10-03 18:42 UTC (permalink / raw) To: intel-gfx These patches add HuC loading support. The userspace patches that check for a fully loaded HuC firmware and use it can be found at: https://lists.freedesktop.org/archives/libva/2016-September/004554.html https://lists.freedesktop.org/archives/libva/2016-September/004555.html v2: rebased. Peter Antoine (8): drm/i915/guc: Make the GuC fw loading helper functions general drm/i915/huc: Unified css_header struct for GuC and HuC drm/i915/huc: Add HuC fw loading support drm/i915/huc: Add debugfs for HuC loading status check drm/i915/huc: Support HuC authentication drm/i915/huc: Add BXT HuC Loading Support drm/i915/get_params: Add GuC status to getparams drm/i915/get_params: Add HuC status to getparams drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/i915_debugfs.c | 43 ++++- drivers/gpu/drm/i915/i915_drv.c | 11 ++ drivers/gpu/drm/i915/i915_drv.h | 3 + drivers/gpu/drm/i915/i915_guc_reg.h | 3 + drivers/gpu/drm/i915/i915_guc_submission.c | 69 ++++++- drivers/gpu/drm/i915/intel_guc.h | 48 ++--- drivers/gpu/drm/i915/intel_guc_fwif.h | 17 +- drivers/gpu/drm/i915/intel_guc_loader.c | 215 ++++++++++++--------- drivers/gpu/drm/i915/intel_huc.h | 44 +++++ drivers/gpu/drm/i915/intel_huc_loader.c | 289 +++++++++++++++++++++++++++++ include/uapi/drm/i915_drm.h | 2 + 12 files changed, 624 insertions(+), 121 deletions(-) create mode 100644 drivers/gpu/drm/i915/intel_huc.h create mode 100644 drivers/gpu/drm/i915/intel_huc_loader.c -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 0/8] HuC Loading Patches 2016-10-03 18:42 Anusha Srivatsa @ 2016-10-07 7:09 ` Daniel Vetter 0 siblings, 0 replies; 20+ messages in thread From: Daniel Vetter @ 2016-10-07 7:09 UTC (permalink / raw) To: Anusha Srivatsa; +Cc: intel-gfx On Mon, Oct 03, 2016 at 11:42:54AM -0700, Anusha Srivatsa wrote: > These patches add HuC loading support. The userspace > patches that check for a fully loaded HuC firmware and use > it can be found at: > https://lists.freedesktop.org/archives/libva/2016-September/004554.html > https://lists.freedesktop.org/archives/libva/2016-September/004555.html > > v2: rebased. When submitting patches you always have to add your signed-off-by, even when they're not yours. The chain of people who've touched a patch must be completely tracked with these signed-off-by. No ideas on the patches themselves since I'm not a huc/guc expert. -Daniel > > > Peter Antoine (8): > drm/i915/guc: Make the GuC fw loading helper functions general > drm/i915/huc: Unified css_header struct for GuC and HuC > drm/i915/huc: Add HuC fw loading support > drm/i915/huc: Add debugfs for HuC loading status check > drm/i915/huc: Support HuC authentication > drm/i915/huc: Add BXT HuC Loading Support > drm/i915/get_params: Add GuC status to getparams > drm/i915/get_params: Add HuC status to getparams > > drivers/gpu/drm/i915/Makefile | 1 + > drivers/gpu/drm/i915/i915_debugfs.c | 43 ++++- > drivers/gpu/drm/i915/i915_drv.c | 11 ++ > drivers/gpu/drm/i915/i915_drv.h | 3 + > drivers/gpu/drm/i915/i915_guc_reg.h | 3 + > drivers/gpu/drm/i915/i915_guc_submission.c | 69 ++++++- > drivers/gpu/drm/i915/intel_guc.h | 48 ++--- > drivers/gpu/drm/i915/intel_guc_fwif.h | 17 +- > drivers/gpu/drm/i915/intel_guc_loader.c | 215 ++++++++++++--------- > drivers/gpu/drm/i915/intel_huc.h | 44 +++++ > drivers/gpu/drm/i915/intel_huc_loader.c | 289 +++++++++++++++++++++++++++++ > include/uapi/drm/i915_drm.h | 2 + > 12 files changed, 624 insertions(+), 121 deletions(-) > create mode 100644 drivers/gpu/drm/i915/intel_huc.h > create mode 100644 drivers/gpu/drm/i915/intel_huc_loader.c > > -- > 2.7.4 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH 0/8] HuC Loading Patches @ 2016-09-29 18:03 Anusha Srivatsa 2016-10-13 13:10 ` Daniel Vetter 0 siblings, 1 reply; 20+ messages in thread From: Anusha Srivatsa @ 2016-09-29 18:03 UTC (permalink / raw) To: intel-gfx These patches add HuC loading support. The userspace patches that check for a fully loaded HuC firmware and use it can be found at: https://lists.freedesktop.org/archives/libva/2016-September/004554.html https://lists.freedesktop.org/archives/libva/2016-September/004555.html Peter Antoine (8): drm/i915/guc: Make the GuC fw loading helper functions general drm/i915/huc: Unified css_header struct for GuC and HuC drm/i915/huc: Add HuC fw loading support drm/i915/huc: Add debugfs for HuC loading status check drm/i915/huc: Support HuC authentication drm/i915/huc: Add BXT HuC Loading Support drm/i915/get_params: Add GuC status to getparams drm/i915/get_params: Add HuC status to getparams drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/i915_debugfs.c | 43 ++++- drivers/gpu/drm/i915/i915_drv.c | 11 ++ drivers/gpu/drm/i915/i915_drv.h | 3 + drivers/gpu/drm/i915/i915_guc_reg.h | 3 + drivers/gpu/drm/i915/i915_guc_submission.c | 69 ++++++- drivers/gpu/drm/i915/intel_guc.h | 46 +++-- drivers/gpu/drm/i915/intel_guc_fwif.h | 17 +- drivers/gpu/drm/i915/intel_guc_loader.c | 215 ++++++++++++--------- drivers/gpu/drm/i915/intel_huc.h | 44 +++++ drivers/gpu/drm/i915/intel_huc_loader.c | 289 +++++++++++++++++++++++++++++ include/uapi/drm/i915_drm.h | 2 + 12 files changed, 623 insertions(+), 120 deletions(-) create mode 100644 drivers/gpu/drm/i915/intel_huc.h create mode 100644 drivers/gpu/drm/i915/intel_huc_loader.c -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH 0/8] HuC Loading Patches 2016-09-29 18:03 Anusha Srivatsa @ 2016-10-13 13:10 ` Daniel Vetter 0 siblings, 0 replies; 20+ messages in thread From: Daniel Vetter @ 2016-10-13 13:10 UTC (permalink / raw) To: Anusha Srivatsa; +Cc: intel-gfx On Thu, Sep 29, 2016 at 11:03:57AM -0700, Anusha Srivatsa wrote: > These patches add HuC loading support. The userspace > patches that check for a fully loaded HuC firmware and use > it can be found at: > https://lists.freedesktop.org/archives/libva/2016-September/004554.html > https://lists.freedesktop.org/archives/libva/2016-September/004555.html > > Peter Antoine (8): > drm/i915/guc: Make the GuC fw loading helper functions general > drm/i915/huc: Unified css_header struct for GuC and HuC > drm/i915/huc: Add HuC fw loading support > drm/i915/huc: Add debugfs for HuC loading status check > drm/i915/huc: Support HuC authentication > drm/i915/huc: Add BXT HuC Loading Support > drm/i915/get_params: Add GuC status to getparams > drm/i915/get_params: Add HuC status to getparams So trouble with these is that both original authors (all of them) and reviewers left intel. Which means we don't have anyone anymore who understands this, and a big part of review is making sure that in the end at least two people (author+reviewer) really understand the patches in full detail. In short we need to restart the review process here again before merging :( -Daniel > > drivers/gpu/drm/i915/Makefile | 1 + > drivers/gpu/drm/i915/i915_debugfs.c | 43 ++++- > drivers/gpu/drm/i915/i915_drv.c | 11 ++ > drivers/gpu/drm/i915/i915_drv.h | 3 + > drivers/gpu/drm/i915/i915_guc_reg.h | 3 + > drivers/gpu/drm/i915/i915_guc_submission.c | 69 ++++++- > drivers/gpu/drm/i915/intel_guc.h | 46 +++-- > drivers/gpu/drm/i915/intel_guc_fwif.h | 17 +- > drivers/gpu/drm/i915/intel_guc_loader.c | 215 ++++++++++++--------- > drivers/gpu/drm/i915/intel_huc.h | 44 +++++ > drivers/gpu/drm/i915/intel_huc_loader.c | 289 +++++++++++++++++++++++++++++ > include/uapi/drm/i915_drm.h | 2 + > 12 files changed, 623 insertions(+), 120 deletions(-) > create mode 100644 drivers/gpu/drm/i915/intel_huc.h > create mode 100644 drivers/gpu/drm/i915/intel_huc_loader.c > > -- > 2.7.4 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2017-01-16 9:45 UTC | newest] Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2017-01-13 17:03 [PATCH 0/8] HuC Loading Patches Anusha Srivatsa 2017-01-13 17:03 ` [PATCH 1/8] drm/i915/guc: Make the GuC fw loading helper functions general Anusha Srivatsa 2017-01-16 9:27 ` [PATCH 0/8] HuC Loading Patches Jani Nikula 2017-01-16 9:45 ` Jani Nikula -- strict thread matches above, loose matches on Subject: below -- 2017-01-14 1:17 Anusha Srivatsa 2017-01-13 18:08 Anusha Srivatsa 2017-01-13 16:40 Anusha Srivatsa 2017-01-13 14:26 Anusha Srivatsa 2017-01-04 14:55 Anusha Srivatsa 2017-01-04 13:27 Anusha Srivatsa 2016-12-22 23:12 Anusha Srivatsa 2016-12-15 22:29 anushasr 2016-12-08 23:02 [PATCH 0/8]HuC " anushasr 2016-11-30 23:31 [PATCH 0/8] HuC " Anusha Srivatsa 2016-11-23 22:27 Anusha Srivatsa 2016-11-25 14:40 ` Arkadiusz Hiler 2016-10-03 18:42 Anusha Srivatsa 2016-10-07 7:09 ` Daniel Vetter 2016-09-29 18:03 Anusha Srivatsa 2016-10-13 13:10 ` Daniel Vetter
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.