#include <console/console.h> #include <fallback.h> #include <watchdog.h> #include <arch/io.h> #if CONFIG_PC80_SYSTEM #include <pc80/mc146818rtc.h> static void set_boot_successful(void) { /* Remember I succesfully booted by setting * the initial boot direction * to the direction that I booted. */ unsigned char index, byte; index = inb(RTC_PORT(0)) & 0x80; index |= RTC_BOOT_BYTE; outb(index, RTC_PORT(0)); byte = inb(RTC_PORT(1)); byte &= 0xfe; byte |= (byte & (1 << 1)) >> 1; /* If we are in normal mode set the boot count to 0 */ if(byte & 1) byte &= 0x0f; outb(byte, RTC_PORT(1)); } #else static void set_boot_successful(void) { /* To be implemented */ } #endif void boot_successful(void) { #if CONFIG_FRAMEBUFFER_SET_VESA_MODE && !CONFIG_FRAMEBUFFER_KEEP_VESA_MODE void vbe_textmode_console(void); vbe_textmode_console(); #endif /* Remember this was a successful boot */ set_boot_successful(); /* turn off the boot watchdog */ watchdog_off(); }