• Arun Siluvery's avatar
    drm/i915/guc: reset GuC and retry on firmware load failure · 6b332fa2
    Arun Siluvery authored
    Due to timing issues in the HW, some of the status bits required for GuC
    authentication occasionally don't get set; when that happens, the GuC
    cannot be initialized and we will be left with a wedged GPU. The W/A
    suggested is to perform a soft reset of the GuC and attempt to reload
    the F/W again for few times before giving up.
    
    As the failure is dependent on timing, tests performed by triggering
    manual full gpu reset (i915_wedged) showed that we could sometimes hit
    this after several thousand iterations, but sometimes tests ran even
    longer without any issues. Reset and reload mechanism proved helpful
    when we indeed hit f/w load failure, so it is better to include this
    to improve driver stability.
    
    This change implements the following WAs,
    
    	WaEnableuKernelHeaderValidFix:skl,bxt
    	WaEnableGuCBootHashCheckNotSet:skl,bxt
    Signed-off-by: default avatarArun Siluvery <arun.siluvery@linux.intel.com>
    Signed-off-by: default avatarDave Gordon <david.s.gordon@intel.com>
    Reviewed-by: default avatarAlex Dai <yu.dai@intel.com>
    Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
    6b332fa2
i915_drv.h 110 KB