[LinuxBIOS] PATCH: nested spinlock hang when initializing x86 sibling CPUs

Steven J. Magnani steve at digidescorp.com
Fri Sep 9 20:58:52 CEST 2005

> This has nothing to do with AMD or intel.

I disagree.

The Tyan s2735 is the only board that sets SERIAL_CPU_INIT to 0. Why?
That board happens to be a sister to the boards I'm working with, which
have problems with nested spinlocking. This is not an issue of
interleaving debug output; the board hangs when initializing the sibling
of the 2nd CPU.

I am thinking that the underlying problem is that the start_cpu_lock is
being used in places (secondary_cpu_init) where a different lock is
called for. The AMD code seems to start secondary/sibling CPUs quite
differently than the Intel code. Without some idea of the call sequence
for starting up AMD secondary/sibling CPUs it's difficult to know what
the effects of switching to a different lock would be.

If someone could sketch out something for AMD like I put together for
Intel when I first encountered this issue
(http://openbios.org/pipermail/linuxbios/2005-July/011903.html) it might
be easier for us to reach some kind of consensus.

 Steven J. Magnani               "I claim this network for MARS!
 www.digidescorp.com              Earthling, return my space modulator!"

 #include <standard.disclaimer>

More information about the coreboot mailing list