write_tables: return a pointer to the table
The write_tables function was void. It is a bit more
useful for loading payloads from the romstage
if it returns a pointer to the table it creates.
Change-Id: I6eeaf3e16bcbaf1e7ec3eada8026c466d2fb6f5a
Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Reviewed-on: https://review.coreboot.org/27537
Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
diff --git a/src/include/boot/tables.h b/src/include/boot/tables.h
index c2d7b48..9e82e3f 100644
--- a/src/include/boot/tables.h
+++ b/src/include/boot/tables.h
@@ -6,8 +6,9 @@
/*
* Write architecture specific tables as well as the common
* coreboot table.
+ * Returns a pointer to the table or NULL on error.
*/
-void write_tables(void);
+void *write_tables(void);
/*
* Allow per-architecture table writes called from write_tables(). The
diff --git a/src/lib/coreboot_table.c b/src/lib/coreboot_table.c
index b894809..8fc7b6f 100644
--- a/src/lib/coreboot_table.c
+++ b/src/lib/coreboot_table.c
@@ -585,7 +585,7 @@
return lb_table_fini(head);
}
-void write_tables(void)
+void *write_tables(void)
{
uintptr_t cbtable_start;
uintptr_t cbtable_end;
@@ -596,7 +596,7 @@
if (!cbtable_start) {
printk(BIOS_ERR, "Could not add CBMEM for coreboot table.\n");
- return;
+ return NULL;
}
/* Add architecture specific tables. */
@@ -615,4 +615,5 @@
/* Print CBMEM sections */
cbmem_list();
+ return (void *)cbtable_start;
}