diff --git a/sys/x86/isa/atrtc.c b/sys/x86/isa/atrtc.c --- a/sys/x86/isa/atrtc.c +++ b/sys/x86/isa/atrtc.c @@ -62,6 +62,11 @@ #include #endif +/* tunable to detect a power loss of the rtc */ +static bool atrtc_power_lost = false; +SYSCTL_BOOL(_machdep, OID_AUTO, atrtc_power_lost, CTLFLAG_RD, &atrtc_power_lost, + false, "RTC lost power on last power cycle (probably caused by an emtpy cmos battery)"); + /* * atrtc_lock protects low-level access to individual hardware registers. * atrtc_time_lock protects the entire sequence of accessing multiple registers @@ -600,6 +605,7 @@ /* Look if we have a RTC present and the time is valid */ if (!(rtcin(RTC_STATUSD) & RTCSD_PWR)) { + atrtc_power_lost = true; device_printf(dev, "WARNING: Battery failure indication\n"); return (EINVAL); }