Re: [PATCH] drm/panfrost: Add errata descriptions from kbase
On 09/08/2019 22:09, Alyssa Rosenzweig wrote: > 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 s/Stephen/Steven/ > 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. I'm not sure it's worth removing the errata that Panfrost doesn't yet support. The Arm release kernel drivers[1] do use these symbols so it is vaguely public what the errata are. For example HW_ISSUE_TGOX_R1_1234: > if (kbase_hw_has_issue(kbdev, BASE_HW_ISSUE_TGOX_R1_1234)) { > if (katom->atom_flags & > KBASE_KATOM_FLAG_HOLDING_L2_REF_PROT) { > kbase_pm_protected_l2_override(kbdev, false); > katom->atom_flags &= > ~KBASE_KATOM_FLAG_HOLDING_L2_REF_PROT; > } > } It's a workaround for protected mode handling on Mali-G31. Admittedly protected mode is probably not going to be high up on the Panfrost TODO list... :) Steve [1] https://developer.arm.com/tools-and-software/graphics-and-gaming/mali-drivers/midgard-kernel > Signed-off-by: Alyssa Rosenzweig > --- > drivers/gpu/drm/panfrost/panfrost_issues.h | 106 +++-- > 1 file changed, 78 insertions(+), 28 deletions(-) > > diff --git a/drivers/gpu/drm/panfrost/panfrost_issues.h > b/drivers/gpu/drm/panfrost/panfrost_issues.h > index cec6dcdad..36e503614 100644 > --- a/drivers/gpu/drm/panfrost/panfrost_issues.h > +++ b/drivers/gpu/drm/panfrost/panfrost_issues.h > @@ -13,37 +13,101 @@ > * 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
Re: [PATCH] drm/panfrost: Add errata descriptions from kbase
On Fri, Aug 9, 2019 at 3:09 PM Alyssa Rosenzweig wrote: > > 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. I had scrubbed the issue list to keep just the errata with work-arounds in kbase. I'd rather not have to search this information again because in kbase we have to filter out all the issues which don't affect the kernel side. Rob ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] drm/panfrost: Add errata descriptions from kbase
On 06/08/2019 22:08, Rob Herring wrote: On Tue, Aug 6, 2019 at 2:25 PM Alyssa Rosenzweig wrote: 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. A few issues pertaining to newer models are unknown as they were not added to kbase until after kbase began stripping these comments. Signed-off-by: Alyssa Rosenzweig --- drivers/gpu/drm/panfrost/panfrost_issues.h | 80 ++ 1 file changed, 80 insertions(+) A couple of nits below. [...] + + /* TODO: Unknown */ This is Bifrost errata which is newer and I'm assuming will never have a description. Is there much point in any comment? We could easily provide better comments for some of these. For example TMIX_8463 operates this code[1]: if (kbase_hw_has_issue(kbdev, BASE_HW_ISSUE_TMIX_8463)) { /* Ensure that L2 is not transitioning when we send the reset * command */ while (--max_loops && kbase_pm_get_trans_cores(kbdev, KBASE_PM_CORE_L2)) ; WARN(!max_loops, "L2 power transition timed out while trying to reset\n"); } So we can at least comment that the "L2 must not be transitioning when issuing reset command". [1] https://gitlab.freedesktop.org/panfrost/mali_kbase/blob/master/driver/product/kernel/drivers/gpu/arm/midgard/backend/gpu/mali_kbase_jm_hw.c#L1197 I agree though that there's little point in "TODO: Unknown" comments. Steve HW_ISSUE_TMIX_8463, + + /* TODO: Unknown */ GPUCORE_1619, + + /* TODO: Unknown */ HW_ISSUE_TMIX_8438, + + /* TODO: Unknown */ HW_ISSUE_TGOX_R1_1234, + HW_ISSUE_END }; -- 2.20.1 ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ___ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel
Re: [PATCH] drm/panfrost: Add errata descriptions from kbase
On Tue, Aug 6, 2019 at 2:25 PM Alyssa Rosenzweig wrote: > > 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. > > A few issues pertaining to newer models are unknown as they were not > added to kbase until after kbase began stripping these comments. > > Signed-off-by: Alyssa Rosenzweig > --- > drivers/gpu/drm/panfrost/panfrost_issues.h | 80 ++ > 1 file changed, 80 insertions(+) A couple of nits below. > > diff --git a/drivers/gpu/drm/panfrost/panfrost_issues.h > b/drivers/gpu/drm/panfrost/panfrost_issues.h > index cec6dcdad..af3a31539 100644 > --- a/drivers/gpu/drm/panfrost/panfrost_issues.h > +++ b/drivers/gpu/drm/panfrost/panfrost_issues.h > @@ -13,37 +13,117 @@ > * 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 command that hasn't been > terminated > +*/ Inconsistent comment formatting on some of these like this. > 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 HW_ISSUE_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, > + > + /* TODO: Unknown */ > 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, > + > + /* TODO: Unknown */ This is Bifrost errata which is newer and I'm assuming will never have a description. Is there much point in any comment? > HW_ISSUE_TMIX_8463, > + > + /* TODO: Unknown */ > GPUCORE_1619, > + > + /* TODO: Unknown */ > HW_ISSUE_TMIX_8438, > + > + /* TODO: Unknown */ > HW_ISSUE_TGOX_R1_1234, > + > HW_ISSUE_END > }; > > -- > 2.20.1 > _