summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/cbmem.h22
-rw-r--r--src/include/console/cbmem_console.h6
-rw-r--r--src/include/cpu/x86/gdt.h3
-rw-r--r--src/include/symbols.h4
-rw-r--r--src/include/timestamp.h2
5 files changed, 26 insertions, 11 deletions
diff --git a/src/include/cbmem.h b/src/include/cbmem.h
index 7afe96011604..55b04b4106bb 100644
--- a/src/include/cbmem.h
+++ b/src/include/cbmem.h
@@ -22,6 +22,7 @@
#define _CBMEM_H_
#include <cbmem_id.h>
+#include <rules.h>
#if IS_ENABLED(CONFIG_HAVE_ACPI_RESUME) && \
! IS_ENABLED(CONFIG_RELOCATABLE_RAMSTAGE)
@@ -112,6 +113,7 @@ 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);
+typedef void (* const cbmem_init_hook_t)(void);
void cbmem_run_init_hooks(void);
void cbmem_fail_resume(void);
@@ -122,6 +124,26 @@ void cbmem_add_bootmem(void);
void cbmem_list(void);
#endif /* __PRE_RAM__ */
+#if ENV_RAMSTAGE
+#define ROMSTAGE_CBMEM_INIT_HOOK(init_fn_) static cbmem_init_hook_t \
+ init_fn_ ## _unused_ __attribute__((unused)) = init_fn_;
+#define RAMSTAGE_CBMEM_INIT_HOOK(init_fn_) \
+ static cbmem_init_hook_t init_fn_ ## _ptr_ __attribute__((used, \
+ section(".rodata.cbmem_init_hooks"))) = init_fn_;
+#elif ENV_ROMSTAGE
+#define ROMSTAGE_CBMEM_INIT_HOOK(init_fn_) \
+ static cbmem_init_hook_t init_fn_ ## _ptr_ __attribute__((used, \
+ section(".rodata.cbmem_init_hooks"))) = init_fn_;
+#define RAMSTAGE_CBMEM_INIT_HOOK(init_fn_) static cbmem_init_hook_t \
+ init_fn_ ## _unused_ __attribute__((unused)) = init_fn_;
+#else
+#define ROMSTAGE_CBMEM_INIT_HOOK(init_fn_) static cbmem_init_hook_t \
+ init_fn_ ## _unused_ __attribute__((unused)) = init_fn_;
+#define RAMSTAGE_CBMEM_INIT_HOOK(init_fn_) static cbmem_init_hook_t \
+ init_fn_ ## _unused2_ __attribute__((unused)) = init_fn_;
+#endif /* ENV_RAMSTAGE */
+
+
/* These are for compatibility with old boards only. Any new chipset and board
* must implement cbmem_top() for both romstage and ramstage to support
* early features like COLLECT_TIMESTAMPS and CBMEM_CONSOLE.
diff --git a/src/include/console/cbmem_console.h b/src/include/console/cbmem_console.h
index e9ec66ee9e96..06013f2a2206 100644
--- a/src/include/console/cbmem_console.h
+++ b/src/include/console/cbmem_console.h
@@ -25,12 +25,6 @@
void cbmemc_init(void);
void cbmemc_tx_byte(unsigned char data);
-#if CONFIG_CONSOLE_CBMEM
-void cbmemc_reinit(void);
-#else
-static inline void cbmemc_reinit(void) {}
-#endif
-
#define __CBMEM_CONSOLE_ENABLE__ CONFIG_CONSOLE_CBMEM && \
(ENV_RAMSTAGE || (IS_ENABLED(CONFIG_EARLY_CBMEM_INIT) && \
(ENV_ROMSTAGE || (ENV_BOOTBLOCK && CONFIG_BOOTBLOCK_CONSOLE))))
diff --git a/src/include/cpu/x86/gdt.h b/src/include/cpu/x86/gdt.h
index 8525a3cd445d..a96b0e408309 100644
--- a/src/include/cpu/x86/gdt.h
+++ b/src/include/cpu/x86/gdt.h
@@ -28,7 +28,4 @@ extern char _secondary_gdt_addr[];
extern char _secondary_start[];
extern char _secondary_start_end[];
-/* Defined in src/arch/x86/boot/gdt.c */
-void move_gdt(void);
-
#endif /* CPU_X86_GDT */
diff --git a/src/include/symbols.h b/src/include/symbols.h
index 4a47de1f4137..9102e8295230 100644
--- a/src/include/symbols.h
+++ b/src/include/symbols.h
@@ -33,6 +33,10 @@ extern u8 _epreram_cbmem_console[];
#define _preram_cbmem_console_size \
(_epreram_cbmem_console - _preram_cbmem_console)
+extern u8 _cbmem_init_hooks[];
+extern u8 _ecbmem_init_hooks[];
+#define _cbmem_init_hooks_size (_ecbmem_init_hooks - _cbmem_init_hooks)
+
extern u8 _stack[];
extern u8 _estack[];
#define _stack_size (_estack - _stack)
diff --git a/src/include/timestamp.h b/src/include/timestamp.h
index d9afeea0c1a2..a248ea45cd49 100644
--- a/src/include/timestamp.h
+++ b/src/include/timestamp.h
@@ -92,12 +92,10 @@ enum timestamp_id {
void timestamp_init(uint64_t base);
void timestamp_add(enum timestamp_id id, uint64_t ts_time);
void timestamp_add_now(enum timestamp_id id);
-void timestamp_reinit(void);
#else
#define timestamp_init(base)
#define timestamp_add(id, time)
#define timestamp_add_now(id)
-#define timestamp_reinit()
#endif
/* Implemented by the architecture code */