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>
This commit is contained in:
Patrick Georgi 2012-02-02 15:51:29 +01:00 committed by Patrick Georgi
parent b06bd8d954
commit 5febb00640
2 changed files with 19 additions and 1 deletions

View File

@ -30,11 +30,28 @@
#include <libpayload.h> #include <libpayload.h>
#include <coreboot_tables.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) { struct nvram_accessor *use_nvram = &(struct nvram_accessor) {
nvram_read, nvram_read,
nvram_write nvram_write
}; };
struct nvram_accessor *use_mem = &(struct nvram_accessor) {
mem_read,
mem_write
};
struct cb_cmos_option_table *get_system_option_table(void) struct cb_cmos_option_table *get_system_option_table(void)
{ {
return phys_to_virt(lib_sysinfo.option_table); return phys_to_virt(lib_sysinfo.option_table);

View File

@ -199,7 +199,8 @@ struct nvram_accessor {
void (*write)(u8 val, u8 reg); 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); struct cb_cmos_option_table *get_system_option_table(void);
void fix_options_checksum_with(const struct nvram_accessor *nvram); void fix_options_checksum_with(const struct nvram_accessor *nvram);