diff --git a/share/man/man4/ufshci.4 b/share/man/man4/ufshci.4 index 969cb4f72..4b1cf54c4 100644 --- a/share/man/man4/ufshci.4 +++ b/share/man/man4/ufshci.4 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ufshci.4,v 1.2 2024/04/09 14:58:41 mglocker Exp $ +.\" $OpenBSD: ufshci.4,v 1.3 2024/07/31 10:07:33 mglocker Exp $ .\" .\" Copyright (c) 2023 Marcus Glocker .\" @@ -15,7 +15,7 @@ .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" .\" -.Dd $Mdocdate: April 9 2024 $ +.Dd $Mdocdate: July 31 2024 $ .Dt UFSHCI 4 .Os .Sh NAME @@ -23,6 +23,7 @@ .Nd Universal Flash Storage Host Controller Interface .Sh SYNOPSIS .Cd "ufshci* at acpi?" +.Cd "ufshci* at fdt?" .Cd "ufshci* at pci?" .Sh DESCRIPTION The diff --git a/sys/arch/arm64/conf/GENERIC b/sys/arch/arm64/conf/GENERIC index a8991ba1b..40d8c9aaa 100644 --- a/sys/arch/arm64/conf/GENERIC +++ b/sys/arch/arm64/conf/GENERIC @@ -1,4 +1,4 @@ -# $OpenBSD: GENERIC,v 1.287 2024/07/30 19:47:05 mglocker Exp $ +# $OpenBSD: GENERIC,v 1.288 2024/07/31 10:07:33 mglocker Exp $ # # GENERIC machine description file # @@ -99,6 +99,7 @@ smmu* at fdt? xhci* at fdt? ccp* at fdt? # AMD Cryptographic Co-processor ipmi* at fdt? +ufshci* at fdt? # NS16550 compatible serial ports com* at fdt? diff --git a/sys/arch/arm64/conf/RAMDISK b/sys/arch/arm64/conf/RAMDISK index 4b12bce79..b6308431a 100644 --- a/sys/arch/arm64/conf/RAMDISK +++ b/sys/arch/arm64/conf/RAMDISK @@ -1,4 +1,4 @@ -# $OpenBSD: RAMDISK,v 1.217 2024/07/30 19:47:05 mglocker Exp $ +# $OpenBSD: RAMDISK,v 1.218 2024/07/31 10:07:33 mglocker Exp $ machine arm64 maxusers 4 @@ -86,6 +86,7 @@ bwfm* at sdmmc? # Broadcom FullMAC smmu* at fdt? xhci* at fdt? ccp* at fdt? # AMD Cryptographic Co-processor +ufshci* at fdt? # NS16550 compatible serial ports com* at fdt? diff --git a/sys/dev/fdt/files.fdt b/sys/dev/fdt/files.fdt index 0a94d54a7..815683395 100644 --- a/sys/dev/fdt/files.fdt +++ b/sys/dev/fdt/files.fdt @@ -1,4 +1,4 @@ -# $OpenBSD: files.fdt,v 1.202 2024/03/27 15:15:00 patrick Exp $ +# $OpenBSD: files.fdt,v 1.203 2024/07/31 10:07:33 mglocker Exp $ # # Config file and device description for machine-independent FDT code. # Included by ports that need it. @@ -229,6 +229,9 @@ file dev/fdt/sdhc_fdt.c sdhc_fdt attach xhci at fdt with xhci_fdt file dev/fdt/xhci_fdt.c xhci_fdt +attach ufshci at fdt with ufshci_fdt +file dev/fdt/ufshci_fdt.c ufshci_fdt + device syscon: fdt attach syscon at fdt file dev/fdt/syscon.c syscon diff --git a/sys/dev/fdt/ufshci_fdt.c b/sys/dev/fdt/ufshci_fdt.c new file mode 100644 index 000000000..92ea5ca4c --- /dev/null +++ b/sys/dev/fdt/ufshci_fdt.c @@ -0,0 +1,90 @@ +/* $OpenBSD: ufshci_fdt.c,v 1.1 2024/07/31 10:07:33 mglocker Exp $ */ +/* + * Copyright (c) 2024 Marcus Glocker + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include + +#include + +#include +#include +#include +#include + +#include +#include + +#include + +int ufshci_fdt_match(struct device *, void *, void *); +void ufshci_fdt_attach(struct device *, struct device *, void *); + +const struct cfattach ufshci_fdt_ca = { + sizeof(struct ufshci_softc), + ufshci_fdt_match, + ufshci_fdt_attach +}; + +int +ufshci_fdt_match(struct device *parent, void *match, void *aux) +{ + struct fdt_attach_args *faa = aux; + + return OF_is_compatible(faa->fa_node, "jedec,ufs-2.0"); +} + +void +ufshci_fdt_attach(struct device *parent, struct device *self, void *aux) +{ + struct ufshci_softc *sc = (struct ufshci_softc *)self; + struct fdt_attach_args *faa = aux; + void *ih; + + if (faa->fa_nreg < 1) + return; + + sc->sc_iot = faa->fa_iot; + sc->sc_ios = faa->fa_reg[0].size; + sc->sc_dmat = faa->fa_dmat; + + if (bus_space_map(sc->sc_iot, faa->fa_reg[0].addr, + faa->fa_reg[0].size, 0, &sc->sc_ioh)) { + printf(": can't map registers\n"); + return; + } + + ih = fdt_intr_establish(faa->fa_node, IPL_BIO, + ufshci_intr, sc, sc->sc_dev.dv_xname); + if (ih == NULL) { + printf(": can't establish interrupt\n"); + goto unmap; + } + + clock_set_assigned(faa->fa_node); + clock_enable_all(faa->fa_node); + phy_enable(faa->fa_node, "ufsphy"); + + if (ufshci_attach(sc) != 0) + goto irq; + + return; + +irq: + fdt_intr_disestablish(ih); +unmap: + bus_space_unmap(sc->sc_iot, sc->sc_ioh, sc->sc_ios); +} diff --git a/usr.bin/bc/bc.1 b/usr.bin/bc/bc.1 index 128b98d2b..260ca5da0 100644 --- a/usr.bin/bc/bc.1 +++ b/usr.bin/bc/bc.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: bc.1,v 1.35 2021/03/08 02:47:27 jsg Exp $ +.\" $OpenBSD: bc.1,v 1.36 2024/07/31 05:36:13 jmc Exp $ .\" .\" Copyright (C) Caldera International Inc. 2001-2002. .\" All rights reserved. @@ -34,7 +34,7 @@ .\" .\" @(#)bc.1 6.8 (Berkeley) 8/8/91 .\" -.Dd $Mdocdate: March 8 2021 $ +.Dd $Mdocdate: July 31 2024 $ .Dt BC 1 .Os .Sh NAME @@ -365,7 +365,7 @@ option is specified on the command line. .\" 4.4BSD USD:6 .%A L. L. Cherry .%A R. H. Morris -.%T BC \(em An Arbitrary Precision Desk-Calculator Language +.%T "BC \(em An Arbitrary Precision Desk-Calculator Language" .Re .Sh STANDARDS The diff --git a/usr.bin/cal/cal.1 b/usr.bin/cal/cal.1 index f3ac720df..1e0e4fbb6 100644 --- a/usr.bin/cal/cal.1 +++ b/usr.bin/cal/cal.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: cal.1,v 1.32 2022/03/31 17:27:24 naddy Exp $ +.\" $OpenBSD: cal.1,v 1.33 2024/07/31 17:09:23 jmc Exp $ .\" $NetBSD: cal.1,v 1.6 1995/09/02 05:34:20 jtc Exp $ .\" .\" Copyright (c) 1989, 1990, 1993 @@ -33,7 +33,7 @@ .\" .\" @(#)cal.1 8.2 (Berkeley) 4/28/95 .\" -.Dd $Mdocdate: March 31 2022 $ +.Dd $Mdocdate: July 31 2024 $ .Dt CAL 1 .Os .Sh NAME @@ -112,7 +112,7 @@ The .Nm utility is compliant with the X/Open System Interfaces option of the -.St -p1003.1-2008 +.St -p1003.1-2024 specification. .Pp The flags diff --git a/usr.bin/ssh/sshd-session.c b/usr.bin/ssh/sshd-session.c index 4e7841cd5..fcb690f13 100644 --- a/usr.bin/ssh/sshd-session.c +++ b/usr.bin/ssh/sshd-session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshd-session.c,v 1.5 2024/07/08 03:04:34 djm Exp $ */ +/* $OpenBSD: sshd-session.c,v 1.6 2024/07/31 12:00:18 dlg Exp $ */ /* * SSH2 implementation: * Privilege Separation: @@ -812,6 +812,7 @@ main(int ac, char **av) struct connection_info *connection_info = NULL; sigset_t sigmask; uint64_t timing_secret = 0; + struct itimerval itv; sigemptyset(&sigmask); sigprocmask(SIG_SETMASK, &sigmask, NULL); @@ -1175,8 +1176,17 @@ main(int ac, char **av) * are about to discover the bug. */ ssh_signal(SIGALRM, grace_alarm_handler); - if (!debug_flag) - alarm(options.login_grace_time); + if (!debug_flag && options.login_grace_time > 0) { + int ujitter = arc4random_uniform(4 * 1000000); + + timerclear(&itv.it_interval); + itv.it_value.tv_sec = options.login_grace_time; + itv.it_value.tv_sec += ujitter / 1000000; + itv.it_value.tv_usec = ujitter % 1000000; + + if (setitimer(ITIMER_REAL, &itv, NULL) == -1) + fatal("login grace time setitimer failed"); + } if ((r = kex_exchange_identification(ssh, -1, options.version_addendum)) != 0) @@ -1220,7 +1230,10 @@ main(int ac, char **av) * Cancel the alarm we set to limit the time taken for * authentication. */ - alarm(0); + timerclear(&itv.it_interval); + timerclear(&itv.it_value); + if (setitimer(ITIMER_REAL, &itv, NULL) == -1) + fatal("login grace time clear failed"); ssh_signal(SIGALRM, SIG_DFL); authctxt->authenticated = 1; if (startup_pipe != -1) {