Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Dec 2016 03:14:05 +0000 (UTC)
From:      Justin Hibbits <jhibbits@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r310441 - in stable/11/sys/powerpc: mpc85xx powerpc
Message-ID:  <201612230314.uBN3E5wV094664@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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
 }



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