aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/head_64.S
diff options
context:
space:
mode:
authorchenhui zhao <chenhui.zhao@freescale.com>2015-11-20 17:13:59 +0800
committerScott Wood <oss@buserror.net>2016-03-04 23:50:27 -0600
commitd17799f9c10e283cccd4d598d3416e6fac336ab9 (patch)
treea1af0cb18e1821922d66a198d25aed9cdb18806f /arch/powerpc/kernel/head_64.S
parentpowerpc/cache: add cache flush operation for various e500 (diff)
downloadlinux-dev-d17799f9c10e283cccd4d598d3416e6fac336ab9.tar.xz
linux-dev-d17799f9c10e283cccd4d598d3416e6fac336ab9.zip
powerpc/rcpm: add RCPM driver
There is a RCPM (Run Control/Power Management) in Freescale QorIQ series processors. The device performs tasks associated with device run control and power management. The driver implements some features: mask/unmask irq, enter/exit low power states, freeze time base, etc. Signed-off-by: Chenhui Zhao <chenhui.zhao@freescale.com> Signed-off-by: Tang Yuantian <Yuantian.Tang@freescale.com> [scottwood: remove __KERNEL__ ifdef] Signed-off-by: Scott Wood <oss@buserror.net>
Diffstat (limited to '')
-rw-r--r--arch/powerpc/kernel/head_64.S19
1 files changed, 19 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S
index 1b779560728f..603625368ceb 100644
--- a/arch/powerpc/kernel/head_64.S
+++ b/arch/powerpc/kernel/head_64.S
@@ -181,6 +181,25 @@ exception_marker:
#endif
#ifdef CONFIG_PPC_BOOK3E
+/*
+ * stop a thread in the same core
+ * input parameter:
+ * r3 = the thread physical id
+ */
+_GLOBAL(book3e_stop_thread)
+ cmpi 0, r3, 0
+ beq 10f
+ cmpi 0, r3, 1
+ beq 10f
+ /* If the thread id is invalid, just exit. */
+ b 13f
+10:
+ li r4, 1
+ sld r4, r4, r3
+ mtspr SPRN_TENC, r4
+13:
+ blr
+
_GLOBAL(fsl_secondary_thread_init)
mfspr r4,SPRN_BUCSR