x86/smm: Initialize SMM on some CPUs one-by-one
We currently race in SMM init on Atom 230 (and potentially
other CPUs). At least on the 230, this leads to a hang on
RSM, likely because both hyperthreads mess around with
SMBASE and other SMM state variables in parallel without
coordination. The same behaviour occurs with Atom D5xx.
Change it so first APs are spun up and sent to sleep, then
BSP initializes SMM, then every CPU, one after another.
Only do this when SERIALIZE_SMM_INITIALIZATION is set.
Set the flag for Atom CPUs.
Signed-off-by: Patrick Georgi <firstname.lastname@example.org>
Signed-off-by: Damien Zammit <email@example.com>
Tested-by: build bot (Jenkins)
Tested-by: BSI firmware lab <firstname.lastname@example.org>
Reviewed-by: Aaron Durbin <email@example.com>
4 files changed