Fixing SMP on MacBooks
Rui Paulo
rpaulo at fnop.net
Fri May 11 00:20:47 UTC 2007
Hi,
I would like to bring this discussion to a wider audicence.
So, here's the problem:
As some of you already know, the second core on Apple's MacBooks fails
to start. There are two nasty tricks to make it start (both involve
interactivity from the user) that I know of.
They are:
1) Press the power button during the IPI timeout;
2) Press a key [1] before the IPIs are sent *OR* during the
IPI timeout.
[1] This is really an interrupt. Pressing the Fn key doesn't work
because the Fn key doesn't generate an interrupt.
There tricks don't work on the MacBook Pro. While the source of the
problem might be the same, it's not clear why the tricks work.
Some ideas (came up during discussion with Scott Long)
1) Update EFI -- I have the latest updates from Apple and the
AP doesn't start.
2) The trampoline isn't being set correctly -- if that was the
case, the tricks wouldn't really work
3) Check what kind of interrupt is generated by the USB
controller
4) The LAPIC is not being set correctly -- I've been reading
the Linux code on this matter and I don't see any relevant
difference
5) The boot loader is doing something legacy only [2]
[2] This was true for cdboot, at least.
Either way, an interrupt is (it seems):
1) triggering a (re)configuration of something; or
2) enabling another interrupt(s)
Anyone has any other ideas on how to better debug this ?
More information about the freebsd-smp
mailing list