drm/panfrost: Add errata descriptions from kbase
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fri, 23 Aug 2019 15:51:49 +0000 (08:51 -0700)
committerRob Herring <robh@kernel.org>
Fri, 23 Aug 2019 17:16:27 +0000 (12:16 -0500)
While newer kbase include only the numbers of errata, older kbase
releases included one-line descriptions for each errata, which is useful
for those working on the driver. Import these descriptions. Most are
from kbase verbatim; a few I edited for clarity.

v2: Wrote a description for the workaround of an issue whose cause is
still unknown (Stephen). Errata which pertain to newer models
unsupported by the mainline driver, for which Arm has not yet released
errata information, have been removed from the issue list as the kernel
need not concern itself with these.

v3: Readded errata not yet handled, adding descriptions based on the
workarounds in the latest kbase release.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Signed-off-by: Rob Herring <robh@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20190823155149.7272-1-alyssa.rosenzweig@collabora.com
drivers/gpu/drm/panfrost/panfrost_issues.h

index cec6dcdadb5c3129c14254f93ad5187bc48c84db..8e59d765bf19f1bd71af569ce5811c17cafc49a2 100644 (file)
  * to care about.
  */
 enum panfrost_hw_issue {
+       /* Need way to guarantee that all previously-translated memory accesses
+        * are commited */
        HW_ISSUE_6367,
+
+       /* On job complete with non-done the cache is not flushed */
        HW_ISSUE_6787,
+
+       /* Write of PRFCNT_CONFIG_MODE_MANUAL to PRFCNT_CONFIG causes a
+        * instrumentation dump if PRFCNT_TILER_EN is enabled */
        HW_ISSUE_8186,
+
+       /* TIB: Reports faults from a vtile which has not yet been allocated */
        HW_ISSUE_8245,
+
+       /* uTLB deadlock could occur when writing to an invalid page at the
+        * same time as access to a valid page in the same uTLB cache line ( ==
+        * 4 PTEs == 16K block of mapping) */
        HW_ISSUE_8316,
+
+       /* HT: TERMINATE for RUN command ignored if previous LOAD_DESCRIPTOR is
+        * still executing */
        HW_ISSUE_8394,
+
+       /* CSE: Sends a TERMINATED response for a task that should not be
+        * terminated */
        HW_ISSUE_8401,
+
+       /* Repeatedly Soft-stopping a job chain consisting of (Vertex Shader,
+        * Cache Flush, Tiler) jobs causes DATA_INVALID_FAULT on tiler job. */
        HW_ISSUE_8408,
+
+       /* Disable the Pause Buffer in the LS pipe. */
        HW_ISSUE_8443,
+
+       /* Change in RMUs in use causes problems related with the core's SDC */
        HW_ISSUE_8987,
+
+       /* Compute endpoint has a 4-deep queue of tasks, meaning a soft stop
+        * won't complete until all 4 tasks have completed */
        HW_ISSUE_9435,
+
+       /* HT: Tiler returns TERMINATED for non-terminated command */
        HW_ISSUE_9510,
+
+       /* Occasionally the GPU will issue multiple page faults for the same
+        * address before the MMU page table has been read by the GPU */
        HW_ISSUE_9630,
+
+       /* RA DCD load request to SDC returns invalid load ignore causing
+        * colour buffer mismatch */
        HW_ISSUE_10327,
+
+       /* MMU TLB invalidation hazards */
        HW_ISSUE_10649,
+
+       /* Missing cache flush in multi core-group configuration */
        HW_ISSUE_10676,
+
+       /* Chicken bit on T72X for a hardware workaround in compiler */
        HW_ISSUE_10797,
+
+       /* Soft-stopping fragment jobs might fail with TILE_RANGE_FAULT */
        HW_ISSUE_10817,
+
+       /* Intermittent missing interrupt on job completion */
        HW_ISSUE_10883,
+
+       /* Soft-stopping fragment jobs might fail with TILE_RANGE_ERROR
+        * (similar to issue 10817) and can use #10817 workaround */
        HW_ISSUE_10959,
+
+       /* Soft-stopped fragment shader job can restart with out-of-bound
+        * restart index */
        HW_ISSUE_10969,
+
+       /* Race condition can cause tile list corruption */
        HW_ISSUE_11020,
+
+       /* Write buffer can cause tile list corruption */
        HW_ISSUE_11024,
+
+       /* Pause buffer can cause a fragment job hang */
        HW_ISSUE_11035,
+
+       /* Dynamic Core Scaling not supported due to errata */
        HW_ISSUE_11056,
+
+       /* Clear encoder state for a hard stopped fragment job which is AFBC
+        * encoded by soft resetting the GPU. Only for T76X r0p0, r0p1 and
+        * r0p1_50rel0 */
        HW_ISSUE_T76X_3542,
+
+       /* Keep tiler module clock on to prevent GPU stall */
        HW_ISSUE_T76X_3953,
+
+       /* Must ensure L2 is not transitioning when we reset. Workaround with a
+        * busy wait until L2 completes transition; ensure there is a maximum
+        * loop count as she may never complete her transition. (On chips
+        * without this errata, it's totally okay if L2 transitions.) */
        HW_ISSUE_TMIX_8463,
+
+       /* Don't set SC_LS_ATTR_CHECK_DISABLE/SC_LS_ALLOW_ATTR_TYPES */
        GPUCORE_1619,
+
+       /* When a hard-stop follows close after a soft-stop, the completion
+        * code for the terminated job may be incorrectly set to STOPPED */
        HW_ISSUE_TMIX_8438,
+
+       /* "Protected mode" is buggy on Mali-G31 some Bifrost chips, so the
+        * kernel must fiddle with L2 caches to prevent data leakage */
        HW_ISSUE_TGOX_R1_1234,
+
        HW_ISSUE_END
 };