summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/cbmem.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/lib/cbmem.c b/src/lib/cbmem.c
index d7f866bec8..a394f313d6 100644
--- a/src/lib/cbmem.c
+++ b/src/lib/cbmem.c
@@ -95,13 +95,16 @@ void cbmem_late_set_table(uint64_t base, uint64_t size)
* - suspend/resume backup memory
*/
-void cbmem_init(u64 baseaddr, u64 size)
+#if CONFIG_EARLY_CBMEM_INIT || !defined(__PRE_RAM__)
+static void cbmem_init(void)
{
+ uint64_t baseaddr, size;
struct cbmem_entry *cbmem_toc;
- cbmem_toc = (struct cbmem_entry *)(unsigned long)baseaddr;
- printk(BIOS_DEBUG, "Initializing CBMEM area to 0x%llx (%lld bytes)\n",
- baseaddr, size);
+ cbmem_locate_table(&baseaddr, &size);
+ cbmem_trace_location(baseaddr, size, __FUNCTION__);
+
+ cbmem_toc = (struct cbmem_entry *)(unsigned long)baseaddr;
if (size < (64 * 1024)) {
printk(BIOS_DEBUG, "Increase CBMEM size!\n");
@@ -117,6 +120,7 @@ void cbmem_init(u64 baseaddr, u64 size)
.size = size - CBMEM_TOC_RESERVED
};
}
+#endif
int cbmem_reinit(void)
{
@@ -220,11 +224,8 @@ void *cbmem_find(u32 id)
/* Returns True if it was not initialized before. */
int cbmem_initialize(void)
{
- uint64_t base = 0, size = 0;
int rv = 0;
- cbmem_locate_table(&base, &size);
-
/* We expect the romstage to always initialize it. */
if (!cbmem_reinit()) {
#if CONFIG_HAVE_ACPI_RESUME && !defined(__PRE_RAM__)
@@ -232,7 +233,7 @@ int cbmem_initialize(void)
if (acpi_slp_type == 3 || acpi_slp_type == 2)
acpi_slp_type = 0;
#endif
- cbmem_init(base, size);
+ cbmem_init();
rv = 1;
}
#ifndef __PRE_RAM__