fix option handling in libpayload
authorStefan Reinauer <stepan@coresystems.de>
Fri, 26 Sep 2008 18:39:06 +0000 (18:39 +0000)
committerStefan Reinauer <stepan@openbios.org>
Fri, 26 Sep 2008 18:39:06 +0000 (18:39 +0000)
Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Jordan Crouse <jordan.crouse@amd.com>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3606 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1

payloads/libpayload/drivers/options.c

index 4534018ab8a27a989376b932a81d4c054597f7f5..8eed78ef17d37572b11432d1ecbd7427ea42b5e5 100644 (file)
@@ -33,9 +33,9 @@
 static int options_checksum_valid(void)
 {
        int i;
-       int range_start = lib_sysinfo.cmos_range_start;
-       int range_end = lib_sysinfo.cmos_range_end;
-       int checksum_location = lib_sysinfo.cmos_checksum_location;
+       int range_start = lib_sysinfo.cmos_range_start / 8;
+       int range_end = lib_sysinfo.cmos_range_end / 8;
+       int checksum_location = lib_sysinfo.cmos_checksum_location / 8;
        u16 checksum = 0, checksum_old;
 
        for(i = range_start; i <= range_end; i++) {
@@ -80,7 +80,7 @@ static int get_cmos_value(u32 bitnum, u32 len, void *valptr)
 
 int get_option(void *dest, char *name)
 {
-       struct cb_cmos_option_table *option_table = lib_sysinfo.option_table;
+       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);