From 5febb00640f838dc31035c1e6a999067c28367d9 Mon Sep 17 00:00:00 2001 From: Patrick Georgi Date: Thu, 2 Feb 2012 15:51:29 +0100 Subject: [PATCH] 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 Reviewed-on: http://review.coreboot.org/584 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi --- payloads/libpayload/drivers/options.c | 17 +++++++++++++++++ payloads/libpayload/include/libpayload.h | 3 ++- 2 files changed, 19 insertions(+), 1 deletion(-) 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 #include +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);