From 2c018fba95a5f40c4eaaa20421e8c893dffdb62e Mon Sep 17 00:00:00 2001 From: Eric Biederman Date: Mon, 21 Jul 2003 20:13:45 +0000 Subject: - First pass at s2880 support. - SMP cleanups (remove SMP only use CONFIG_SMP) - Minor tweaks to romcc to keep it from taking forever compiling - failover fixes - Get a good implementation of k8_cpufixup and sizeram for the opteron git-svn-id: svn://svn.coreboot.org/coreboot/trunk@998 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1 --- src/pc80/mc146818rtc_early.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/pc80') diff --git a/src/pc80/mc146818rtc_early.c b/src/pc80/mc146818rtc_early.c index 30369455fe..35f3f5910f 100644 --- a/src/pc80/mc146818rtc_early.c +++ b/src/pc80/mc146818rtc_early.c @@ -4,7 +4,7 @@ #ifndef MAX_REBOOT_CNT #error "MAX_REBOOT_CNT not defined" #endif -#if MAX_REBOOT_CNT > 14 +#if MAX_REBOOT_CNT > 15 #error "MAX_REBOOT_CNT too high" #endif @@ -78,6 +78,12 @@ static int do_normal_boot(void) byte &= 0x0f; /* yes, clear the boot count */ } + /* Properly set the last boot flag */ + byte &= 0xfc; + if ((byte >> 4) < MAX_REBOOT_CNT) { + byte |= (1<<1); + } + /* Are we already at the max count? */ if ((byte >> 4) < MAX_REBOOT_CNT) { byte += 1 << 4; /* No, add 1 to the count */ @@ -86,13 +92,8 @@ static int do_normal_boot(void) byte &= 0xfc; /* Yes, put in fallback mode */ } - /* Is this the first boot? */ - if ((byte >> 4) <= 1) { - byte = (byte & 0xfc) | ((byte & 1) << 1); /* yes, shift the boot bits */ - } - /* Save the boot byte */ cmos_write(byte, RTC_BOOT_BYTE); - return ((byte >> 4) < MAX_REBOOT_CNT); + return (byte & (1<<1)); } -- cgit v1.2.3