On Thu, Jul 09, 2015 at 07:29:01PM +0100, Dave Gordon wrote: > This patch series enables command submission via the GuC. In this mode, > instead of the host CPU driving the execlist port directly, it hands > over work items to the GuC, using a doorbell mechanism to tell the GuC > that new items have been added to its work queue. The GuC then dispatches > contexts to the various GPU engines, and manages the resulting context- > switch interrupts. Completion of a batch is however still signalled to > the CPU; the GuC is not involved in handling user interrupts. > > There are two subsequences within the patch series: > > drm/i915: Add i915_gem_object_create_from_data() > drm/i915: Add GuC-related module parameters > drm/i915: Add GuC-related header files > drm/i915: GuC-specific firmware loader > drm/i915: Debugfs interface to read GuC load status > > These five patches make up the GuC loader and its prerequisites. At this > point in the sequence we can load and activate the GuC firmware, but not > submit any batches through it. (This is nonetheless a potentially useful > state, as the GuC could do other useful work even when not handling batch > submissions). > > drm/i915: Expose two LRC functions for GuC submission mode > drm/i915: GuC submission setup, phase 1 > drm/i915: Enable GuC firmware log > drm/i915: Implementation of GuC client > drm/i915: Interrupt routing for GuC submission > drm/i915: Integrate GuC-based command submission > drm/i915: Debugfs interface for GuC submission statistics > drm/i915: Enable GuC submission, where supported > > In this second section, we implement the GuC submission mechanism, link > it into the (execlist-based) submission path, and finally enable it > (on supported platforms). On platforms where there is no GuC, or if > GuC submission is explicitly disabled, batch submission will revert to > using the execlist mechanism directly. > > On the other hand, if the GuC firmware cannot be found or is invalid, > the GPU will be unusable. > > The GuC firmware itself is not included in this patchset; it is or will > be available for download from https://01.org/linuxgraphics/downloads/ > This driver works with and requires GuC firmware revision 3.x. It will > not work with any firmware version 1.x, as the GuC protocol in those > revisions was incompatible and is no longer supported. [TOR:] I finished reviewing the first 5 patches for GuC firmware loading. These patches look ready to go. Should we wait until the GuC version 3 firmware is available from 01.org before merging? I am still working on the second section for GuC submission. Thanks, Tom > > Ben Widawsky (0): > Vinit Azad (0): > Michael H. Nguyen (0): > created the original versions on which some of these patches are based. > > Alex Dai (6): > drm/i915: Add GuC-related module parameters > drm/i915: GuC-specific firmware loader > drm/i915: Debugfs interface to read GuC load status > drm/i915: GuC submission setup, phase 1 > drm/i915: Enable GuC firmware log > drm/i915: Integrate GuC-based command submission > > Dave Gordon (7): > drm/i915: Add i915_gem_object_create_from_data() > drm/i915: Add GuC-related header files > drm/i915: Expose two LRC functions for GuC submission mode > drm/i915: Implementation of GuC client > drm/i915: Interrupt routing for GuC submission > drm/i915: Debugfs interface for GuC submission statistics > drm/i915: Enable GuC submission, where supported > > Documentation/DocBook/drm.tmpl | 14 + > drivers/gpu/drm/i915/Makefile | 4 + > drivers/gpu/drm/i915/i915_debugfs.c | 110 +++- > drivers/gpu/drm/i915/i915_dma.c | 4 + > drivers/gpu/drm/i915/i915_drv.h | 15 + > drivers/gpu/drm/i915/i915_gem.c | 53 ++ > drivers/gpu/drm/i915/i915_guc_reg.h | 102 ++++ > drivers/gpu/drm/i915/i915_guc_submission.c | 853 +++++++++++++++++++++++++++++ > drivers/gpu/drm/i915/i915_params.c | 9 + > drivers/gpu/drm/i915/i915_reg.h | 15 +- > drivers/gpu/drm/i915/intel_guc.h | 118 ++++ > drivers/gpu/drm/i915/intel_guc_fwif.h | 245 +++++++++ > drivers/gpu/drm/i915/intel_guc_loader.c | 618 +++++++++++++++++++++ > drivers/gpu/drm/i915/intel_lrc.c | 72 ++- > drivers/gpu/drm/i915/intel_lrc.h | 9 + > 15 files changed, 2211 insertions(+), 30 deletions(-) > create mode 100644 drivers/gpu/drm/i915/i915_guc_reg.h > create mode 100644 drivers/gpu/drm/i915/i915_guc_submission.c > create mode 100644 drivers/gpu/drm/i915/intel_guc.h > create mode 100644 drivers/gpu/drm/i915/intel_guc_fwif.h > create mode 100644 drivers/gpu/drm/i915/intel_guc_loader.c > > -- > 1.9.1 > _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx