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
F174340996: D56751.diff
Fri, Oct 2, 1:15 PM
Unknown Object (File)
Fri, Oct 2, 12:11 AM
Unknown Object (File)
Thu, Oct 1, 6:21 PM
Unknown Object (File)
Thu, Oct 1, 11:01 AM
Unknown Object (File)
Wed, Sep 30, 8:53 AM
Unknown Object (File)
Tue, Sep 29, 12:41 PM
Unknown Object (File)
Mon, Sep 28, 12:48 PM
Unknown Object (File)
Mon, Sep 28, 2:11 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 Skipped
Unit
Tests Skipped
Build Status
Buildable 72686
Build 69569: arc lint + arc unit

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