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
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to