Author: zbb
Date: Tue Jul 21 12:15:00 2015
New Revision: 285743
URL: https://svnweb.freebsd.org/changeset/base/285743

Log:
  Improve ARM64 CPU_MATCH
  
  Add a method to identify CPU based on RAW MIDR value.
  
  Obtained from: Semihalf
  Sponsored by:  The FreeBSD Foundation
  Differential Revision: https://reviews.freebsd.org/D3117

Modified:
  head/sys/arm64/include/cpu.h

Modified: head/sys/arm64/include/cpu.h
==============================================================================
--- head/sys/arm64/include/cpu.h        Tue Jul 21 10:52:05 2015        
(r285742)
+++ head/sys/arm64/include/cpu.h        Tue Jul 21 12:15:00 2015        
(r285743)
@@ -92,10 +92,17 @@
 #define        CPU_VAR_MASK    (0xf << 20)
 #define        CPU_REV_MASK    (0xf << 0)
 
-#define CPU_MATCH(mask, impl, part, var, rev)                                  
        \
-    (((mask) & PCPU_GET(midr)) == (CPU_IMPL_TO_MIDR((impl)) |          \
-    CPU_PART_TO_MIDR((part)) | CPU_VAR_TO_MIDR((var)) |                        
        \
-    CPU_REV_TO_MIDR((rev))))
+#define        CPU_ID_RAW(impl, part, var, rev)                \
+    (CPU_IMPL_TO_MIDR((impl)) |                                \
+    CPU_PART_TO_MIDR((part)) | CPU_VAR_TO_MIDR((var)) |        \
+    CPU_REV_TO_MIDR((rev)))
+
+#define        CPU_MATCH(mask, impl, part, var, rev)           \
+    (((mask) & PCPU_GET(midr)) ==                      \
+    ((mask) & CPU_ID_RAW((impl), (part), (var), (rev))))
+
+#define        CPU_MATCH_RAW(mask, devid)                      \
+    (((mask) & PCPU_GET(midr)) == ((mask) & (devid)))
 
 extern char btext[];
 extern char etext[];
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to