summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/powermac
diff options
context:
space:
mode:
authornwhitehorn <nwhitehorn@FreeBSD.org>2012-10-29 14:27:28 +0000
committernwhitehorn <nwhitehorn@FreeBSD.org>2012-10-29 14:27:28 +0000
commit6169e186fd79ecdd061bf61fd454e5506798c984 (patch)
treed38c88ad73b297103906ae9263536d76ffc4c7eb /sys/powerpc/powermac
parentfa229bcba8f49eaaba2a69f57bb4ebac95387d92 (diff)
downloadFreeBSD-src-6169e186fd79ecdd061bf61fd454e5506798c984.zip
FreeBSD-src-6169e186fd79ecdd061bf61fd454e5506798c984.tar.gz
Work around broken device tree on last-generation PowerPC iMacs
(PowerMac12,1), which have a mac-io MPIC cell that indifies itself as the root PIC despite the actual root PIC being on the northbridge. No CPC945 systems have a mac-io PIC that does anything so just don't attach on CPC945 (U4) systems. MFC after: 3 days
Diffstat (limited to 'sys/powerpc/powermac')
-rw-r--r--sys/powerpc/powermac/openpic_macio.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/powerpc/powermac/openpic_macio.c b/sys/powerpc/powermac/openpic_macio.c
index e542ae3..b40f951 100644
--- a/sys/powerpc/powermac/openpic_macio.c
+++ b/sys/powerpc/powermac/openpic_macio.c
@@ -94,6 +94,10 @@ openpic_macio_probe(device_t dev)
if (strcmp(type, "open-pic") != 0)
return (ENXIO);
+ /* On some U4 systems, there is a phantom MPIC in the mac-io cell */
+ if (OF_finddevice("/u4") != (phandle_t)-1)
+ return (ENXIO);
+
device_set_desc(dev, OPENPIC_DEVSTR);
return (0);
}
OpenPOWER on IntegriCloud