Fix CMOS checksum calculation in libpayload.
authorStefan Reinauer <reinauer@chromium.org>
Fri, 21 Oct 2011 21:37:52 +0000 (14:37 -0700)
committerPatrick Georgi <patrick@georgi-clan.de>
Sat, 22 Oct 2011 16:41:32 +0000 (18:41 +0200)
Change-Id: I64ea53fa098fbcfc76e0ebd5f049a2ee3d0a1024
Signed-off-by: Stefan Reinauer <reinauer@google.com>
Reviewed-on: http://review.coreboot.org/314
Tested-by: build bot (Jenkins)
Reviewed-by: Marc Jones <marcj303@gmail.com>
payloads/libpayload/drivers/options.c

index fdb4be34bbc6d48b70e7a1da42a2bcc91b81e777..394c7920ec99fb4621cc92d479f58478b632ff0c 100644 (file)
@@ -41,7 +41,6 @@ static int options_checksum_valid(void)
        for(i = range_start; i <= range_end; i++) {
                checksum += nvram_read(i);
        }
        for(i = range_start; i <= range_end; i++) {
                checksum += nvram_read(i);
        }
-       checksum = (~checksum)&0xffff;
 
        checksum_old = ((nvram_read(checksum_location)<<8) | nvram_read(checksum_location+1));
 
 
        checksum_old = ((nvram_read(checksum_location)<<8) | nvram_read(checksum_location+1));
 
@@ -59,7 +58,6 @@ void fix_options_checksum(void)
        for(i = range_start; i <= range_end; i++) {
                checksum += nvram_read(i);
        }
        for(i = range_start; i <= range_end; i++) {
                checksum += nvram_read(i);
        }
-       checksum = (~checksum)&0xffff;
 
        nvram_write((checksum >> 8), checksum_location);
        nvram_write((checksum & 0xff), checksum_location + 1);
 
        nvram_write((checksum >> 8), checksum_location);
        nvram_write((checksum & 0xff), checksum_location + 1);