Author: zbb
Date: Tue Apr 18 10:34:10 2017
New Revision: 317087
URL: https://svnweb.freebsd.org/changeset/base/317087

Log:
  Execute PL310_ERRATA_727915 only for related revisions
  
  Part of PL310 erratum 727915 in pl310_wbinv_range() was
  executed uncoditionally for all possible controllers'
  revisions. This patch adds appropriate condition, since
  extra operations are required only for revisions between
  r2p0 and r3p0.
  
  Submitted by: Marcin Wojtas <m...@semihalf.com>
  Obtained from: Semihalf
  Sponsored by: Stormshield
  Reviewed by: meloun-miracle-cz
  Differential revision: https://reviews.freebsd.org/D10221

Modified:
  head/sys/arm/arm/pl310.c

Modified: head/sys/arm/arm/pl310.c
==============================================================================
--- head/sys/arm/arm/pl310.c    Tue Apr 18 10:32:21 2017        (r317086)
+++ head/sys/arm/arm/pl310.c    Tue Apr 18 10:34:10 2017        (r317087)
@@ -272,7 +272,9 @@ pl310_wbinv_range(vm_paddr_t start, vm_s
 
 
 #ifdef PL310_ERRATA_727915
-       platform_pl310_write_debug(pl310_softc, 3);
+       if (pl310_softc->sc_rtl_revision >= CACHE_ID_RELEASE_r2p0 &&
+           pl310_softc->sc_rtl_revision < CACHE_ID_RELEASE_r3p1)
+               platform_pl310_write_debug(pl310_softc, 3);
 #endif
        while (size > 0) {
 #ifdef PL310_ERRATA_588369
@@ -293,7 +295,9 @@ pl310_wbinv_range(vm_paddr_t start, vm_s
                size -= g_l2cache_line_size;
        }
 #ifdef PL310_ERRATA_727915
-       platform_pl310_write_debug(pl310_softc, 0);
+       if (pl310_softc->sc_rtl_revision >= CACHE_ID_RELEASE_r2p0 &&
+           pl310_softc->sc_rtl_revision < CACHE_ID_RELEASE_r3p1)
+               platform_pl310_write_debug(pl310_softc, 0);
 #endif
 
        pl310_cache_sync();
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to