[coreboot-gerrit] New patch to review for coreboot: bcf57ef Prefer get_cbmem_table() over set_cbmem_table()

Kyösti Mälkki (kyosti.malkki@gmail.com) gerrit at coreboot.org
Thu Sep 5 08:19:42 CEST 2013


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/3906

-gerrit

commit bcf57efa5a7e45d16ee7b9a1f9984bb67aa85b38
Author: Kyösti Mälkki <kyosti.malkki at gmail.com>
Date:   Sun Jun 23 20:03:50 2013 +0300

    Prefer get_cbmem_table() over set_cbmem_table()
    
    First attempt to access CBMEM in ramstage resolves the location
    of CBMEM region.
    
    Change-Id: I982b9abfcee57a7ea421c245dadb84342949efae
    Signed-off-by: Kyösti Mälkki <kyosti.malkki at gmail.com>
---
 src/lib/cbmem.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/lib/cbmem.c b/src/lib/cbmem.c
index 1645096..aa60f8c 100644
--- a/src/lib/cbmem.c
+++ b/src/lib/cbmem.c
@@ -43,8 +43,8 @@ struct cbmem_entry {
 } __attribute__((packed));
 
 #ifndef __PRE_RAM__
-uint64_t high_tables_base = 0;
-uint64_t high_tables_size = 0;
+static uint64_t bss_cbmem_base = 0;
+static uint64_t bss_cbmem_size = 0;
 #endif
 
 static void cbmem_locate_table(uint64_t *base, uint64_t *size)
@@ -52,8 +52,10 @@ static void cbmem_locate_table(uint64_t *base, uint64_t *size)
 #ifdef __PRE_RAM__
 	get_cbmem_table(base, size);
 #else
-	*base = high_tables_base;
-	*size = high_tables_size;
+	if (!(bss_cbmem_base && bss_cbmem_size))
+		get_cbmem_table(&bss_cbmem_base, &bss_cbmem_size);
+	*base = bss_cbmem_base;
+	*size = bss_cbmem_size;
 #endif
 }
 
@@ -67,12 +69,12 @@ struct cbmem_entry *get_cbmem_toc(void)
 #if !defined(__PRE_RAM__)
 void set_cbmem_table(uint64_t base, uint64_t size)
 {
-	if (base == high_tables_base && size == high_tables_size)
+	if (base == bss_cbmem_base && size == bss_cbmem_size)
 		return;
 
 	printk(BIOS_DEBUG, "CBMEM region %llx-%llx\n", base, base+size-1);
-	high_tables_base = base;
-	high_tables_size = size;
+	bss_cbmem_base = base;
+	bss_cbmem_size = size;
 }
 #endif
 



More information about the coreboot-gerrit mailing list