diff options
author | Patrick Georgi <patrick.georgi@secunet.com> | 2012-02-02 15:51:29 +0100 |
---|---|---|
committer | Patrick Georgi <patrick@georgi-clan.de> | 2012-02-02 17:48:05 +0100 |
commit | 5febb00640f838dc31035c1e6a999067c28367d9 (patch) | |
tree | 9e6dc42b2b75c356621421b9e0cee7b0267aba42 | |
parent | b06bd8d9542513d87c62e494d3ca8012264b2878 (diff) |
libpayload: Add access to CMOS images in memory space
Provide access to CMOS images in RAM or CBFS, such as cmos.defaults
Change-Id: Ifa70dea6206d94c0c271caf9ae1152fc76b5d51a
Signed-off-by: Patrick Georgi <patrick.georgi@secunet.com>
Reviewed-on: http://review.coreboot.org/584
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
-rw-r--r-- | payloads/libpayload/drivers/options.c | 17 | ||||
-rw-r--r-- | payloads/libpayload/include/libpayload.h | 3 |
2 files changed, 19 insertions, 1 deletions
diff --git a/payloads/libpayload/drivers/options.c b/payloads/libpayload/drivers/options.c index 61e6cc565f..36d8a9b5b0 100644 --- a/payloads/libpayload/drivers/options.c +++ b/payloads/libpayload/drivers/options.c @@ -30,11 +30,28 @@ #include <libpayload.h> #include <coreboot_tables.h> +u8 *mem_accessor_base; + +static u8 mem_read(u8 reg) +{ + return mem_accessor_base[reg]; +} + +static void mem_write(u8 val, u8 reg) +{ + mem_accessor_base[reg] = val; +} + struct nvram_accessor *use_nvram = &(struct nvram_accessor) { nvram_read, nvram_write }; +struct nvram_accessor *use_mem = &(struct nvram_accessor) { + mem_read, + mem_write +}; + struct cb_cmos_option_table *get_system_option_table(void) { return phys_to_virt(lib_sysinfo.option_table); diff --git a/payloads/libpayload/include/libpayload.h b/payloads/libpayload/include/libpayload.h index 91156e53df..308d95c667 100644 --- a/payloads/libpayload/include/libpayload.h +++ b/payloads/libpayload/include/libpayload.h @@ -199,7 +199,8 @@ struct nvram_accessor { void (*write)(u8 val, u8 reg); }; -extern struct nvram_accessor *use_nvram; +extern u8 *mem_accessor_base; +extern struct nvram_accessor *use_nvram, *use_mem; struct cb_cmos_option_table *get_system_option_table(void); void fix_options_checksum_with(const struct nvram_accessor *nvram); |