svn commit: r262587 - in head/sys/arm: arm include
Ian Lepore
ian at FreeBSD.org
Fri Feb 28 00:41:56 UTC 2014
Author: ian
Date: Fri Feb 28 00:41:55 2014
New Revision: 262587
URL: http://svnweb.freebsd.org/changeset/base/262587
Log:
Add an armv7 implementation of cpu_sleep(). The arm11/armv6 implementation
we've been using was actually just spinning due to ARM having redefined
the old 'wait for interrupt' operation via the system coprocessor as a nop
and replacing it with a WFI instruction.
Modified:
head/sys/arm/arm/cpufunc.c
head/sys/arm/arm/cpufunc_asm_armv7.S
head/sys/arm/include/cpufunc.h
Modified: head/sys/arm/arm/cpufunc.c
==============================================================================
--- head/sys/arm/arm/cpufunc.c Fri Feb 28 00:39:35 2014 (r262586)
+++ head/sys/arm/arm/cpufunc.c Fri Feb 28 00:41:55 2014 (r262587)
@@ -1107,7 +1107,7 @@ struct cpu_functions cortexa_cpufuncs =
cpufunc_nullop, /* flush_brnchtgt_C */
(void *)cpufunc_nullop, /* flush_brnchtgt_E */
- arm11_sleep, /* sleep */
+ armv7_sleep, /* sleep */
/* Soft functions */
Modified: head/sys/arm/arm/cpufunc_asm_armv7.S
==============================================================================
--- head/sys/arm/arm/cpufunc_asm_armv7.S Fri Feb 28 00:39:35 2014 (r262586)
+++ head/sys/arm/arm/cpufunc_asm_armv7.S Fri Feb 28 00:41:55 2014 (r262587)
@@ -343,3 +343,9 @@ ENTRY(armv7_idcache_inv_all)
bx lr @ return
END(armv7_l1cache_inv_all)
+ENTRY_NP(armv7_sleep)
+ dsb
+ wfi
+ bx lr
+END(armv7_sleep)
+
Modified: head/sys/arm/include/cpufunc.h
==============================================================================
--- head/sys/arm/include/cpufunc.h Fri Feb 28 00:39:35 2014 (r262586)
+++ head/sys/arm/include/cpufunc.h Fri Feb 28 00:41:55 2014 (r262587)
@@ -523,6 +523,7 @@ void armv7_setup (char *string);
void armv7_context_switch (void);
void armv7_drain_writebuf (void);
void armv7_sev (void);
+void armv7_sleep (int unused);
u_int armv7_auxctrl (u_int, u_int);
void pj4bv7_setup (char *string);
void pj4b_config (void);
More information about the svn-src-all
mailing list