svn commit: r310441 - in stable/11/sys/powerpc: mpc85xx powerpc

Justin Hibbits jhibbits at FreeBSD.org
Fri Dec 23 03:14:07 UTC 2016


Author: jhibbits
Date: Fri Dec 23 03:14:05 2016
New Revision: 310441
URL: https://svnweb.freebsd.org/changeset/base/310441

Log:
  MFC r305320,r306702:
  
    r305320:
      Use the right ifdef macro.
    r306702:
      Fix e500mc/derivatives cpu idle

Modified:
  stable/11/sys/powerpc/mpc85xx/platform_mpc85xx.c
  stable/11/sys/powerpc/powerpc/cpu.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/powerpc/mpc85xx/platform_mpc85xx.c
==============================================================================
--- stable/11/sys/powerpc/mpc85xx/platform_mpc85xx.c	Fri Dec 23 03:08:27 2016	(r310440)
+++ stable/11/sys/powerpc/mpc85xx/platform_mpc85xx.c	Fri Dec 23 03:14:05 2016	(r310441)
@@ -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);
 }

Modified: stable/11/sys/powerpc/powerpc/cpu.c
==============================================================================
--- stable/11/sys/powerpc/powerpc/cpu.c	Fri Dec 23 03:08:27 2016	(r310440)
+++ stable/11/sys/powerpc/powerpc/cpu.c	Fri Dec 23 03:14:05 2016	(r310441)
@@ -663,7 +663,7 @@ static void
 cpu_idle_booke(sbintime_t sbt)
 {
 
-#ifdef E500
+#ifdef BOOKE_E500
 	platform_cpu_idle(PCPU_GET(cpuid));
 #endif
 }


More information about the svn-src-stable-11 mailing list