]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
x86: coreboot: Rearrange arch_cpu_init()
authorSimon Glass <sjg@chromium.org>
Wed, 20 Sep 2023 03:00:04 +0000 (21:00 -0600)
committerBin Meng <bmeng@tinylab.org>
Thu, 21 Sep 2023 22:03:46 +0000 (06:03 +0800)
Init errors in SPL are currently ignored by this function.

Change the code to init the CPU, reporting an error if something is wrong.
After that, look for the coreboot table.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
arch/x86/cpu/coreboot/coreboot.c

index 835b2c777462786af8ee4df87ca05d5a63e09047..da43d66e95d7dc18b456f9023ecc762b167193a0 100644 (file)
 
 int arch_cpu_init(void)
 {
-       int ret = get_coreboot_info(&lib_sysinfo);
+       int ret;
+
+       ret = IS_ENABLED(CONFIG_X86_RUN_64BIT) ? x86_cpu_reinit_f() :
+               x86_cpu_init_f();
+       if (ret)
+               return ret;
+
+       ret = get_coreboot_info(&lib_sysinfo);
        if (ret != 0) {
                printf("Failed to parse coreboot tables.\n");
                return ret;
@@ -29,8 +36,7 @@ int arch_cpu_init(void)
 
        timestamp_init();
 
-       return IS_ENABLED(CONFIG_X86_RUN_64BIT) ? x86_cpu_reinit_f() :
-                x86_cpu_init_f();
+       return 0;
 }
 
 int checkcpu(void)