[coreboot-gerrit] Patch set updated for coreboot: dfcadf1 CBMEM: Implement cbmem_run_init_hooks() stub
Kyösti Mälkki (kyosti.malkki@gmail.com)
gerrit at coreboot.org
Sun Jan 11 07:36:04 CET 2015
Kyösti Mälkki (kyosti.malkki at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/7876
-gerrit
commit dfcadf158225c428efd3ebd2d4f8d507d841fb22
Author: Kyösti Mälkki <kyosti.malkki at gmail.com>
Date: Thu Dec 18 18:30:29 2014 +0200
CBMEM: Implement cbmem_run_init_hooks() stub
Until we completely can unify early_variables, use these to
handle CBMEM update hooks for both romstage and ramstage.
For x86, CAR_MIGRATE serves the purpose of romstage hooks.
Change-Id: I100ebc0e35e1b7091b4f287ca37f539fd7c9fa7a
Signed-off-by: Kyösti Mälkki <kyosti.malkki at gmail.com>
---
src/arch/arm/tables.c | 8 --------
src/arch/arm64/tables.c | 4 ----
src/arch/riscv/tables.c | 8 --------
src/arch/x86/boot/cbmem.c | 18 ++++++++++++------
src/arch/x86/boot/tables.c | 8 --------
src/include/cbmem.h | 8 +++-----
src/lib/cbmem.c | 2 +-
src/lib/cbmem_common.c | 11 +++++++++++
src/lib/dynamic_cbmem.c | 4 ++--
9 files changed, 29 insertions(+), 42 deletions(-)
diff --git a/src/arch/arm/tables.c b/src/arch/arm/tables.c
index a2b7b9b..09385b6 100644
--- a/src/arch/arm/tables.c
+++ b/src/arch/arm/tables.c
@@ -29,14 +29,6 @@
#define MAX_COREBOOT_TABLE_SIZE (8 * 1024)
-void cbmem_arch_init(void)
-{
-}
-
-void cbmem_fail_resume(void)
-{
-}
-
void write_tables(void)
{
unsigned long table_pointer, new_table_pointer;
diff --git a/src/arch/arm64/tables.c b/src/arch/arm64/tables.c
index ce7ad5a..f71c215 100644
--- a/src/arch/arm64/tables.c
+++ b/src/arch/arm64/tables.c
@@ -29,10 +29,6 @@
#define MAX_COREBOOT_TABLE_SIZE (8 * 1024)
-void cbmem_arch_init(void)
-{
-}
-
struct lb_memory *write_tables(void)
{
unsigned long table_pointer, new_table_pointer;
diff --git a/src/arch/riscv/tables.c b/src/arch/riscv/tables.c
index 6300f7b..124a659 100644
--- a/src/arch/riscv/tables.c
+++ b/src/arch/riscv/tables.c
@@ -29,10 +29,6 @@
#define MAX_COREBOOT_TABLE_SIZE (8 * 1024)
-void cbmem_arch_init(void)
-{
-}
-
// WTF. this does not agre with the prototype!
static struct lb_memory *wtf_write_tables(void)
{
@@ -70,7 +66,3 @@ void write_tables(void)
{
wtf_write_tables();
}
-
-void cbmem_fail_resume(void)
-{
-}
diff --git a/src/arch/x86/boot/cbmem.c b/src/arch/x86/boot/cbmem.c
index 8b2b6da..bbf70a2 100644
--- a/src/arch/x86/boot/cbmem.c
+++ b/src/arch/x86/boot/cbmem.c
@@ -20,6 +20,9 @@
#include <cbmem.h>
#include <arch/acpi.h>
+/* FIXME: Remove after CBMEM_INIT_HOOKS. */
+#include <cpu/x86/gdt.h>
+
#if !CONFIG_DYNAMIC_CBMEM
void get_cbmem_table(uint64_t *base, uint64_t *size)
{
@@ -69,16 +72,19 @@ void *cbmem_top(void)
#endif /* DYNAMIC_CBMEM */
+void cbmem_run_init_hooks(void)
+{
#if !defined(__PRE_RAM__)
+ move_gdt();
+#endif
+}
-/* ACPI resume needs to be cleared in the fail-to-recover case, but that
- * condition is only handled during ramstage. */
+/* Something went wrong, our high memory area got wiped */
void cbmem_fail_resume(void)
{
-#if CONFIG_HAVE_ACPI_RESUME
- /* Something went wrong, our high memory area got wiped */
+#if !defined(__PRE_RAM__) && IS_ENABLED(CONFIG_HAVE_ACPI_RESUME)
+ /* ACPI resume needs to be cleared in the fail-to-recover case, but that
+ * condition is only handled during ramstage. */
acpi_fail_wakeup();
#endif
}
-
-#endif /* !__PRE_RAM__ */
diff --git a/src/arch/x86/boot/tables.c b/src/arch/x86/boot/tables.c
index 8685ed4..c2265ea 100644
--- a/src/arch/x86/boot/tables.c
+++ b/src/arch/x86/boot/tables.c
@@ -21,7 +21,6 @@
#include <console/console.h>
#include <cpu/cpu.h>
-#include <cpu/x86/gdt.h>
#include <boot/tables.h>
#include <boot/coreboot_tables.h>
#include <arch/pirq_routing.h>
@@ -31,13 +30,6 @@
#include <cbmem.h>
#include <smbios.h>
-
-void cbmem_arch_init(void)
-{
- /* defined in gdt.c */
- move_gdt();
-}
-
void write_tables(void)
{
unsigned long low_table_start, low_table_end;
diff --git a/src/include/cbmem.h b/src/include/cbmem.h
index 7de6e56..88d2bfe 100644
--- a/src/include/cbmem.h
+++ b/src/include/cbmem.h
@@ -213,17 +213,15 @@ void *cbmem_add(u32 id, u64 size);
/* Find a cbmem entry of a given id. These return NULL on failure. */
void *cbmem_find(u32 id);
+void cbmem_run_init_hooks(void);
+void cbmem_fail_resume(void);
+
#ifndef __PRE_RAM__
/* Ramstage only functions. */
/* Add the cbmem memory used to the memory map at boot. */
void cbmem_add_bootmem(void);
void cbmem_list(void);
-void cbmem_arch_init(void);
void cbmem_print_entry(int n, u32 id, u64 start, u64 size);
-void cbmem_fail_resume(void);
-#else
-static inline void cbmem_arch_init(void) {}
-static inline void cbmem_fail_resume(void) {}
#endif /* __PRE_RAM__ */
#endif /* __ASSEMBLER__ */
diff --git a/src/lib/cbmem.c b/src/lib/cbmem.c
index 0b24ad2..5f834b7 100644
--- a/src/lib/cbmem.c
+++ b/src/lib/cbmem.c
@@ -243,7 +243,7 @@ int cbmem_recovery(int is_wakeup)
cbmem_fail_resume();
}
- cbmem_arch_init();
+ cbmem_run_init_hooks();
car_migrate_variables();
return !found;
}
diff --git a/src/lib/cbmem_common.c b/src/lib/cbmem_common.c
index a800173..438fd7f 100644
--- a/src/lib/cbmem_common.c
+++ b/src/lib/cbmem_common.c
@@ -47,3 +47,14 @@ void cbmem_print_entry(int n, u32 id, u64 base, u64 size)
}
#endif /* !__PRE_RAM__ */
+
+/* FIXME: Replace with CBMEM_INIT_HOOKS API. */
+#if !IS_ENABLED(CONFIG_ARCH_X86)
+void cbmem_run_init_hooks(void)
+{
+}
+
+void __attribute__((weak)) cbmem_fail_resume(void)
+{
+}
+#endif
diff --git a/src/lib/dynamic_cbmem.c b/src/lib/dynamic_cbmem.c
index 5eddbca..ce4e625 100644
--- a/src/lib/dynamic_cbmem.c
+++ b/src/lib/dynamic_cbmem.c
@@ -171,7 +171,7 @@ void cbmem_initialize_empty(void)
printk(BIOS_DEBUG, "CBMEM: root @ %p %d entries.\n",
root, root->max_entries);
- cbmem_arch_init();
+ cbmem_run_init_hooks();
/* Migrate cache-as-ram variables. */
car_migrate_variables();
@@ -249,7 +249,7 @@ int cbmem_initialize(void)
root->locked = 1;
#endif
- cbmem_arch_init();
+ cbmem_run_init_hooks();
/* Migrate cache-as-ram variables. */
car_migrate_variables();
More information about the coreboot-gerrit
mailing list