coreboot-kgpe-d16/src/cpu/intel
Damien Zammit 149c4c5d01 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.

Change-Id: I1ae864e37546298ea222e81349c27cf774ed251f
Signed-off-by: Patrick Georgi <patrick@georgi-clan.de>
Signed-off-by: Damien Zammit <damien@zamaudio.com>
Reviewed-on: https://review.coreboot.org/6311
Tested-by: build bot (Jenkins)
Tested-by: BSI firmware lab <coreboot-labor@bsi.bund.de>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
2015-12-02 00:38:45 +01:00
..
car tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
common/acpi cpu/intel: Move Power notification ASL code into common/acpi 2015-10-23 22:28:12 +02:00
ep80579 tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
fit arch/x86/bootblock: Do not include non-code files in bootblock.S 2015-10-08 19:11:24 +00:00
fsp_model_206ax tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
fsp_model_406dx fsp1_0: Remove hardcoded microcode locations 2015-11-20 16:36:08 +01:00
haswell tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
hyperthreading
microcode tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
model_6bx tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
model_6dx cpu/intel: Move Power notification ASL code into common/acpi 2015-10-23 22:28:12 +02:00
model_6ex tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
model_6fx tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
model_6xx cpu: microcode: Use microcode stored in binary format 2015-09-30 06:57:19 +00:00
model_65x tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
model_67x tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
model_68x tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
model_69x cpu: microcode: Use microcode stored in binary format 2015-09-30 06:57:19 +00:00
model_106cx x86/smm: Initialize SMM on some CPUs one-by-one 2015-12-02 00:38:45 +01:00
model_206ax tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
model_1067x tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
model_2065x tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
model_f0x cpu: microcode: Use microcode stored in binary format 2015-09-30 06:57:19 +00:00
model_f1x cpu: microcode: Use microcode stored in binary format 2015-09-30 06:57:19 +00:00
model_f2x cpu: microcode: Use microcode stored in binary format 2015-09-30 06:57:19 +00:00
model_f3x cpu: microcode: Use microcode stored in binary format 2015-09-30 06:57:19 +00:00
model_f4x cpu: microcode: Use microcode stored in binary format 2015-09-30 06:57:19 +00:00
slot_1 tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
slot_2 tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
smm/gen1 tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
socket_441 cpu: get rid of socket source code 2015-05-04 22:18:23 +02:00
socket_BGA956 x86: remove cpu_incs as romstage Make variable 2015-09-04 15:09:32 +00:00
socket_BGA1284 cpu/intel: Add socket BGA1284 2015-11-10 00:19:01 +01:00
socket_FC_PGA370 tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
socket_FCBGA559 cpu/intel/socket_FCBGA559: Add new socket for Atom D5xx 2015-11-24 14:39:42 +01:00
socket_LGA771 x86: remove cpu_incs as romstage Make variable 2015-09-04 15:09:32 +00:00
socket_LGA775 cpu: get rid of socket source code 2015-05-04 22:18:23 +02:00
socket_LGA1155 cpu: get rid of socket source code 2015-05-04 22:18:23 +02:00
socket_mFCBGA479 x86: remove cpu_incs as romstage Make variable 2015-09-04 15:09:32 +00:00
socket_mFCPGA478 x86: remove cpu_incs as romstage Make variable 2015-09-04 15:09:32 +00:00
socket_mPGA478 cpu: get rid of socket source code 2015-05-04 22:18:23 +02:00
socket_mPGA479M x86: remove cpu_incs as romstage Make variable 2015-09-04 15:09:32 +00:00
socket_mPGA603 cpu: get rid of socket source code 2015-05-04 22:18:23 +02:00
socket_mPGA604 Remove empty lines at end of file 2015-06-08 00:55:07 +02:00
socket_PGA370 tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
socket_rPGA988B Intel: Remove CACHE_MRC_BIN - 'selected' everywhere in Kconfig 2015-08-25 17:36:45 +00:00
socket_rPGA989 Intel: Remove CACHE_MRC_BIN - 'selected' everywhere in Kconfig 2015-08-25 17:36:45 +00:00
speedstep tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
thermal_monitoring
turbo tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
Kconfig cpu/intel/socket_FCBGA559: Add new socket for Atom D5xx 2015-11-24 14:39:42 +01:00
Makefile.inc cpu/intel/socket_FCBGA559: Add new socket for Atom D5xx 2015-11-24 14:39:42 +01:00