x86: Move coreboot-table detection to common 32/64-bit code
authorSimon Glass <sjg@chromium.org>
Fri, 1 May 2020 03:21:39 +0000 (21:21 -0600)
committerBin Meng <bmeng.cn@gmail.com>
Mon, 4 May 2020 07:28:28 +0000 (15:28 +0800)
At present this function is only available in 32-bit code. Move it to the
common cpu file so it can be used by 64-bit U-Boot too.

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/cpu.c
arch/x86/cpu/i386/cpu.c

index 8526e856d7d47f97726c05ab389da2ade5a403ae..2e5d0ddd9f63d212eec35a85effcc68eb305d92a 100644 (file)
@@ -290,3 +290,28 @@ int reserve_arch(void)
        return 0;
 }
 #endif
+
+long detect_coreboot_table_at(ulong start, ulong size)
+{
+       u32 *ptr, *end;
+
+       size /= 4;
+       for (ptr = (void *)start, end = ptr + size; ptr < end; ptr += 4) {
+               if (*ptr == 0x4f49424c) /* "LBIO" */
+                       return (long)ptr;
+       }
+
+       return -ENOENT;
+}
+
+long locate_coreboot_table(void)
+{
+       long addr;
+
+       /* We look for LBIO in the first 4K of RAM and again at 960KB */
+       addr = detect_coreboot_table_at(0x0, 0x1000);
+       if (addr < 0)
+               addr = detect_coreboot_table_at(0xf0000, 0x1000);
+
+       return addr;
+}
index 0312a26bbbf5c719e690c32e89e1ea00c29359ed..facd4f58a69670acc0e98bcacc669d73c87c5f2b 100644 (file)
@@ -24,6 +24,7 @@
 #include <malloc.h>
 #include <spl.h>
 #include <asm/control_regs.h>
+#include <asm/coreboot_tables.h>
 #include <asm/cpu.h>
 #include <asm/mp.h>
 #include <asm/msr.h>
@@ -447,31 +448,6 @@ int x86_cpu_init_f(void)
        return 0;
 }
 
-long detect_coreboot_table_at(ulong start, ulong size)
-{
-       u32 *ptr, *end;
-
-       size /= 4;
-       for (ptr = (void *)start, end = ptr + size; ptr < end; ptr += 4) {
-               if (*ptr == 0x4f49424c) /* "LBIO" */
-                       return (long)ptr;
-       }
-
-       return -ENOENT;
-}
-
-long locate_coreboot_table(void)
-{
-       long addr;
-
-       /* We look for LBIO in the first 4K of RAM and again at 960KB */
-       addr = detect_coreboot_table_at(0x0, 0x1000);
-       if (addr < 0)
-               addr = detect_coreboot_table_at(0xf0000, 0x1000);
-
-       return addr;
-}
-
 int x86_cpu_reinit_f(void)
 {
        setup_identity();