summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/aim
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2012-08-21 06:34:21 +0000
committeradrian <adrian@FreeBSD.org>2012-08-21 06:34:21 +0000
commit6224c8cbb9561c0dfb1502c7d8a27d973e64a40d (patch)
tree8914bd2e2ddd503271b9fb0246dd112995b0f00e /sys/powerpc/aim
parent45f36f602c7f4fd6db0285622e3da96b7c8663a8 (diff)
downloadFreeBSD-src-6224c8cbb9561c0dfb1502c7d8a27d973e64a40d.zip
FreeBSD-src-6224c8cbb9561c0dfb1502c7d8a27d973e64a40d.tar.gz
On Nintendo Wii CPUs, the mdp value will be garbage. Set it to NULL
so as to not confuse things. Submitted by: Margarida Gouveia
Diffstat (limited to 'sys/powerpc/aim')
-rw-r--r--sys/powerpc/aim/machdep.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/powerpc/aim/machdep.c b/sys/powerpc/aim/machdep.c
index 1d0736d..b5ead61 100644
--- a/sys/powerpc/aim/machdep.c
+++ b/sys/powerpc/aim/machdep.c
@@ -257,7 +257,7 @@ powerpc_init(vm_offset_t startkernel, vm_offset_t endkernel,
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_offset_t endkernel,
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.
OpenPOWER on IntegriCloud