Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 2 Jan 2016 18:10:53 +0000 (UTC)
From:      Nathan Whitehorn <nwhitehorn@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r293051 - head/sys/powerpc/aim
Message-ID:  <201601021810.u02IArou057787@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: nwhitehorn
Date: Sat Jan  2 18:10:53 2016
New Revision: 293051
URL: https://svnweb.freebsd.org/changeset/base/293051

Log:
  Switch setting MSR[SF] to C code. This removes any CPU-specific code
  (MSF[SF] is a Book 3-S thing) in the 64-bit locore64.S.

Modified:
  head/sys/powerpc/aim/aim_machdep.c
  head/sys/powerpc/aim/locore64.S

Modified: head/sys/powerpc/aim/aim_machdep.c
==============================================================================
--- head/sys/powerpc/aim/aim_machdep.c	Sat Jan  2 17:14:22 2016	(r293050)
+++ head/sys/powerpc/aim/aim_machdep.c	Sat Jan  2 18:10:53 2016	(r293051)
@@ -179,6 +179,17 @@ aim_cpu_init(vm_offset_t toc)
 	trap_offset = 0;
 	cacheline_warn = 0;
 
+	#ifdef __powerpc64__
+	/*
+	 * Switch to 64-bit mode, if the bootloader didn't, before we start 
+	 * using memory beyond what the bootloader might have set up.
+	 * Guaranteed not to cause an implicit branch since we either (a)
+	 * started with a 32-bit bootloader below 4 GB or (b) were already in
+	 * 64-bit mode, making this a no-op.
+	 */
+	mtmsrd(mfmsr() | PSL_SF);
+	#endif
+
 	/* Various very early CPU fix ups */
 	switch (mfpvr() >> 16) {
 		/*

Modified: head/sys/powerpc/aim/locore64.S
==============================================================================
--- head/sys/powerpc/aim/locore64.S	Sat Jan  2 17:14:22 2016	(r293050)
+++ head/sys/powerpc/aim/locore64.S	Sat Jan  2 18:10:53 2016	(r293051)
@@ -157,13 +157,6 @@ ASENTRY_NOPROF(__start)
 	ld	%r5,64(%r1)
 	ld	%r6,72(%r1)
 
-	/* Switch to 64-bit mode */
-	mfmsr	%r9
-	li	%r8,1
-	insrdi	%r9,%r8,1,0
-	mtmsrd	%r9
-	isync
-	
 	/* Begin CPU init */
 	mr	%r4,%r2 /* Replace ignored r4 with tocbase for trap handlers */
 	bl	powerpc_init



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