Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Jan 2015 23:18:38 +0000 (UTC)
From:      Ian Lepore <ian@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r276519 - in head/sys/arm: arm include
Message-ID:  <201501012318.t01NIcgw015995@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ian
Date: Thu Jan  1 23:18:37 2015
New Revision: 276519
URL: https://svnweb.freebsd.org/changeset/base/276519

Log:
  Define a WFI macro that expands to the right form of wait-for-interrupt
  depending on the architecture.

Modified:
  head/sys/arm/arm/locore-v6.S
  head/sys/arm/include/asm.h
  head/sys/arm/include/sysreg.h

Modified: head/sys/arm/arm/locore-v6.S
==============================================================================
--- head/sys/arm/arm/locore-v6.S	Thu Jan  1 23:15:52 2015	(r276518)
+++ head/sys/arm/arm/locore-v6.S	Thu Jan  1 23:18:37 2015	(r276519)
@@ -461,7 +461,7 @@ ENTRY_NP(cpu_halt)
 	teq	r4, #0
 	movne	pc, r4
 1:	
-	wfi
+	WFI
 	b	1b
 
 	/*

Modified: head/sys/arm/include/asm.h
==============================================================================
--- head/sys/arm/include/asm.h	Thu Jan  1 23:15:52 2015	(r276518)
+++ head/sys/arm/include/asm.h	Thu Jan  1 23:18:37 2015	(r276519)
@@ -227,14 +227,17 @@
 #define ISB	isb
 #define DSB	dsb
 #define DMB	dmb
+#define WFI	wfi
 #elif __ARM_ARCH == 6
 #define ISB	mcr CP15_CP15ISB
 #define DSB	mcr CP15_CP15DSB
 #define DMB	mcr CP15_CP15DMB
+#define WFI	mcr CP15_CP15WFI
 #else
 #define ISB	mcr CP15_CP15ISB
 #define DSB	mcr CP15_CP15DSB	/* DSB and DMB are the */
 #define DMB	mcr CP15_CP15DSB	/* same prior to v6.*/
+/* No form of WFI available on v4, define nothing to get an error on use. */
 #endif
 
 #endif /* !_MACHINE_ASM_H_ */

Modified: head/sys/arm/include/sysreg.h
==============================================================================
--- head/sys/arm/include/sysreg.h	Thu Jan  1 23:15:52 2015	(r276518)
+++ head/sys/arm/include/sysreg.h	Thu Jan  1 23:18:37 2015	(r276519)
@@ -166,6 +166,7 @@
 /* Only ARMv6: */
 #define	CP15_CP15DSB		p15, 0, r0, c7, c10, 4 /* DSB */
 #define	CP15_CP15DMB		p15, 0, r0, c7, c10, 5 /* DMB */
+#define	CP15_CP15WFI		p15, 0, r0, c7, c0,  4 /* WFI */
 #endif
 
 #if __ARM_ARCH >= 7



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201501012318.t01NIcgw015995>