Page MenuHomeFreeBSD

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

Authored by adrian on Apr 30 2026, 7:50 PM.
Referenced Files
F167670302: D56751.id176969.diff
Sun, Aug 23, 4:40 PM
Unknown Object (File)
Sat, Aug 22, 11:13 PM
Unknown Object (File)
Fri, Aug 21, 7:42 PM
Unknown Object (File)
Thu, Aug 20, 8:33 AM
Unknown Object (File)
Wed, Aug 19, 2:39 AM
Unknown Object (File)
Mon, Aug 17, 8:05 PM
Unknown Object (File)
Mon, Aug 17, 5:28 PM
Unknown Object (File)
Mon, Aug 17, 1:30 AM

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.Apr 30 2026, 10:24 PM