Author: adrian
Date: Tue Aug 21 06:34:21 2012
New Revision: 239480
URL: http://svn.freebsd.org/changeset/base/239480

Log:
  On Nintendo Wii CPUs, the mdp value will be garbage.  Set it to NULL
  so as to not confuse things.
  
  Submitted by: Margarida Gouveia

Modified:
  head/sys/powerpc/aim/machdep.c
  head/sys/powerpc/include/spr.h

Modified: head/sys/powerpc/aim/machdep.c
==============================================================================
--- head/sys/powerpc/aim/machdep.c      Tue Aug 21 06:33:10 2012        
(r239479)
+++ head/sys/powerpc/aim/machdep.c      Tue Aug 21 06:34:21 2012        
(r239480)
@@ -257,7 +257,7 @@ powerpc_init(vm_offset_t startkernel, vm
        size_t          trap_offset;
        void            *kmdp;
         char           *env;
-       register_t      msr, scratch;
+       register_t      msr, scratch, vers;
        uint8_t         *cache_check;
        int             cacheline_warn;
        #ifndef __powerpc64__
@@ -269,6 +269,14 @@ powerpc_init(vm_offset_t startkernel, vm
        cacheline_warn = 0;
 
        /*
+        * The Wii loader doesn't pass us any environment so, mdp
+        * points to garbage at this point. The Wii CPU is a 750CL.
+        */
+       vers = mfpvr();
+       if ((vers & 0xfffff0e0) == (MPC750 << 16 | MPC750CL)) 
+               mdp = NULL;
+
+       /*
         * Parse metadata if present and fetch parameters.  Must be done
         * before console is inited so cninit gets the right value of
         * boothowto.

Modified: head/sys/powerpc/include/spr.h
==============================================================================
--- head/sys/powerpc/include/spr.h      Tue Aug 21 06:33:10 2012        
(r239479)
+++ head/sys/powerpc/include/spr.h      Tue Aug 21 06:34:21 2012        
(r239480)
@@ -140,6 +140,7 @@
 #define          MPC603e                 0x0006
 #define          MPC603ev                0x0007
 #define          MPC750                  0x0008
+#define          MPC750CL                0x7000        /* Nintendo Wii's 
Broadway */
 #define          MPC604ev                0x0009
 #define          MPC7400                 0x000c
 #define          MPC620                  0x0014
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to