Roy,
Sounds exactly like my issue with -current on my Core2 Quad. My solution was to disable the PS2 ports OR boot with a PS2 keyboard connected - my default keyboard is USB.
Ah. First I am happy, so to speak, to see my case is not a "hapax". I can't use a PS2 keyboard: my machine is a Dell, it comes with no PS2 port. So your workaround would probably not work in my case, but I can try commenting out the PS2 keyboard in my config.
Deeper inside, together with Andrew we set up a basic trace in mptramp.S, more precisely in the cpu_spinup_trampoline function. None of the HALT macros is reached. The trace stays locked at 40 FF FF during all the delay loop, as if cpu_spinup_trampoline wasn't called or executed.Could you provide instructions for this as I would like to provide a trace also to aid in debugging.
Normally, it has been commited into -current by Andrew, so you can have it work if you compile your kernel with the MPDEBUG option. You should have "Trace: 40 FF FF" messages appearing during boot stage.
NetBSD-4 MP fails in the same way for me, but NetBSD-4 UP works fine as does Linux (UP and SMP). Oddly enough OpenBSD-4.3 fails with the same issue (and same workaround). FreeBSD-7 doesn't boot due to an ACPI issue.
Of course NetBSD-current UP works fine, hopefully (but I use my machine at half its theoretical power). I didn't try openBSD.
I've tried to look in the code by myself, since Andrew had other things more urging to fix and run out of suggestions. But I must admit I've never been able to understand properly what's going on on those b*** x86 CPUs. Basically, I've grown up on 68k machines (Ataris, then SUNs 3/4), with flat address space, orthogonal registers and transparent MMU mechanisms. x86, especially in compatibility mode, gives me the creeps. Then there is now all this MPACPI stuff, no info whatsoever to gather around, just a big void. On the whole, the MP boot code is like a hokuspokus black magic spell, whose wisdom is reserved to a happy few of wizards and gurus. Unanalysable for me. I don't even know how the AP are initialized and bound to execute mp_trampoline. I guess this is also a legacy of this incredibly twisted PC architecture.
I can add I've a Core 2 duo CPU, but the MPACPI reports 4. Maybe it has to do with the bug?
Thanks anyway Vincent