summaryrefslogtreecommitdiffstats
path: root/sys/powerpc
diff options
context:
space:
mode:
authorjhibbits <jhibbits@FreeBSD.org>2016-12-23 03:14:05 +0000
committerjhibbits <jhibbits@FreeBSD.org>2016-12-23 03:14:05 +0000
commitf780cab2fe3253f3091157bf02029711ec224574 (patch)
tree3ee2a30038b8620f45ded5e45d55a84a46a5897b /sys/powerpc
parenta3627bf7d397d64c8538b3ce0356b968d05d649a (diff)
downloadFreeBSD-src-f780cab2fe3253f3091157bf02029711ec224574.zip
FreeBSD-src-f780cab2fe3253f3091157bf02029711ec224574.tar.gz
MFC r305320,r306702:
r305320: Use the right ifdef macro. r306702: Fix e500mc/derivatives cpu idle
Diffstat (limited to 'sys/powerpc')
-rw-r--r--sys/powerpc/mpc85xx/platform_mpc85xx.c17
-rw-r--r--sys/powerpc/powerpc/cpu.c2
2 files changed, 6 insertions, 13 deletions
diff --git a/sys/powerpc/mpc85xx/platform_mpc85xx.c b/sys/powerpc/mpc85xx/platform_mpc85xx.c
index 00c8a17..00d6f53 100644
--- a/sys/powerpc/mpc85xx/platform_mpc85xx.c
+++ b/sys/powerpc/mpc85xx/platform_mpc85xx.c
@@ -541,9 +541,11 @@ mpc85xx_idle(platform_t plat, int cpu)
uint32_t reg;
if (mpc85xx_is_qoriq()) {
- reg = ccsr_read4(OCP85XX_RCPM_CDOZCR);
- ccsr_write4(OCP85XX_RCPM_CDOZCR, reg | (1 << cpu));
- ccsr_read4(OCP85XX_RCPM_CDOZCR);
+ /*
+ * Base binutils doesn't know what the 'wait' instruction is, so
+ * use the opcode encoding here.
+ */
+ __asm __volatile("wrteei 1; .long 0x7c00007c");
} else {
reg = mfmsr();
/* Freescale E500 core RM section 6.4.1. */
@@ -555,15 +557,6 @@ mpc85xx_idle(platform_t plat, int cpu)
static int
mpc85xx_idle_wakeup(platform_t plat, int cpu)
{
- uint32_t reg;
-
- if (mpc85xx_is_qoriq()) {
- reg = ccsr_read4(OCP85XX_RCPM_CDOZCR);
- ccsr_write4(OCP85XX_RCPM_CDOZCR, reg & ~(1 << cpu));
- ccsr_read4(OCP85XX_RCPM_CDOZCR);
-
- return (1);
- }
return (0);
}
diff --git a/sys/powerpc/powerpc/cpu.c b/sys/powerpc/powerpc/cpu.c
index 8892417..859ff4a 100644
--- a/sys/powerpc/powerpc/cpu.c
+++ b/sys/powerpc/powerpc/cpu.c
@@ -663,7 +663,7 @@ static void
cpu_idle_booke(sbintime_t sbt)
{
-#ifdef E500
+#ifdef BOOKE_E500
platform_cpu_idle(PCPU_GET(cpuid));
#endif
}
OpenPOWER on IntegriCloud