Page MenuHomeFreeBSD

powerpc/pic: fix the openpic CPU logic to work on powermac
ClosedPublic

Authored by adrian on Thu, Apr 30, 7:50 PM.
Referenced Files
Unknown Object (File)
Mon, May 25, 8:06 AM
Unknown Object (File)
Sun, May 17, 7:49 AM
Unknown Object (File)
Sun, May 17, 3:40 AM
Unknown Object (File)
Sat, May 16, 11:58 PM
Unknown Object (File)
Sat, May 16, 10:09 PM
Unknown Object (File)
Thu, May 14, 3:49 AM
Unknown Object (File)
Thu, May 14, 3:48 AM
Unknown Object (File)
Wed, May 13, 9:43 PM

Details

Summary

Earlier work (40bcad56f - powerpc/pic: Add a PIC_AP_INIT() to
set up AP PIC info) broke booting my dual G5 powermac.

After much digging, jhibbits@ and I discovered that the openpic
implementation for the memory/bus controller used in the G5 CPUs
doesn't implement /all/ of the openpic specification.
Notably it sticks the WHOAMI register in a different location.
This is reading 0x0 back for all the PICs which is .. very not great.

So to restore the previous behaviour, use a quick for now that jhibbits@
can set appropriately to trust WHOAMI.

I've tested this on my dual G5 PPC and it boots/runs fine.

Fixes: 40bcad56f

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

This really is funny, that we're working around broken IBM and Apple hardware by putting a quirk on the one conforming implementer.

This revision is now accepted and ready to land.Thu, Apr 30, 10:24 PM