Module Name: src Committed By: rin Date: Mon May 3 10:28:26 UTC 2021
Modified Files: src/sys/dev/acpi: genet_acpi.c src/sys/dev/fdt: genet_fdt.c src/sys/dev/ic: bcmgenet.c bcmgenetvar.h Log Message: genet(4): Add support for rnd(9). To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/dev/acpi/genet_acpi.c cvs rdiff -u -r1.5 -r1.6 src/sys/dev/fdt/genet_fdt.c cvs rdiff -u -r1.8 -r1.9 src/sys/dev/ic/bcmgenet.c cvs rdiff -u -r1.3 -r1.4 src/sys/dev/ic/bcmgenetvar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/acpi/genet_acpi.c diff -u src/sys/dev/acpi/genet_acpi.c:1.4 src/sys/dev/acpi/genet_acpi.c:1.5 --- src/sys/dev/acpi/genet_acpi.c:1.4 Fri Jan 29 15:49:55 2021 +++ src/sys/dev/acpi/genet_acpi.c Mon May 3 10:28:26 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: genet_acpi.c,v 1.4 2021/01/29 15:49:55 thorpej Exp $ */ +/* $NetBSD: genet_acpi.c,v 1.5 2021/05/03 10:28:26 rin Exp $ */ /*- * Copyright (c) 2020 Jared McNeill <jmcne...@invisible.ca> @@ -29,13 +29,15 @@ #include "opt_net_mpsafe.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: genet_acpi.c,v 1.4 2021/01/29 15:49:55 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: genet_acpi.c,v 1.5 2021/05/03 10:28:26 rin Exp $"); #include <sys/param.h> #include <sys/bus.h> #include <sys/cpu.h> #include <sys/device.h> +#include <sys/rndsource.h> + #include <net/if.h> #include <net/if_dl.h> #include <net/if_ether.h> Index: src/sys/dev/fdt/genet_fdt.c diff -u src/sys/dev/fdt/genet_fdt.c:1.5 src/sys/dev/fdt/genet_fdt.c:1.6 --- src/sys/dev/fdt/genet_fdt.c:1.5 Mon Mar 8 13:15:06 2021 +++ src/sys/dev/fdt/genet_fdt.c Mon May 3 10:28:26 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: genet_fdt.c,v 1.5 2021/03/08 13:15:06 mlelstv Exp $ */ +/* $NetBSD: genet_fdt.c,v 1.6 2021/05/03 10:28:26 rin Exp $ */ /*- * Copyright (c) 2020 Jared McNeill <jmcne...@invisible.ca> @@ -29,7 +29,7 @@ #include "opt_net_mpsafe.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: genet_fdt.c,v 1.5 2021/03/08 13:15:06 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: genet_fdt.c,v 1.6 2021/05/03 10:28:26 rin Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -38,6 +38,8 @@ __KERNEL_RCSID(0, "$NetBSD: genet_fdt.c, #include <sys/systm.h> #include <sys/kernel.h> +#include <sys/rndsource.h> + #include <net/if.h> #include <net/if_dl.h> #include <net/if_ether.h> Index: src/sys/dev/ic/bcmgenet.c diff -u src/sys/dev/ic/bcmgenet.c:1.8 src/sys/dev/ic/bcmgenet.c:1.9 --- src/sys/dev/ic/bcmgenet.c:1.8 Mon Mar 8 13:14:44 2021 +++ src/sys/dev/ic/bcmgenet.c Mon May 3 10:28:26 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: bcmgenet.c,v 1.8 2021/03/08 13:14:44 mlelstv Exp $ */ +/* $NetBSD: bcmgenet.c,v 1.9 2021/05/03 10:28:26 rin Exp $ */ /*- * Copyright (c) 2020 Jared McNeill <jmcne...@invisible.ca> @@ -34,7 +34,7 @@ #include "opt_ddb.h" #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: bcmgenet.c,v 1.8 2021/03/08 13:14:44 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcmgenet.c,v 1.9 2021/05/03 10:28:26 rin Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -46,6 +46,8 @@ __KERNEL_RCSID(0, "$NetBSD: bcmgenet.c,v #include <sys/callout.h> #include <sys/cprng.h> +#include <sys/rndsource.h> + #include <net/if.h> #include <net/if_dl.h> #include <net/if_ether.h> @@ -681,6 +683,7 @@ genet_rxintr(struct genet_softc *sc, int int error, index, len, n; struct mbuf *m, *m0; uint32_t status, pidx, total; + int pkts = 0; pidx = RD4(sc, GENET_RX_DMA_PROD_INDEX(qid)) & 0xffff; total = (pidx - sc->sc_rx.cidx) & 0xffff; @@ -749,6 +752,7 @@ genet_rxintr(struct genet_softc *sc, int m_adj(m, ETHER_ALIGN); if_percpuq_enqueue(ifp->if_percpuq, m); + ++pkts; next: index = RX_NEXT(index); @@ -756,6 +760,9 @@ next: sc->sc_rx.cidx = (sc->sc_rx.cidx + 1) & 0xffff; WR4(sc, GENET_RX_DMA_CONS_INDEX(qid), sc->sc_rx.cidx); } + + if (pkts != 0) + rnd_add_uint32(&sc->sc_rndsource, pkts); } static void @@ -785,6 +792,9 @@ genet_txintr(struct genet_softc *sc, int } if_statadd(ifp, if_opackets, pkts); + + if (pkts != 0) + rnd_add_uint32(&sc->sc_rndsource, pkts); } static void @@ -1100,6 +1110,9 @@ genet_attach(struct genet_softc *sc) /* Attach ethernet interface */ ether_ifattach(ifp, eaddr); + rnd_attach_source(&sc->sc_rndsource, ifp->if_xname, RND_TYPE_NET, + RND_FLAG_DEFAULT); + return 0; } Index: src/sys/dev/ic/bcmgenetvar.h diff -u src/sys/dev/ic/bcmgenetvar.h:1.3 src/sys/dev/ic/bcmgenetvar.h:1.4 --- src/sys/dev/ic/bcmgenetvar.h:1.3 Mon Mar 8 13:14:44 2021 +++ src/sys/dev/ic/bcmgenetvar.h Mon May 3 10:28:26 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: bcmgenetvar.h,v 1.3 2021/03/08 13:14:44 mlelstv Exp $ */ +/* $NetBSD: bcmgenetvar.h,v 1.4 2021/05/03 10:28:26 rin Exp $ */ /*- * Copyright (c) 2020 Jared McNeill <jmcne...@invisible.ca> @@ -70,6 +70,8 @@ struct genet_softc { struct genet_ring sc_tx; struct genet_ring sc_rx; + + krndsource_t sc_rndsource; }; int genet_attach(struct genet_softc *);