x86: coreboot: Allow building an SPL image
authorSimon Glass <sjg@chromium.org>
Fri, 1 May 2020 03:21:43 +0000 (21:21 -0600)
committerBin Meng <bmeng.cn@gmail.com>
Mon, 4 May 2020 07:28:28 +0000 (15:28 +0800)
Make a few adjustments to allow us to build an SPL image for coreboot.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Bin Meng <bmeng.cn@gmail.com>
arch/x86/cpu/Makefile
arch/x86/cpu/coreboot/Makefile
arch/x86/cpu/coreboot/coreboot.c
arch/x86/cpu/coreboot/coreboot_spl.c [new file with mode: 0644]
arch/x86/cpu/intel_common/Makefile
arch/x86/cpu/x86_64/cpu.c

index 307267a8fb33b9a19b56b5fb4e075fc4dea258e7..ee0499f5d797ee273a95c57c233d4a7594c4b818 100644 (file)
@@ -54,9 +54,11 @@ obj-$(CONFIG_INTEL_QUARK) += quark/
 obj-$(CONFIG_INTEL_QUEENSBAY) += queensbay/
 obj-$(CONFIG_INTEL_TANGIER) += tangier/
 obj-$(CONFIG_APIC) += lapic.o ioapic.o
-obj-$(CONFIG_$(SPL_TPL_)X86_32BIT_INIT) += irq.o
 obj-$(CONFIG_$(SPL_TPL_)ACPI_GPE) += acpi_gpe.o
 obj-$(CONFIG_QFW) += qfw_cpu.o
+ifndef CONFIG_SYS_COREBOOT
+obj-$(CONFIG_$(SPL_TPL_)X86_32BIT_INIT) += irq.o
+endif
 ifndef CONFIG_$(SPL_)X86_64
 obj-$(CONFIG_SMP) += mp_init.o
 endif
index 35b15bb1da8df3fa8dc7d98ef588b49591287f7a..605f90304e37e55826f836ab8b4c31ee3a5677e7 100644 (file)
 # (C) Copyright 2002
 # Daniel Engström, Omicron Ceti AB, daniel@omicron.se.
 
+ifndef CONFIG_SPL
 obj-y += car.o
+endif
+ifdef CONFIG_SPL_BUILD
+obj-y += coreboot_spl.o
+else
+obj-y += sdram.o
+endif
 obj-y += coreboot.o
 obj-y += tables.o
-obj-y += sdram.o
 obj-y += timestamp.o
index 0c4c6348d1d902b07aab90ac1f7f6517c64d1cb8..624caf67a6aaae6f418e39cb1d4c98691be492a8 100644 (file)
@@ -27,7 +27,8 @@ int arch_cpu_init(void)
 
        timestamp_init();
 
-       return x86_cpu_init_f();
+       return IS_ENABLED(CONFIG_X86_RUN_64BIT) ? x86_cpu_reinit_f() :
+                x86_cpu_init_f();
 }
 
 int checkcpu(void)
diff --git a/arch/x86/cpu/coreboot/coreboot_spl.c b/arch/x86/cpu/coreboot/coreboot_spl.c
new file mode 100644 (file)
index 0000000..3666187
--- /dev/null
@@ -0,0 +1,12 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2020 Google LLC
+ */
+
+#include <common.h>
+#include <init.h>
+
+int dram_init(void)
+{
+       return 0;
+}
index 1736bd2b530e1820490169d80fb2ab46ace136aa..374803b87607d0a624dd4e6ec0c6542ac62537e0 100644 (file)
@@ -32,6 +32,8 @@ obj-$(CONFIG_HAVE_P2SB) += p2sb.o
 
 ifdef CONFIG_SPL
 ifndef CONFIG_SPL_BUILD
+ifndef CONFIG_SYS_COREBOOT
 obj-y += cpu_from_spl.o
 endif
 endif
+endif
index 90925e46ea2195b3b6312f8f22efcb69ec56e99d..4b64339f25954c87da8dae46583761bf62d8fb3a 100644 (file)
@@ -53,6 +53,7 @@ int misc_init_r(void)
        return 0;
 }
 
+#ifndef CONFIG_SYS_COREBOOT
 int checkcpu(void)
 {
        return 0;
@@ -62,6 +63,7 @@ int print_cpuinfo(void)
 {
        return 0;
 }
+#endif
 
 int x86_cpu_reinit_f(void)
 {