libpayload: Add get_option_from()

This function allows reading the nvram configuration table from
locations other than the cbtable.

Change-Id: I56c9973a9ea45ad7bf0185b70d11c9ce5d0e0e1b
Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com>
Reviewed-on: http://review.coreboot.org/213
Tested-by: build bot (Jenkins)
Reviewed-by: Marc Jones <marcj303@gmail.com>
diff --git a/payloads/libpayload/drivers/options.c b/payloads/libpayload/drivers/options.c
index 1c692f4..fdb4be3 100644
--- a/payloads/libpayload/drivers/options.c
+++ b/payloads/libpayload/drivers/options.c
@@ -93,9 +93,8 @@
 	return 0;
 }
 
-int get_option(void *dest, char *name)
+int get_option_from(struct cb_cmos_option_table *option_table, void *dest, char *name)
 {
-	struct cb_cmos_option_table *option_table = phys_to_virt(lib_sysinfo.option_table);
 	struct cb_cmos_entries *cmos_entry;
 	int len = strnlen(name, CMOS_MAX_NAME_LENGTH);
 
@@ -118,3 +117,9 @@
 	printf("ERROR: No such CMOS option (%s)\n", name);
 	return 1;
 }
+
+int get_option(void *dest, char *name)
+{
+	struct cb_cmos_option_table *option_table = phys_to_virt(lib_sysinfo.option_table);
+	return get_option_from(option_table, dest, name);
+}