Kyösti Mälkki submitted this change.

View Change

Approvals: build bot (Jenkins): Verified Angel Pons: Looks good to me, approved
drivers/pc80/rtc: Remove duplicate cmos_chksum_valid()

Change-Id: I5a4b86921876c24cd1d310b674119b960c3d2fd6
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/38194
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
---
M src/drivers/pc80/rtc/Makefile.inc
M src/drivers/pc80/rtc/mc146818rtc.c
M src/drivers/pc80/rtc/mc146818rtc_boot.c
M src/include/pc80/mc146818rtc.h
4 files changed, 13 insertions(+), 23 deletions(-)

diff --git a/src/drivers/pc80/rtc/Makefile.inc b/src/drivers/pc80/rtc/Makefile.inc
index 998b7e7..749306b 100644
--- a/src/drivers/pc80/rtc/Makefile.inc
+++ b/src/drivers/pc80/rtc/Makefile.inc
@@ -1,6 +1,7 @@
ifeq ($(CONFIG_ARCH_X86),y)

-bootblock-$(CONFIG_DRIVERS_MC146818) += mc146818rtc_boot.c
+all-$(CONFIG_DRIVERS_MC146818) += mc146818rtc_boot.c
+
bootblock-$(CONFIG_DRIVERS_MC146818) += mc146818rtc.c
postcar-$(CONFIG_DRIVERS_MC146818) += mc146818rtc.c
romstage-$(CONFIG_DRIVERS_MC146818) += mc146818rtc.c
diff --git a/src/drivers/pc80/rtc/mc146818rtc.c b/src/drivers/pc80/rtc/mc146818rtc.c
index b870da2..715e440 100644
--- a/src/drivers/pc80/rtc/mc146818rtc.c
+++ b/src/drivers/pc80/rtc/mc146818rtc.c
@@ -53,7 +53,7 @@
rtc_set(&time);
}

-static int cmos_checksum_valid(int range_start, int range_end, int cks_loc)
+int cmos_checksum_valid(int range_start, int range_end, int cks_loc)
{
int i;
u16 sum, old_sum;
@@ -69,7 +69,7 @@
return sum == old_sum;
}

-static void cmos_set_checksum(int range_start, int range_end, int cks_loc)
+void cmos_set_checksum(int range_start, int range_end, int cks_loc)
{
int i;
u16 sum;
@@ -149,8 +149,7 @@

if (CONFIG(USE_OPTION_TABLE)) {
/* See if there is a LB CMOS checksum error */
- checksum_invalid = !cmos_checksum_valid(LB_CKS_RANGE_START,
- LB_CKS_RANGE_END, LB_CKS_LOC);
+ checksum_invalid = !cmos_lb_cks_valid();
if (checksum_invalid)
printk(BIOS_DEBUG, "RTC: coreboot checksum invalid\n");

diff --git a/src/drivers/pc80/rtc/mc146818rtc_boot.c b/src/drivers/pc80/rtc/mc146818rtc_boot.c
index 2998c73..e599aff 100644
--- a/src/drivers/pc80/rtc/mc146818rtc_boot.c
+++ b/src/drivers/pc80/rtc/mc146818rtc_boot.c
@@ -19,27 +19,14 @@
#if CONFIG(USE_OPTION_TABLE)
#include <option_table.h>

-int cmos_chksum_valid(void)
+int cmos_lb_cks_valid(void)
{
- unsigned char addr;
- u16 sum, old_sum;
-
- sum = 0;
- /* Compute the cmos checksum */
- for (addr = LB_CKS_RANGE_START; addr <= LB_CKS_RANGE_END; addr++)
- sum += cmos_read(addr);
-
- /* Read the stored checksum */
- old_sum = cmos_read(LB_CKS_LOC) << 8;
- old_sum |= cmos_read(LB_CKS_LOC + 1);
-
- return sum == old_sum;
+ return cmos_checksum_valid(LB_CKS_RANGE_START, LB_CKS_RANGE_END, LB_CKS_LOC);
}

void sanitize_cmos(void)
{
- if (cmos_error() || !cmos_chksum_valid() ||
- CONFIG(STATIC_OPTION_TABLE)) {
+ if (cmos_error() || !cmos_lb_cks_valid() || CONFIG(STATIC_OPTION_TABLE)) {
size_t length = 128;
const unsigned char *cmos_default =
cbfs_boot_map_with_leak("cmos.default",
@@ -83,7 +70,7 @@
{
unsigned char byte;

- if (!CONFIG(USE_OPTION_TABLE) || cmos_error() || !cmos_chksum_valid()) {
+ if (!CONFIG(USE_OPTION_TABLE) || cmos_error() || !cmos_lb_cks_valid()) {
/* Invalid CMOS checksum detected!
* Force fallback boot...
*/
diff --git a/src/include/pc80/mc146818rtc.h b/src/include/pc80/mc146818rtc.h
index 5fd0729..91413d1 100644
--- a/src/include/pc80/mc146818rtc.h
+++ b/src/include/pc80/mc146818rtc.h
@@ -176,7 +176,10 @@
void cmos_init(bool invalid);
void cmos_check_update_date(void);
int cmos_error(void);
-int cmos_chksum_valid(void);
+int cmos_lb_cks_valid(void);
+
+int cmos_checksum_valid(int range_start, int range_end, int cks_loc);
+void cmos_set_checksum(int range_start, int range_end, int cks_loc);

enum cb_err set_option(const char *name, void *val);
enum cb_err get_option(void *dest, const char *name);

To view, visit change 38194. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I5a4b86921876c24cd1d310b674119b960c3d2fd6
Gerrit-Change-Number: 38194
Gerrit-PatchSet: 9
Gerrit-Owner: Kyösti Mälkki <kyosti.malkki@gmail.com>
Gerrit-Reviewer: Angel Pons <th3fanbus@gmail.com>
Gerrit-Reviewer: Kyösti Mälkki <kyosti.malkki@gmail.com>
Gerrit-Reviewer: Martin Roth <martinroth@google.com>
Gerrit-Reviewer: Patrick Georgi <pgeorgi@google.com>
Gerrit-Reviewer: Paul Menzel <paulepanter@users.sourceforge.net>
Gerrit-Reviewer: build bot (Jenkins) <no-reply@coreboot.org>
Gerrit-MessageType: merged