git: c592a3b0ae98 - stable/13 - atrtc: expose power loss as sysctl
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 09 Feb 2023 07:04:23 UTC
The branch stable/13 has been updated by corvink:
URL: https://cgit.FreeBSD.org/src/commit/?id=c592a3b0ae98ca90c09f300afde6d705b84ff0d7
commit c592a3b0ae98ca90c09f300afde6d705b84ff0d7
Author: Corvin Köhne <corvink@FreeBSD.org>
AuthorDate: 2022-12-08 07:28:42 +0000
Commit: Corvin Köhne <corvink@FreeBSD.org>
CommitDate: 2023-02-09 07:03:59 +0000
atrtc: expose power loss as sysctl
Exposing the a power loss of the rtc as an sysctl makes it easier to
detect an empty cmos battery.
Reviewed by: manu
MFC after: 1 week
Sponsored by: Beckhoff Automation GmbH & Co. KG
Differential Revision: https://reviews.freebsd.org/D38325
(cherry picked from commit 55f1ca209d37d7b5a6faf57b23c7341cb7f84ee6)
---
sys/x86/isa/atrtc.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/sys/x86/isa/atrtc.c b/sys/x86/isa/atrtc.c
index aff838c53851..167e7cfbf8fd 100644
--- a/sys/x86/isa/atrtc.c
+++ b/sys/x86/isa/atrtc.c
@@ -62,6 +62,11 @@ __FBSDID("$FreeBSD$");
#include <machine/md_var.h>
#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
@@ -597,6 +602,7 @@ atrtc_gettime(device_t dev, struct timespec *ts)
/* 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);
}