Download raw body.
exuart(4): Recognize a BREAK
Diff below makes the Apple variant of exuart(4) recognize a BREAK and
enter DDB if the ddb.console sysctl is set.
The Central Scrutinizer sends a BREAK to the machine when you type: ^_ ^@
ok?
Index: dev/fdt/exuart.c
===================================================================
RCS file: /cvs/src/sys/dev/fdt/exuart.c,v
diff -u -p -r1.12 exuart.c
--- dev/fdt/exuart.c 23 Jul 2023 11:16:36 -0000 1.12
+++ dev/fdt/exuart.c 2 Jul 2025 22:17:13 -0000
@@ -209,6 +209,7 @@ exuart_attach(struct device *parent, str
cn_tab->cn_dev = makedev(maj, sc->sc_dev.dv_unit);
printf(": console");
+ SET(sc->sc_hwflags, COM_HW_CONSOLE);
}
printf("\n");
@@ -385,12 +386,22 @@ exuart_s5l_intr(void *arg)
struct exuart_softc *sc = arg;
bus_space_tag_t iot = sc->sc_iot;
bus_space_handle_t ioh = sc->sc_ioh;
- u_int32_t utrstat;
+ u_int32_t utrstat, uerstat;
utrstat = bus_space_read_4(iot, ioh, EXUART_UTRSTAT);
+ uerstat = bus_space_read_4(iot, ioh, EXUART_UERSTAT);
if (sc->sc_tty == NULL)
return (0);
+
+#ifdef DDB
+ if (uerstat & EXUART_UERSTAT_BREAK) {
+ if (ISSET(sc->sc_hwflags, COM_HW_CONSOLE)) {
+ if (db_console)
+ db_enter();
+ }
+ }
+#endif
if (utrstat & (EXUART_S5L_UTRSTAT_RXTHRESH |
EXUART_S5L_UTRSTAT_RX_TIMEOUT))
exuart(4): Recognize a BREAK