diff options
author | 2016-07-23 15:02:08 +0000 | |
---|---|---|
committer | 2016-07-23 15:02:08 +0000 | |
commit | 68e4a94b8166bcd1f4fc4737c2ccd85914817170 (patch) | |
tree | 47039f544736af8676545152d8ce9ccfd2554ee0 | |
parent | do the pool debug release dance. ok deraadt (diff) | |
download | wireguard-openbsd-68e4a94b8166bcd1f4fc4737c2ccd85914817170.tar.xz wireguard-openbsd-68e4a94b8166bcd1f4fc4737c2ccd85914817170.zip |
Previously the uarts attached in order, so that the first attached uart
is always the serial console. With device tree enumeration, this order
is not given anymore. The serial console might now attach with a
different minor and has to be updated, otherwise there will be no
further output on the serial. Thus, re-create the i.MX6 console with
the correct minor number on attach.
ok jsg@, kettenis@
-rw-r--r-- | sys/arch/armv7/imx/imxuart.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/sys/arch/armv7/imx/imxuart.c b/sys/arch/armv7/imx/imxuart.c index be43d474b44..e9b89d8a33a 100644 --- a/sys/arch/armv7/imx/imxuart.c +++ b/sys/arch/armv7/imx/imxuart.c @@ -1,4 +1,4 @@ -/* $OpenBSD: imxuart.c,v 1.7 2016/07/10 11:46:28 kettenis Exp $ */ +/* $OpenBSD: imxuart.c,v 1.8 2016/07/23 15:02:08 patrick Exp $ */ /* * Copyright (c) 2005 Dale Rahn <drahn@motorola.com> * @@ -162,6 +162,7 @@ imxuart_attach(struct device *parent, struct device *self, void *aux) { struct imxuart_softc *sc = (struct imxuart_softc *) self; struct fdt_attach_args *faa = aux; + int maj; if (faa->fa_nreg < 2 || faa->fa_nintr < 3) return; @@ -176,8 +177,15 @@ imxuart_attach(struct device *parent, struct device *self, void *aux) faa->fa_reg[1], 0, &sc->sc_ioh)) panic("imxuartattach: bus_space_map failed!"); - if (faa->fa_reg[0] == imxuartconsaddr) + if (faa->fa_reg[0] == imxuartconsaddr) { + /* Locate the major number. */ + for (maj = 0; maj < nchrdev; maj++) + if (cdevsw[maj].d_open == imxuartopen) + break; + cn_tab->cn_dev = makedev(maj, sc->sc_dev.dv_unit); + printf(": console"); + } timeout_set(&sc->sc_diag_tmo, imxuart_diag, sc); timeout_set(&sc->sc_dtr_tmo, imxuart_raisedtr, sc); |