Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 26 Apr 2019 03:18:50 +0000 (UTC)
From:      Justin Hibbits <jhibbits@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r346730 - in head/sys/powerpc: aim powerpc
Message-ID:  <201904260318.x3Q3IoZZ065725@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jhibbits
Date: Fri Apr 26 03:18:49 2019
New Revision: 346730
URL: https://svnweb.freebsd.org/changeset/base/346730

Log:
  powerpc64: Clear FSCR SPR, so that it's in a known state
  
  This now turns any access to the DSCR SPR into a SIGILL.  Later commits will
  make DCSR work correctly on POWER8 and POWER9.
  
  PR:		237208

Modified:
  head/sys/powerpc/aim/mp_cpudep.c
  head/sys/powerpc/powerpc/cpu.c

Modified: head/sys/powerpc/aim/mp_cpudep.c
==============================================================================
--- head/sys/powerpc/aim/mp_cpudep.c	Fri Apr 26 03:13:44 2019	(r346729)
+++ head/sys/powerpc/aim/mp_cpudep.c	Fri Apr 26 03:18:49 2019	(r346730)
@@ -98,6 +98,12 @@ cpudep_ap_early_bootstrap(void)
 
 			mtspr(SPR_LPCR, lpcr);
 			isync();
+
+			/*
+			 * Nuke FSCR, to be managed on a per-process basis
+			 * later.
+			 */
+			mtspr(SPR_FSCR, 0);
 		}
 #endif
 		break;

Modified: head/sys/powerpc/powerpc/cpu.c
==============================================================================
--- head/sys/powerpc/powerpc/cpu.c	Fri Apr 26 03:13:44 2019	(r346729)
+++ head/sys/powerpc/powerpc/cpu.c	Fri Apr 26 03:18:49 2019	(r346730)
@@ -663,6 +663,9 @@ cpu_powerx_setup(int cpuid, uint16_t vers)
 	if ((mfmsr() & PSL_HV) == 0)
 		return;
 
+	/* Nuke the FSCR, to disable all facilities. */
+	mtspr(SPR_FSCR, 0);
+
 	/* Configure power-saving */
 	switch (vers) {
 	case IBMPOWER8:



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