the following patch was just integrated into master: commit bf362311db9948925b5580a9922a58c4c8726c82 Author: Kyösti Mälkki kyosti.malkki@gmail.com Date: Fri Mar 9 17:02:37 2012 +0200
Intel cpus: Fix deadlock on hyper-threading init
Only the BSP CPU was able to start its hyper-threading CPU siblings. When an AP CPU attempts this it calls start_cpu() within start_cpu(), deadlocking the system with start_cpu_lock.
At the time intel_sibling_init() is run, the BSP CPU is still walking the cpu_bus linked list in lapic_cpu_init: start_other_cpus(). A sibling CPU appended at the end of this list will get started.
Also fail compile with #error if SERIAL_CPU_INIT==0, as microcode updates on hyper-threading sibling CPUs must be serialized.
Tested with HT-enabled P4 Xeons on dual-socket604 platform.
Change-Id: I0053f58f49ed604605ce0a55e826d3e1afdc90b6 Signed-off-by: Kyösti Mälkki kyosti.malkki@gmail.com
Build-Tested: build bot (Jenkins) at Sat Mar 10 05:41:56 2012, giving +1 Reviewed-By: Rudolf Marek r.marek@assembler.cz at Sun Mar 25 20:33:24 2012, giving +2 See http://review.coreboot.org/775 for details.
-gerrit