From e0368b434e63fc687f0f6b6709e41159bbc2e877 Mon Sep 17 00:00:00 2001 From: Paul Menzel Date: Fri, 11 Jan 2019 11:34:54 +0100 Subject: Revert "cpu/amd: Use `get_option()`" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 6fffd70435084fb1d3237fcb1a11f11849721e8f. Doing more tests on the Asus KGPE-D16, it seems to cause a reboot loop quite often. Therefore, revert the commit. The problem might be caused by the spinlocks used by `get_option()`, and which are not used by `read_option()`. Change-Id: Ic25129aa71c8e8e40a65bb2658de78005766fea8 Signed-off-by: Paul Menzel Reviewed-on: https://review.coreboot.org/c/30830 Tested-by: build bot (Jenkins) Reviewed-by: Angel Pons Reviewed-by: Kyösti Mälkki --- src/cpu/amd/family_10h-family_15h/init_cpus.c | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/src/cpu/amd/family_10h-family_15h/init_cpus.c b/src/cpu/amd/family_10h-family_15h/init_cpus.c index b8e11e4ccc..2ddbc43ee6 100644 --- a/src/cpu/amd/family_10h-family_15h/init_cpus.c +++ b/src/cpu/amd/family_10h-family_15h/init_cpus.c @@ -147,9 +147,6 @@ static void for_each_ap(uint32_t bsp_apicid, uint32_t core_range, int8_t node, // here assume the OS don't change our apicid u32 ap_apicid; - u8 nvram; - bool multicore; - u32 nodes; u32 disable_siblings; u32 cores_found; @@ -158,13 +155,12 @@ static void for_each_ap(uint32_t bsp_apicid, uint32_t core_range, int8_t node, /* get_nodes define in ht_wrapper.c */ nodes = get_nodes(); - multicore = true; - if (get_option(&nvram, "multi_core") == CB_SUCCESS) - multicore = !!nvram; - - disable_siblings = 0; - if (!IS_ENABLED(CONFIG_LOGICAL_CPUS) || !multicore) + if (!IS_ENABLED(CONFIG_LOGICAL_CPUS) || + read_option(multi_core, 0) != 0) { // 0 means multi core disable_siblings = 1; + } else { + disable_siblings = 0; + } for (i = 0; i < nodes; i++) { if ((node >= 0) && (i != node)) @@ -639,17 +635,11 @@ static void setup_remote_node(u8 node) //it is running on core0 of node0 void start_other_cores(uint32_t bsp_apicid) { - u8 nvram; u32 nodes; u32 nodeid; - bool multicore; // disable multi_core - multicore = true; - if (get_option(&nvram, "multi_core") == CB_SUCCESS) - multicore = !!nvram; - - if (!multicore) { + if (read_option(multi_core, 0) != 0) { printk(BIOS_DEBUG, "Skip additional core init\n"); return; } -- cgit v1.2.3