svn commit: r318251 - head/sys/arm/arm

Michal Meloun mmel at FreeBSD.org
Sat May 13 10:00:26 UTC 2017


Author: mmel
Date: Sat May 13 10:00:24 2017
New Revision: 318251
URL: https://svnweb.freebsd.org/changeset/base/318251

Log:
  Clarify usage rules for pmap_remap_vm_attr().
  Not a functional change.
  
  MFC with:	r318021
  MFC after:	2 weeks

Modified:
  head/sys/arm/arm/pmap-v6.c

Modified: head/sys/arm/arm/pmap-v6.c
==============================================================================
--- head/sys/arm/arm/pmap-v6.c	Sat May 13 03:10:50 2017	(r318250)
+++ head/sys/arm/arm/pmap-v6.c	Sat May 13 10:00:24 2017	(r318251)
@@ -500,7 +500,24 @@ pmap_set_tex(void)
 /*
  * Remap one vm_meattr class to another one. This can be useful as
  * workaround for SOC errata, e.g. if devices must be accessed using
- * SO memory class. 
+ * SO memory class.
+ *
+ * !!! Please note that this function is absolutely last resort thing.
+ * It should not be used under normal circumstances. !!!
+ *
+ * Usage rules:
+ * - it shall be called after pmap_bootstrap_prepare() and before
+ *   cpu_mp_start() (thus only on boot CPU). In practice, it's expected
+ *   to be called from platform_attach() or platform_late_init().
+ *
+ * - if remapping doesn't change caching mode, or until uncached class
+ *   is remapped to any kind of cached one, then no other restriction exists.
+ *
+ * - if pmap_remap_vm_attr() changes caching mode, but both (original and
+ *   remapped) remain cached, then caller is resposible for calling
+ *   of dcache_wbinv_poc_all().
+ *
+ * - remapping of any kind of cached class to uncached is not permitted.
  */
 void
 pmap_remap_vm_attr(vm_memattr_t old_attr, vm_memattr_t new_attr)


More information about the svn-src-head mailing list