cpu/x86/mp_init: move printing of failure message into mp_init_with_smm
Each CPU/SoC checks the return value of the mp_init_with_smm and prints
the same error message if it wasn't successful, so move this check and
printk to mp_init_with_smm. For this the original mp_init_with_smm
function gets renamed to do_mp_init_with_smm and a new mp_init_with_smm
function is created which then calls do_mp_init_with_smm, prints the
error if it didn't return CB_SUCCESS and passes the return value of
do_mp_init_with_smm to its caller.
Since no CPU/SoC code handles a mp_init_with_smm failure apart from
printing a message, also add a comment at the mp_init_with_smm call
sites that the code might want to handle a failure.
Signed-off-by: Felix Held <felix-coreboot@felixheld.de>
Change-Id: I181602723c204f3e43eb43302921adf7a88c81ed
Reviewed-on: https://review.coreboot.org/c/coreboot/+/58498
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Raul Rangel <rrangel@chromium.org>
diff --git a/src/soc/intel/alderlake/cpu.c b/src/soc/intel/alderlake/cpu.c
index a437559..94658c7 100644
--- a/src/soc/intel/alderlake/cpu.c
+++ b/src/soc/intel/alderlake/cpu.c
@@ -127,8 +127,8 @@
void soc_init_cpus(struct bus *cpu_bus)
{
- if (mp_init_with_smm(cpu_bus, &mp_ops) != CB_SUCCESS)
- printk(BIOS_ERR, "MP initialization failure.\n");
+ /* TODO: Handle mp_init_with_smm failure? */
+ mp_init_with_smm(cpu_bus, &mp_ops);
/* Thermal throttle activation offset */
configure_tcc_thermal_target();
diff --git a/src/soc/intel/apollolake/cpu.c b/src/soc/intel/apollolake/cpu.c
index 645582b..af0a6dc 100644
--- a/src/soc/intel/apollolake/cpu.c
+++ b/src/soc/intel/apollolake/cpu.c
@@ -251,8 +251,8 @@
void soc_init_cpus(struct bus *cpu_bus)
{
/* Clear for take-off */
- if (mp_init_with_smm(cpu_bus, &mp_ops) != CB_SUCCESS)
- printk(BIOS_ERR, "MP initialization failure.\n");
+ /* TODO: Handle mp_init_with_smm failure? */
+ mp_init_with_smm(cpu_bus, &mp_ops);
}
void apollolake_init_cpus(struct device *dev)
diff --git a/src/soc/intel/baytrail/cpu.c b/src/soc/intel/baytrail/cpu.c
index 8e40265..98400d1 100644
--- a/src/soc/intel/baytrail/cpu.c
+++ b/src/soc/intel/baytrail/cpu.c
@@ -197,6 +197,6 @@
{
struct bus *cpu_bus = dev->link_list;
- if (mp_init_with_smm(cpu_bus, &mp_ops) != CB_SUCCESS)
- printk(BIOS_ERR, "MP initialization failure.\n");
+ /* TODO: Handle mp_init_with_smm failure? */
+ mp_init_with_smm(cpu_bus, &mp_ops);
}
diff --git a/src/soc/intel/braswell/cpu.c b/src/soc/intel/braswell/cpu.c
index ead42b9..ed52442 100644
--- a/src/soc/intel/braswell/cpu.c
+++ b/src/soc/intel/braswell/cpu.c
@@ -206,6 +206,6 @@
{
struct bus *cpu_bus = dev->link_list;
- if (mp_init_with_smm(cpu_bus, &mp_ops) != CB_SUCCESS)
- printk(BIOS_ERR, "MP initialization failure.\n");
+ /* TODO: Handle mp_init_with_smm failure? */
+ mp_init_with_smm(cpu_bus, &mp_ops);
}
diff --git a/src/soc/intel/cannonlake/cpu.c b/src/soc/intel/cannonlake/cpu.c
index 23b944d..4f67208 100644
--- a/src/soc/intel/cannonlake/cpu.c
+++ b/src/soc/intel/cannonlake/cpu.c
@@ -190,8 +190,8 @@
void soc_init_cpus(struct bus *cpu_bus)
{
- if (mp_init_with_smm(cpu_bus, &mp_ops) != CB_SUCCESS)
- printk(BIOS_ERR, "MP initialization failure.\n");
+ /* TODO: Handle mp_init_with_smm failure? */
+ mp_init_with_smm(cpu_bus, &mp_ops);
/* Thermal throttle activation offset */
configure_tcc_thermal_target();
diff --git a/src/soc/intel/denverton_ns/cpu.c b/src/soc/intel/denverton_ns/cpu.c
index ab4043b..d856692 100644
--- a/src/soc/intel/denverton_ns/cpu.c
+++ b/src/soc/intel/denverton_ns/cpu.c
@@ -297,6 +297,6 @@
add_more_links(dev, 1);
/* Clear for take-off */
- if (mp_init_with_smm(dev->link_list, &mp_ops) != CB_SUCCESS)
- printk(BIOS_ERR, "MP initialization failure.\n");
+ /* TODO: Handle mp_init_with_smm failure? */
+ mp_init_with_smm(dev->link_list, &mp_ops);
}
diff --git a/src/soc/intel/elkhartlake/cpu.c b/src/soc/intel/elkhartlake/cpu.c
index bfbb87f..0fcc61d 100644
--- a/src/soc/intel/elkhartlake/cpu.c
+++ b/src/soc/intel/elkhartlake/cpu.c
@@ -118,8 +118,8 @@
void soc_init_cpus(struct bus *cpu_bus)
{
- if (mp_init_with_smm(cpu_bus, &mp_ops) != CB_SUCCESS)
- printk(BIOS_ERR, "MP initialization failure.\n");
+ /* TODO: Handle mp_init_with_smm failure? */
+ mp_init_with_smm(cpu_bus, &mp_ops);
/* Thermal throttle activation offset */
configure_tcc_thermal_target();
diff --git a/src/soc/intel/icelake/cpu.c b/src/soc/intel/icelake/cpu.c
index dea75b6..203cddd 100644
--- a/src/soc/intel/icelake/cpu.c
+++ b/src/soc/intel/icelake/cpu.c
@@ -154,6 +154,6 @@
void soc_init_cpus(struct bus *cpu_bus)
{
- if (mp_init_with_smm(cpu_bus, &mp_ops) != CB_SUCCESS)
- printk(BIOS_ERR, "MP initialization failure.\n");
+ /* TODO: Handle mp_init_with_smm failure? */
+ mp_init_with_smm(cpu_bus, &mp_ops);
}
diff --git a/src/soc/intel/jasperlake/cpu.c b/src/soc/intel/jasperlake/cpu.c
index 18194c9..9959bd5 100644
--- a/src/soc/intel/jasperlake/cpu.c
+++ b/src/soc/intel/jasperlake/cpu.c
@@ -120,8 +120,8 @@
void soc_init_cpus(struct bus *cpu_bus)
{
- if (mp_init_with_smm(cpu_bus, &mp_ops) != CB_SUCCESS)
- printk(BIOS_ERR, "MP initialization failure.\n");
+ /* TODO: Handle mp_init_with_smm failure? */
+ mp_init_with_smm(cpu_bus, &mp_ops);
/* Thermal throttle activation offset */
configure_tcc_thermal_target();
diff --git a/src/soc/intel/skylake/cpu.c b/src/soc/intel/skylake/cpu.c
index 86e8e52..91db06b 100644
--- a/src/soc/intel/skylake/cpu.c
+++ b/src/soc/intel/skylake/cpu.c
@@ -215,8 +215,8 @@
void soc_init_cpus(struct bus *cpu_bus)
{
- if (mp_init_with_smm(cpu_bus, &mp_ops) != CB_SUCCESS)
- printk(BIOS_ERR, "MP initialization failure.\n");
+ /* TODO: Handle mp_init_with_smm failure? */
+ mp_init_with_smm(cpu_bus, &mp_ops);
/* Thermal throttle activation offset */
configure_tcc_thermal_target();
diff --git a/src/soc/intel/tigerlake/cpu.c b/src/soc/intel/tigerlake/cpu.c
index f10f0cf..ce020ee 100644
--- a/src/soc/intel/tigerlake/cpu.c
+++ b/src/soc/intel/tigerlake/cpu.c
@@ -126,8 +126,8 @@
void soc_init_cpus(struct bus *cpu_bus)
{
- if (mp_init_with_smm(cpu_bus, &mp_ops) != CB_SUCCESS)
- printk(BIOS_ERR, "MP initialization failure.\n");
+ /* TODO: Handle mp_init_with_smm failure? */
+ mp_init_with_smm(cpu_bus, &mp_ops);
/* Thermal throttle activation offset */
configure_tcc_thermal_target();
diff --git a/src/soc/intel/xeon_sp/cpx/cpu.c b/src/soc/intel/xeon_sp/cpx/cpu.c
index 9746972..ba417a7 100644
--- a/src/soc/intel/xeon_sp/cpx/cpu.c
+++ b/src/soc/intel/xeon_sp/cpx/cpu.c
@@ -212,8 +212,8 @@
intel_microcode_load_unlocked(microcode_patch);
- if (mp_init_with_smm(dev->link_list, &mp_ops) != CB_SUCCESS)
- printk(BIOS_ERR, "MP initialization failure.\n");
+ /* TODO: Handle mp_init_with_smm failure? */
+ mp_init_with_smm(dev->link_list, &mp_ops);
/*
* chip_config is used in cpu device callback. Other than cpu 0,
diff --git a/src/soc/intel/xeon_sp/skx/cpu.c b/src/soc/intel/xeon_sp/skx/cpu.c
index 4d01740..fcdb2d7 100644
--- a/src/soc/intel/xeon_sp/skx/cpu.c
+++ b/src/soc/intel/xeon_sp/skx/cpu.c
@@ -231,8 +231,8 @@
config_reset_cpl3_csrs();
/* calls src/cpu/x86/mp_init.c */
- if (mp_init_with_smm(dev->link_list, &mp_ops) != CB_SUCCESS)
- printk(BIOS_ERR, "MP initialization failure.\n");
+ /* TODO: Handle mp_init_with_smm failure? */
+ mp_init_with_smm(dev->link_list, &mp_ops);
/* update numa domain for all cpu devices */
xeonsp_init_cpu_config();