CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: mlelstv Date: Mon Jun 10 06:03:49 UTC 2024 Modified Files: src/sys/arch/arm/broadcom: bcm2835_pmwdog.c Log Message: Add support for poweroff. There is no circuitry to actually remove power from RPI, but you can reboot into a low power state. Depending on model/firmware release you need a power cycle or a GPIO signal to leave the low power state again. Add-on hardware is usually unaffected. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/broadcom/bcm2835_pmwdog.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: mlelstv Date: Mon Jun 10 06:03:49 UTC 2024 Modified Files: src/sys/arch/arm/broadcom: bcm2835_pmwdog.c Log Message: Add support for poweroff. There is no circuitry to actually remove power from RPI, but you can reboot into a low power state. Depending on model/firmware release you need a power cycle or a GPIO signal to leave the low power state again. Add-on hardware is usually unaffected. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/broadcom/bcm2835_pmwdog.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_pmwdog.c diff -u src/sys/arch/arm/broadcom/bcm2835_pmwdog.c:1.2 src/sys/arch/arm/broadcom/bcm2835_pmwdog.c:1.3 --- src/sys/arch/arm/broadcom/bcm2835_pmwdog.c:1.2 Wed Jan 27 03:10:19 2021 +++ src/sys/arch/arm/broadcom/bcm2835_pmwdog.c Mon Jun 10 06:03:48 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_pmwdog.c,v 1.2 2021/01/27 03:10:19 thorpej Exp $ */ +/* $NetBSD: bcm2835_pmwdog.c,v 1.3 2024/06/10 06:03:48 mlelstv Exp $ */ /*- * Copyright (c) 2012, 2016 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_pmwdog.c,v 1.2 2021/01/27 03:10:19 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_pmwdog.c,v 1.3 2024/06/10 06:03:48 mlelstv Exp $"); #include @@ -54,12 +54,19 @@ __KERNEL_RCSID(0, "$NetBSD: bcm2835_pmwd #endif #define BCM2835_PM_PASSWORD 0x5a00 +#define BCM2835_PM_PASSWORD_MASK 0xff00 #define BCM2835_PM_RSTC 0x1c #define BCM2835_PM_RSTC_CONFIGMASK 0x0030 #define BCM2835_PM_RSTC_FULL_RESET 0x0020 #define BCM2835_PM_RSTC_RESET 0x0102 +#define BCM2835_PM_RSTS 0x20 +#define BCM2835_PM_RSTS_PART(x) \ + ((uint16_t)((x) & 0x01) << 0 | (uint16_t)((x) & 0x02) << 1 | \ + (uint16_t)((x) & 0x04) << 2 | (uint16_t)((x) & 0x08) << 3 | \ + (uint16_t)((x) & 0x10) << 4 | (uint16_t)((x) & 0x20) << 5) + #define BCM2835_PM_WDOG 0x24 #define BCM2835_PM_WDOG_TIMEMASK 0x000f @@ -82,6 +89,10 @@ static void bcmpmwdog_set_timeout(struct static int bcmpmwdog_setmode(struct sysmon_wdog *); static int bcmpmwdog_tickle(struct sysmon_wdog *); +/* fdt power controller */ +static void bcm2835_power_reset(device_t); +static void bcm2835_power_poweroff(device_t); + CFATTACH_DECL_NEW(bcmpmwdog_fdt, sizeof(struct bcm2835pmwdog_softc), bcmpmwdog_match, bcmpmwdog_attach, NULL, NULL); @@ -90,6 +101,11 @@ static const struct device_compatible_en DEVICE_COMPAT_EOL }; +static struct fdtbus_power_controller_func bcmpmwdog_power_funcs = { + .reset = bcm2835_power_reset, + .poweroff = bcm2835_power_poweroff +}; + /* ARGSUSED */ static int bcmpmwdog_match(device_t parent, cfdata_t match, void *aux) @@ -136,6 +152,9 @@ bcmpmwdog_attach(device_t parent, device sc->sc_smw.smw_period = BCM2835_PM_DEFAULT_PERIOD; if (sysmon_wdog_register(>sc_smw) != 0) aprint_error_dev(self, "couldn't register watchdog\n"); + + fdtbus_register_power_controller(self, phandle, + _power_funcs); } static void @@ -176,6 +195,17 @@ bcmpmwdog_setmode(struct sysmon_wdog *sm return error; } +static void +bcmpmwdog_set_partition(struct bcm2835pmwdog_softc *sc, uint8_t part) +{ + uint32_t tmp; + + tmp = bus_space_read_4(sc->sc_iot, sc->sc_ioh, BCM2835_PM_RSTS); + tmp &= ~(BCM2835_PM_PASSWORD_MASK | BCM2835_PM_RSTS_PART(~0)); + tmp |= BCM2835_PM_PASSWORD | BCM2835_PM_RSTS_PART(part); + bus_space_write_4(sc->sc_iot, sc->sc_ioh, BCM2835_PM_RSTS, tmp); +} + static int bcmpmwdog_tickle(struct sysmon_wdog *smw) { @@ -187,11 +217,43 @@ bcmpmwdog_tickle(struct sysmon_wdog *smw return 0; } +static void +bcm2835_restart(struct bcm2835pmwdog_softc *sc, int partition) +{ + uint32_t timeout = 10; + + bcmpmwdog_set_partition(sc, partition); + bcmpmwdog_set_timeout(sc, timeout); +} + void bcm2835_system_reset(void) { struct bcm2835pmwdog_softc *sc = bcm2835pmwdog_sc; - uint32_t timeout = 10; - bcmpmwdog_set_timeout(sc, timeout); + bcm2835_restart(sc, 0); +} + +static void +bcm2835_power_reset(device_t self) +{ + struct bcm2835pmwdog_softc *sc = device_private(self); + + bcm2835_restart(sc, 0); + + for (;;) continue; + /* NOTREACHED */ } + +static void +bcm2835_power_poweroff(device_t self) +{ + struct bcm2835pmwdog_softc *sc = device_private(self); + + /* Boot from partition 63 is magic to halt boot process */ + bcm2835_restart(sc, 63); + + for (;;) continue; + /* NOTREACHED */ +} +
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Fri Feb 16 15:40:09 UTC 2024 Modified Files: src/sys/arch/arm/broadcom: bcm53xx_eth.c Log Message: Test sc->sc_soft_ih (not sc->sc_ih) to see if the soft interrupt got established correctly. >From Mori Hiroki. Fix some error recovery while I'm here. To generate a diff of this commit: cvs rdiff -u -r1.43 -r1.44 src/sys/arch/arm/broadcom/bcm53xx_eth.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm53xx_eth.c diff -u src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.43 src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.44 --- src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.43 Fri Feb 16 12:08:29 2024 +++ src/sys/arch/arm/broadcom/bcm53xx_eth.c Fri Feb 16 15:40:09 2024 @@ -35,7 +35,7 @@ #include -__KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.c,v 1.43 2024/02/16 12:08:29 skrll Exp $"); +__KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.c,v 1.44 2024/02/16 15:40:09 skrll Exp $"); #include #include @@ -344,16 +344,15 @@ bcmeth_ccb_attach(device_t parent, devic (PRI_USER + MAXPRI_USER) / 2, IPL_NET, WQ_MPSAFE|WQ_PERCPU); if (error) { aprint_error(": failed to create workqueue: %d\n", error); - goto fail_2; + goto fail_1; } sc->sc_soft_ih = softint_establish(SOFTINT_MPSAFE | SOFTINT_NET, bcmeth_soft_intr, sc); - if (sc->sc_ih == NULL) { - aprint_error_dev(self, "failed to establish interrupt %d\n", - loc->loc_intrs[0]); - goto fail_3; + if (sc->sc_soft_ih == NULL) { + aprint_error_dev(self, "failed to establish soft interrupt\n"); + goto fail_2; } sc->sc_ih = intr_establish(loc->loc_intrs[0], IPL_VM, IST_LEVEL, @@ -362,7 +361,7 @@ bcmeth_ccb_attach(device_t parent, devic if (sc->sc_ih == NULL) { aprint_error_dev(self, "failed to establish interrupt %d\n", loc->loc_intrs[0]); - goto fail_4; + goto fail_3; } else { aprint_normal_dev(self, "interrupting on irq %d\n", loc->loc_intrs[0]); @@ -426,8 +425,6 @@ bcmeth_ccb_attach(device_t parent, devic return; -fail_4: - intr_disestablish(sc->sc_ih); fail_3: softint_disestablish(sc->sc_soft_ih); fail_2:
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Fri Feb 16 15:40:09 UTC 2024 Modified Files: src/sys/arch/arm/broadcom: bcm53xx_eth.c Log Message: Test sc->sc_soft_ih (not sc->sc_ih) to see if the soft interrupt got established correctly. >From Mori Hiroki. Fix some error recovery while I'm here. To generate a diff of this commit: cvs rdiff -u -r1.43 -r1.44 src/sys/arch/arm/broadcom/bcm53xx_eth.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Fri Feb 16 15:11:38 UTC 2024 Modified Files: src/sys/arch/arm/broadcom: bcm2835_bsc.c bcm2835_vcaudio.c bcm2838_pcie.c Log Message: Trailing whitespace To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/arch/arm/broadcom/bcm2835_bsc.c cvs rdiff -u -r1.19 -r1.20 src/sys/arch/arm/broadcom/bcm2835_vcaudio.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/broadcom/bcm2838_pcie.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Fri Feb 16 15:11:38 UTC 2024 Modified Files: src/sys/arch/arm/broadcom: bcm2835_bsc.c bcm2835_vcaudio.c bcm2838_pcie.c Log Message: Trailing whitespace To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/arch/arm/broadcom/bcm2835_bsc.c cvs rdiff -u -r1.19 -r1.20 src/sys/arch/arm/broadcom/bcm2835_vcaudio.c cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/broadcom/bcm2838_pcie.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_bsc.c diff -u src/sys/arch/arm/broadcom/bcm2835_bsc.c:1.15 src/sys/arch/arm/broadcom/bcm2835_bsc.c:1.16 --- src/sys/arch/arm/broadcom/bcm2835_bsc.c:1.15 Tue Mar 31 12:23:17 2020 +++ src/sys/arch/arm/broadcom/bcm2835_bsc.c Fri Feb 16 15:11:38 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_bsc.c,v 1.15 2020/03/31 12:23:17 jmcneill Exp $ */ +/* $NetBSD: bcm2835_bsc.c,v 1.16 2024/02/16 15:11:38 skrll Exp $ */ /* * Copyright (c) 2019 Jason R. Thorpe @@ -28,7 +28,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_bsc.c,v 1.15 2020/03/31 12:23:17 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_bsc.c,v 1.16 2024/02/16 15:11:38 skrll Exp $"); #include #include @@ -203,7 +203,7 @@ bsciic_next_state(struct bsciic_softc * case BSC_EXEC_STATE_SEND_DATA: case BSC_EXEC_STATE_RECV_DATA: return BSC_EXEC_STATE_DONE; - + case BSC_EXEC_STATE_DONE: case BSC_EXEC_STATE_ERROR: return sc->sc_exec_state; Index: src/sys/arch/arm/broadcom/bcm2835_vcaudio.c diff -u src/sys/arch/arm/broadcom/bcm2835_vcaudio.c:1.19 src/sys/arch/arm/broadcom/bcm2835_vcaudio.c:1.20 --- src/sys/arch/arm/broadcom/bcm2835_vcaudio.c:1.19 Sun Apr 30 14:20:23 2023 +++ src/sys/arch/arm/broadcom/bcm2835_vcaudio.c Fri Feb 16 15:11:38 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_vcaudio.c,v 1.19 2023/04/30 14:20:23 mlelstv Exp $ */ +/* $NetBSD: bcm2835_vcaudio.c,v 1.20 2024/02/16 15:11:38 skrll Exp $ */ /*- * Copyright (c) 2013 Jared D. McNeill @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_vcaudio.c,v 1.19 2023/04/30 14:20:23 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_vcaudio.c,v 1.20 2024/02/16 15:11:38 skrll Exp $"); #include #include @@ -88,7 +88,7 @@ enum vcaudio_dest { * * Setting blocksize to 4 x 1600 means that we send approx 33ms of audio. We * prefill by two blocks before starting audio meaning we have 50ms of latency. - * + * * Six messages of 1600 bytes was chosen working back from a desired latency of * 50ms. */ Index: src/sys/arch/arm/broadcom/bcm2838_pcie.c diff -u src/sys/arch/arm/broadcom/bcm2838_pcie.c:1.6 src/sys/arch/arm/broadcom/bcm2838_pcie.c:1.7 --- src/sys/arch/arm/broadcom/bcm2838_pcie.c:1.6 Sat Oct 15 11:07:38 2022 +++ src/sys/arch/arm/broadcom/bcm2838_pcie.c Fri Feb 16 15:11:38 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2838_pcie.c,v 1.6 2022/10/15 11:07:38 jmcneill Exp $ */ +/* $NetBSD: bcm2838_pcie.c,v 1.7 2024/02/16 15:11:38 skrll Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2838_pcie.c,v 1.6 2022/10/15 11:07:38 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2838_pcie.c,v 1.7 2024/02/16 15:11:38 skrll Exp $"); #include #include @@ -417,7 +417,7 @@ bcmstb_setwin(struct bcmstb_softc *sc, i STBRMW(sc, PCIE_MISC_CPU_2_PCIE_MEM_WIN0_BASE_HI(win), PCIE_MISC_CPU_2_PCIE_MEM_WIN0_BASE_HI_BASE, __SHIFTIN(base, PCIE_MISC_CPU_2_PCIE_MEM_WIN0_BASE_HI_BASE)); - + STBRMW(sc, PCIE_MISC_CPU_2_PCIE_MEM_WIN0_LIMIT_HI(win), PCIE_MISC_CPU_2_PCIE_MEM_WIN0_LIMIT_HI_LIMIT, __SHIFTIN(base, PCIE_MISC_CPU_2_PCIE_MEM_WIN0_LIMIT_HI_LIMIT));
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Fri Feb 16 15:11:17 UTC 2024 Modified Files: src/sys/arch/arm/broadcom: bcm53xx_board.c bcm53xx_cca.c bcm53xx_idm.c bcm53xx_pax.c bcm53xx_reg.h Log Message: Trailing whitespace To generate a diff of this commit: cvs rdiff -u -r1.25 -r1.26 src/sys/arch/arm/broadcom/bcm53xx_board.c cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/broadcom/bcm53xx_cca.c cvs rdiff -u -r1.3 -r1.4 src/sys/arch/arm/broadcom/bcm53xx_idm.c cvs rdiff -u -r1.23 -r1.24 src/sys/arch/arm/broadcom/bcm53xx_pax.c cvs rdiff -u -r1.19 -r1.20 src/sys/arch/arm/broadcom/bcm53xx_reg.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/arch/arm/broadcom/bcm53xx_board.c diff -u src/sys/arch/arm/broadcom/bcm53xx_board.c:1.25 src/sys/arch/arm/broadcom/bcm53xx_board.c:1.26 --- src/sys/arch/arm/broadcom/bcm53xx_board.c:1.25 Tue Jul 31 06:46:25 2018 +++ src/sys/arch/arm/broadcom/bcm53xx_board.c Fri Feb 16 15:11:17 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm53xx_board.c,v 1.25 2018/07/31 06:46:25 skrll Exp $ */ +/* $NetBSD: bcm53xx_board.c,v 1.26 2024/02/16 15:11:17 skrll Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. * All rights reserved. @@ -36,7 +36,7 @@ #include -__KERNEL_RCSID(1, "$NetBSD: bcm53xx_board.c,v 1.25 2018/07/31 06:46:25 skrll Exp $"); +__KERNEL_RCSID(1, "$NetBSD: bcm53xx_board.c,v 1.26 2024/02/16 15:11:17 skrll Exp $"); #include #include @@ -328,7 +328,7 @@ bcm53xx_usb_clock_init(struct bcm53xx_cl const uint32_t ndiv = bcm53xx_value_wrap(usb2_control, USB2_CONTROL_NDIV_INT); - uint32_t usb_ref = (clk->clk_usb2 / pdiv) * ndiv; + uint32_t usb_ref = (clk->clk_usb2 / pdiv) * ndiv; if (usb_ref != USB2_REF_CLK) { /* * USB Reference Clock isn't 1.92GHz. So we need to modify @@ -350,7 +350,7 @@ bcm53xx_usb_clock_init(struct bcm53xx_cl bus_space_write_4(bcm53xx_ioreg_bst, bcm53xx_ioreg_bsh, CRU_BASE + CRU_CLKSET_KEY, 0); - usb_ref = (clk->clk_usb2 / pdiv) * new_ndiv; + usb_ref = (clk->clk_usb2 / pdiv) * new_ndiv; } clk->clk_usb_ref = usb_ref; @@ -367,7 +367,7 @@ bcm53xx_clock_init(struct bcm53xx_clock_ /* * F(ddr) = ((1 / pdiv) * ndiv * CH2) / (post_div * 2) */ -static void +static void bcm53xx_get_ddr_freq(struct bcm53xx_clock_info *clk, uint32_t pll_status, uint32_t pll_dividers) { @@ -402,7 +402,7 @@ bcm53xx_get_cpu_freq(struct bcm53xx_cloc clk->clk_apb = clk->clk_cpu / 4; return; } - + const u_int pdiv = bcm53xx_value_wrap(pllarma, CLK_PLLARMA_PDIV); const u_int ndiv_int = bcm53xx_value_wrap(pllarma, CLK_PLLARMA_NDIV_INT); const u_int ndiv_frac = __SHIFTOUT(pllarmb, CLK_PLLARMB_NDIV_FRAC); @@ -605,13 +605,13 @@ bcm53xx_device_register(device_t self, v * XXX KLUDGE ALERT XXX * The iot mainbus supplies is completely wrong since it scales * addresses by 2. The simplest remedy is to replace with our - * bus space used for the armcore registers (which armperiph uses). + * bus space used for the armcore registers (which armperiph uses). */ struct mainbus_attach_args * const mb = aux; mb->mb_iot = bcm53xx_armcore_bst; return; } - + /* * We need to tell the A9 Global/Watchdog Timer * what frequency it runs at. @@ -649,8 +649,8 @@ bcm53xx_srab_init(void) { mutex_init(_lock, MUTEX_DEFAULT, IPL_VM); - bcm53xx_srab_write_4(0x0079, 0x90); // reset switch - for (u_int port = 0; port < 8; port++) { + bcm53xx_srab_write_4(0x0079, 0x90); // reset switch + for (u_int port = 0; port < 8; port++) { /* per port control: no stp */ bcm53xx_srab_write_4(port, 0x00); } Index: src/sys/arch/arm/broadcom/bcm53xx_cca.c diff -u src/sys/arch/arm/broadcom/bcm53xx_cca.c:1.5 src/sys/arch/arm/broadcom/bcm53xx_cca.c:1.6 --- src/sys/arch/arm/broadcom/bcm53xx_cca.c:1.5 Thu Mar 3 06:26:28 2022 +++ src/sys/arch/arm/broadcom/bcm53xx_cca.c Fri Feb 16 15:11:17 2024 @@ -43,7 +43,7 @@ #include -__KERNEL_RCSID(1, "$NetBSD: bcm53xx_cca.c,v 1.5 2022/03/03 06:26:28 riastradh Exp $"); +__KERNEL_RCSID(1, "$NetBSD: bcm53xx_cca.c,v 1.6 2024/02/16 15:11:17 skrll Exp $"); #include #include @@ -143,7 +143,7 @@ bcmcca_intr(void *arg) } } if (v & INTSTATUS_GPIOINT) { - + } return rv; } Index: src/sys/arch/arm/broadcom/bcm53xx_idm.c diff -u src/sys/arch/arm/broadcom/bcm53xx_idm.c:1.3 src/sys/arch/arm/broadcom/bcm53xx_idm.c:1.4 --- src/sys/arch/arm/broadcom/bcm53xx_idm.c:1.3 Wed Dec 12 00:01:28 2012 +++ src/sys/arch/arm/broadcom/bcm53xx_idm.c Fri Feb 16 15:11:17 2024 @@ -35,7 +35,7 @@ #include -__KERNEL_RCSID(1, "$NetBSD: bcm53xx_idm.c,v 1.3 2012/12/12 00:01:28 matt Exp $"); +__KERNEL_RCSID(1, "$NetBSD: bcm53xx_idm.c,v 1.4 2024/02/16 15:11:17 skrll Exp $"); #include #include @@ -59,7 +59,7 @@ struct idm_info { static bool bcmeth_unreset(bus_space_tag_t bst, bus_space_handle_t bsh, const struct idm_info *idm) -{ +{ /* * To
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Fri Feb 16 15:11:17 UTC 2024 Modified Files: src/sys/arch/arm/broadcom: bcm53xx_board.c bcm53xx_cca.c bcm53xx_idm.c bcm53xx_pax.c bcm53xx_reg.h Log Message: Trailing whitespace To generate a diff of this commit: cvs rdiff -u -r1.25 -r1.26 src/sys/arch/arm/broadcom/bcm53xx_board.c cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/broadcom/bcm53xx_cca.c cvs rdiff -u -r1.3 -r1.4 src/sys/arch/arm/broadcom/bcm53xx_idm.c cvs rdiff -u -r1.23 -r1.24 src/sys/arch/arm/broadcom/bcm53xx_pax.c cvs rdiff -u -r1.19 -r1.20 src/sys/arch/arm/broadcom/bcm53xx_reg.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Fri Feb 16 12:08:29 UTC 2024 Modified Files: src/sys/arch/arm/broadcom: bcm53xx_eth.c bcm53xx_pax.c Log Message: Fix non-DIAGNOSTIC build To generate a diff of this commit: cvs rdiff -u -r1.42 -r1.43 src/sys/arch/arm/broadcom/bcm53xx_eth.c cvs rdiff -u -r1.22 -r1.23 src/sys/arch/arm/broadcom/bcm53xx_pax.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Fri Feb 16 12:08:29 UTC 2024 Modified Files: src/sys/arch/arm/broadcom: bcm53xx_eth.c bcm53xx_pax.c Log Message: Fix non-DIAGNOSTIC build To generate a diff of this commit: cvs rdiff -u -r1.42 -r1.43 src/sys/arch/arm/broadcom/bcm53xx_eth.c cvs rdiff -u -r1.22 -r1.23 src/sys/arch/arm/broadcom/bcm53xx_pax.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm53xx_eth.c diff -u src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.42 src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.43 --- src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.42 Sat Sep 17 19:41:18 2022 +++ src/sys/arch/arm/broadcom/bcm53xx_eth.c Fri Feb 16 12:08:29 2024 @@ -35,7 +35,7 @@ #include -__KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.c,v 1.42 2022/09/17 19:41:18 thorpej Exp $"); +__KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.c,v 1.43 2024/02/16 12:08:29 skrll Exp $"); #include #include @@ -252,9 +252,7 @@ bcmeth_ccb_match(device_t parent, cfdata if (strcmp(cf->cf_name, loc->loc_name)) return 0; -#ifdef DIAGNOSTIC - const int port = cf->cf_loc[BCMCCBCF_PORT]; -#endif + const int port __diagused = cf->cf_loc[BCMCCBCF_PORT]; KASSERT(port == BCMCCBCF_PORT_DEFAULT || port == loc->loc_port); return 1; Index: src/sys/arch/arm/broadcom/bcm53xx_pax.c diff -u src/sys/arch/arm/broadcom/bcm53xx_pax.c:1.22 src/sys/arch/arm/broadcom/bcm53xx_pax.c:1.23 --- src/sys/arch/arm/broadcom/bcm53xx_pax.c:1.22 Sat Aug 7 16:18:43 2021 +++ src/sys/arch/arm/broadcom/bcm53xx_pax.c Fri Feb 16 12:08:29 2024 @@ -34,7 +34,7 @@ #include -__KERNEL_RCSID(1, "$NetBSD: bcm53xx_pax.c,v 1.22 2021/08/07 16:18:43 thorpej Exp $"); +__KERNEL_RCSID(1, "$NetBSD: bcm53xx_pax.c,v 1.23 2024/02/16 12:08:29 skrll Exp $"); #include #include @@ -136,9 +136,7 @@ bcmpax_ccb_match(device_t parent, cfdata if (strcmp(cf->cf_name, loc->loc_name)) return 0; -#ifdef DIAGNOSTIC - const int port = cf->cf_loc[BCMCCBCF_PORT]; -#endif + const int port __diagused = cf->cf_loc[BCMCCBCF_PORT]; KASSERT(port == BCMCCBCF_PORT_DEFAULT || port == loc->loc_port); return 1;
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: mlelstv Date: Mon Dec 11 12:53:08 UTC 2023 Modified Files: src/sys/arch/arm/broadcom: bcm2835_com.c Log Message: Report UART clock. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/broadcom/bcm2835_com.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_com.c diff -u src/sys/arch/arm/broadcom/bcm2835_com.c:1.8 src/sys/arch/arm/broadcom/bcm2835_com.c:1.9 --- src/sys/arch/arm/broadcom/bcm2835_com.c:1.8 Fri Jan 29 14:11:14 2021 +++ src/sys/arch/arm/broadcom/bcm2835_com.c Mon Dec 11 12:53:08 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_com.c,v 1.8 2021/01/29 14:11:14 skrll Exp $ */ +/* $NetBSD: bcm2835_com.c,v 1.9 2023/12/11 12:53:08 mlelstv Exp $ */ /*- * Copyright (c) 2017 Jared McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_com.c,v 1.8 2021/01/29 14:11:14 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_com.c,v 1.9 2023/12/11 12:53:08 mlelstv Exp $"); #include #include @@ -123,7 +123,8 @@ bcm_com_attach(device_t parent, device_t intrstr); return; } - aprint_normal_dev(self, "interrupting on %s\n", intrstr); + aprint_normal_dev(self, "interrupting on %s, clock %u Hz\n", + intrstr, sc->sc_frequency); } static int
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: mlelstv Date: Mon Dec 11 12:53:08 UTC 2023 Modified Files: src/sys/arch/arm/broadcom: bcm2835_com.c Log Message: Report UART clock. To generate a diff of this commit: cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/broadcom/bcm2835_com.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: tnn Date: Sun Sep 3 11:36:52 UTC 2023 Modified Files: src/sys/arch/arm/broadcom: bcm2835_spi.c Log Message: bcm2835_spi: guard against too large clock divider and clamp if necessary To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/arch/arm/broadcom/bcm2835_spi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_spi.c diff -u src/sys/arch/arm/broadcom/bcm2835_spi.c:1.12 src/sys/arch/arm/broadcom/bcm2835_spi.c:1.13 --- src/sys/arch/arm/broadcom/bcm2835_spi.c:1.12 Sat May 7 07:26:27 2022 +++ src/sys/arch/arm/broadcom/bcm2835_spi.c Sun Sep 3 11:36:52 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_spi.c,v 1.12 2022/05/07 07:26:27 skrll Exp $ */ +/* $NetBSD: bcm2835_spi.c,v 1.13 2023/09/03 11:36:52 tnn Exp $ */ /* * Copyright (c) 2012 Jonathan A. Kollasch @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_spi.c,v 1.12 2022/05/07 07:26:27 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_spi.c,v 1.13 2023/09/03 11:36:52 tnn Exp $"); #include #include @@ -182,6 +182,8 @@ bcmspi_configure(void *cookie, int slave clk = 2 * 25000 / speed; /* XXX 250MHz */ clk = (clk / 2) + (clk & 1); clk = roundup(clk, 2); + if (clk >= 0xfffe) + clk = 0xfffe; clk = __SHIFTIN(clk, SPI_CLK_CDIV); bus_space_write_4(sc->sc_iot, sc->sc_ioh, SPI_CLK, clk);
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: tnn Date: Sun Sep 3 11:36:52 UTC 2023 Modified Files: src/sys/arch/arm/broadcom: bcm2835_spi.c Log Message: bcm2835_spi: guard against too large clock divider and clamp if necessary To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/sys/arch/arm/broadcom/bcm2835_spi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: mlelstv Date: Sun Apr 30 14:20:23 UTC 2023 Modified Files: src/sys/arch/arm/broadcom: bcm2835_vcaudio.c Log Message: codec translates to 16bit slinear_le, not the internal format. To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/sys/arch/arm/broadcom/bcm2835_vcaudio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_vcaudio.c diff -u src/sys/arch/arm/broadcom/bcm2835_vcaudio.c:1.18 src/sys/arch/arm/broadcom/bcm2835_vcaudio.c:1.19 --- src/sys/arch/arm/broadcom/bcm2835_vcaudio.c:1.18 Sat Apr 24 23:36:26 2021 +++ src/sys/arch/arm/broadcom/bcm2835_vcaudio.c Sun Apr 30 14:20:23 2023 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_vcaudio.c,v 1.18 2021/04/24 23:36:26 thorpej Exp $ */ +/* $NetBSD: bcm2835_vcaudio.c,v 1.19 2023/04/30 14:20:23 mlelstv Exp $ */ /*- * Copyright (c) 2013 Jared D. McNeill @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_vcaudio.c,v 1.18 2021/04/24 23:36:26 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_vcaudio.c,v 1.19 2023/04/30 14:20:23 mlelstv Exp $"); #include #include @@ -840,7 +840,7 @@ vcaudio_swvol_codec(audio_filter_arg_t * { struct vcaudio_softc *sc = arg->context; const aint_t *src; - aint_t *dst; + int16_t *dst; u_int sample_count; u_int i;
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: mlelstv Date: Sun Apr 30 14:20:23 UTC 2023 Modified Files: src/sys/arch/arm/broadcom: bcm2835_vcaudio.c Log Message: codec translates to 16bit slinear_le, not the internal format. To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/sys/arch/arm/broadcom/bcm2835_vcaudio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: yamt Date: Sat Nov 19 09:29:26 UTC 2022 Modified Files: src/sys/arch/arm/broadcom: bcm2835_intr.c Log Message: bcm2835_intr.c: fix !MULTIPROCESSOR Tested on Raspberry PI 3 model A+. To generate a diff of this commit: cvs rdiff -u -r1.43 -r1.44 src/sys/arch/arm/broadcom/bcm2835_intr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_intr.c diff -u src/sys/arch/arm/broadcom/bcm2835_intr.c:1.43 src/sys/arch/arm/broadcom/bcm2835_intr.c:1.44 --- src/sys/arch/arm/broadcom/bcm2835_intr.c:1.43 Sat Jun 25 12:41:55 2022 +++ src/sys/arch/arm/broadcom/bcm2835_intr.c Sat Nov 19 09:29:26 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_intr.c,v 1.43 2022/06/25 12:41:55 jmcneill Exp $ */ +/* $NetBSD: bcm2835_intr.c,v 1.44 2022/11/19 09:29:26 yamt Exp $ */ /*- * Copyright (c) 2012, 2015, 2019 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_intr.c,v 1.43 2022/06/25 12:41:55 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_intr.c,v 1.44 2022/11/19 09:29:26 yamt Exp $"); #define _INTR_PRIVATE @@ -99,7 +99,12 @@ static int bcm2835_icu_match(device_t, static void bcm2835_icu_attach(device_t, device_t, void *); static int bcm2835_int_base; -static int bcm2836mp_int_base[BCM2836_NCPUS]; +#if defined(MULTIPROCESSOR) +#define _BCM2836_NCPUS BCM2836_NCPUS +#else +#define _BCM2836_NCPUS 1 +#endif +static int bcm2836mp_int_base[_BCM2836_NCPUS]; #define BCM2835_INT_BASE bcm2835_int_base #define BCM2836_INT_BASECPUN(n) bcm2836mp_int_base[(n)] @@ -180,8 +185,8 @@ static struct pic_ops bcm2836mp_picops = #endif }; -static struct pic_softc bcm2836mp_pic[BCM2836_NCPUS] = { - [0 ... BCM2836_NCPUS - 1] = { +static struct pic_softc bcm2836mp_pic[_BCM2836_NCPUS] = { + [0 ... _BCM2836_NCPUS - 1] = { .pic_ops = _picops, .pic_maxsources = BCM2836_NIRQPERCPU, .pic_name = "bcm2836 pic", @@ -208,7 +213,7 @@ struct bcm2836mp_interrupt { int bi_flags; int (*bi_func)(void *); void *bi_arg; - void *bi_ihs[BCM2836_NCPUS]; + void *bi_ihs[_BCM2836_NCPUS]; }; static TAILQ_HEAD(, bcm2836mp_interrupt) bcm2836mp_interrupts = @@ -360,7 +365,6 @@ bcm2835_icu_attach(device_t parent, devi ifuncs = _fdt_funcs; -#if defined(MULTIPROCESSOR) /* * Register all PICs here in order to avoid pic_add() from * cpu_hatch(). This is the only approved method. @@ -371,8 +375,8 @@ bcm2835_icu_attach(device_t parent, devi const cpuid_t cpuid = ci->ci_core_id; struct pic_softc * const pic = _pic[cpuid]; - KASSERT(cpuid < BCM2836_NCPUS); - + KASSERT(cpuid < _BCM2836_NCPUS); +#if defined(MULTIPROCESSOR) pic->pic_cpus = ci->ci_kcpuset; /* * Append "#n" to avoid duplication of .pic_name[] @@ -381,12 +385,13 @@ bcm2835_icu_attach(device_t parent, devi char suffix[sizeof("#0")]; snprintf(suffix, sizeof(suffix), "#%lu", cpuid); strlcat(pic->pic_name, suffix, sizeof(pic->pic_name)); - +#endif bcm2836mp_int_base[cpuid] = pic_add(pic, PIC_IRQBASE_ALLOC); +#if defined(MULTIPROCESSOR) bcm2836mp_intr_init(ci); - } #endif + } } else { if (bcml1icu_sc == NULL) arm_fdt_irq_set_handler(bcm2835_irq_handler); @@ -414,7 +419,7 @@ bcm2835_irq_handler(void *frame) const uint32_t oldipl_mask = __BIT(oldipl); int ipl_mask = 0; - KASSERT(cpuid < BCM2836_NCPUS); + KASSERT(cpuid < _BCM2836_NCPUS); ci->ci_data.cpu_nintr++; @@ -692,7 +697,7 @@ bcm2836mp_pic_unblock_irqs(struct pic_so const bus_space_handle_t ioh = bcml1icu_sc->sc_ioh; const cpuid_t cpuid = pic - _pic[0]; - KASSERT(cpuid < BCM2836_NCPUS); + KASSERT(cpuid < _BCM2836_NCPUS); KASSERT(irqbase == 0); if (irq_mask & BCM2836MP_TIMER_IRQS) { @@ -739,7 +744,7 @@ bcm2836mp_pic_block_irqs(struct pic_soft const bus_space_handle_t ioh = bcml1icu_sc->sc_ioh; const cpuid_t cpuid = pic - _pic[0]; - KASSERT(cpuid < BCM2836_NCPUS); + KASSERT(cpuid < _BCM2836_NCPUS); KASSERT(irqbase == 0); if (irq_mask & BCM2836MP_TIMER_IRQS) { @@ -777,7 +782,7 @@ bcm2836mp_pic_find_pending_irqs(struct p uint32_t lpending; int ipl = 0; - KASSERT(cpuid < BCM2836_NCPUS); + KASSERT(cpuid < _BCM2836_NCPUS); KASSERT(pic == _pic[cpuid]); bcm2835_barrier(); @@ -816,7 +821,7 @@ static void bcm2836mp_cpu_init(struct pi { const cpuid_t cpuid = ci->ci_core_id; - KASSERT(cpuid < BCM2836_NCPUS); + KASSERT(cpuid < _BCM2836_NCPUS); /* Enable IRQ and not FIQ */ bus_space_write_4(bcml1icu_sc->sc_iot, bcml1icu_sc->sc_ioh, @@ -831,7 +836,7 @@ bcm2836mp_send_ipi(struct pic_softc *pic KASSERT(pic->pic_cpus != NULL); const cpuid_t cpuid = pic - _pic[0]; - KASSERT(cpuid < BCM2836_NCPUS); + KASSERT(cpuid < _BCM2836_NCPUS); bus_space_write_4(bcml1icu_sc->sc_iot, bcml1icu_sc->sc_ioh, BCM2836_LOCAL_MAILBOX0_SETN(cpuid), __BIT(ipi)); @@ -844,7 +849,7 @@
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: yamt Date: Sat Nov 19 09:29:26 UTC 2022 Modified Files: src/sys/arch/arm/broadcom: bcm2835_intr.c Log Message: bcm2835_intr.c: fix !MULTIPROCESSOR Tested on Raspberry PI 3 model A+. To generate a diff of this commit: cvs rdiff -u -r1.43 -r1.44 src/sys/arch/arm/broadcom/bcm2835_intr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: thorpej Date: Sat Sep 17 19:41:19 UTC 2022 Modified Files: src/sys/arch/arm/broadcom: bcm53xx_eth.c Log Message: Eliminate use of IFF_OACTIVE. To generate a diff of this commit: cvs rdiff -u -r1.41 -r1.42 src/sys/arch/arm/broadcom/bcm53xx_eth.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm53xx_eth.c diff -u src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.41 src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.42 --- src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.41 Wed Jun 16 00:21:17 2021 +++ src/sys/arch/arm/broadcom/bcm53xx_eth.c Sat Sep 17 19:41:18 2022 @@ -35,7 +35,7 @@ #include -__KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.c,v 1.41 2021/06/16 00:21:17 riastradh Exp $"); +__KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.c,v 1.42 2022/09/17 19:41:18 thorpej Exp $"); #include #include @@ -1900,9 +1900,6 @@ bcmeth_soft_txintr(struct bcmeth_softc * if (!bcmeth_txq_consume(sc, >sc_txq) || !bcmeth_txq_enqueue(sc, >sc_txq)) { BCMETH_EVCNT_INCR(sc->sc_ev_tx_stall); - sc->sc_if.if_flags |= IFF_OACTIVE; - } else { - sc->sc_if.if_flags &= ~IFF_OACTIVE; } if (sc->sc_if.if_flags & IFF_RUNNING) { mutex_spin_enter(sc->sc_hwlock); @@ -1936,9 +1933,6 @@ bcmeth_soft_intr(void *arg) if (!bcmeth_txq_consume(sc, >sc_txq) || !bcmeth_txq_enqueue(sc, >sc_txq)) { BCMETH_EVCNT_INCR(sc->sc_ev_tx_stall); - ifp->if_flags |= IFF_OACTIVE; - } else { - ifp->if_flags &= ~IFF_OACTIVE; } intmask |= XMTINT_0; }
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: thorpej Date: Sat Sep 17 19:41:19 UTC 2022 Modified Files: src/sys/arch/arm/broadcom: bcm53xx_eth.c Log Message: Eliminate use of IFF_OACTIVE. To generate a diff of this commit: cvs rdiff -u -r1.41 -r1.42 src/sys/arch/arm/broadcom/bcm53xx_eth.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Sat May 7 07:26:27 UTC 2022 Modified Files: src/sys/arch/arm/broadcom: bcm2835_spi.c Log Message: Remove unnecessary gotos and label. Same code before and after. To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/broadcom/bcm2835_spi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Sat May 7 07:26:27 UTC 2022 Modified Files: src/sys/arch/arm/broadcom: bcm2835_spi.c Log Message: Remove unnecessary gotos and label. Same code before and after. To generate a diff of this commit: cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/broadcom/bcm2835_spi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_spi.c diff -u src/sys/arch/arm/broadcom/bcm2835_spi.c:1.11 src/sys/arch/arm/broadcom/bcm2835_spi.c:1.12 --- src/sys/arch/arm/broadcom/bcm2835_spi.c:1.11 Sat Aug 7 16:18:43 2021 +++ src/sys/arch/arm/broadcom/bcm2835_spi.c Sat May 7 07:26:27 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_spi.c,v 1.11 2021/08/07 16:18:43 thorpej Exp $ */ +/* $NetBSD: bcm2835_spi.c,v 1.12 2022/05/07 07:26:27 skrll Exp $ */ /* * Copyright (c) 2012 Jonathan A. Kollasch @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_spi.c,v 1.11 2021/08/07 16:18:43 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_spi.c,v 1.12 2022/05/07 07:26:27 skrll Exp $"); #include #include @@ -298,7 +298,6 @@ bcmspi_intr(void *cookie) if (ISSET(cs, SPI_CS_DONE)) { if (sc->sc_wchunk != NULL) { bcmspi_send(sc); - goto end; } else { bus_space_write_4(sc->sc_iot, sc->sc_ioh, SPI_CS, sc->sc_CS); @@ -309,14 +308,12 @@ bcmspi_intr(void *cookie) KASSERT(st != NULL); spi_done(st, 0); sc->sc_running = false; - goto end; } } else if (ISSET(cs, SPI_CS_RXR)) { bcmspi_recv(sc); bcmspi_send(sc); } -end: mutex_exit(>sc_mutex); return ISSET(cs, SPI_CS_DONE|SPI_CS_RXR); }
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Fri Apr 22 12:41:06 UTC 2022 Modified Files: src/sys/arch/arm/broadcom: files.bcm2835 Log Message: Remove stale comment To generate a diff of this commit: cvs rdiff -u -r1.42 -r1.43 src/sys/arch/arm/broadcom/files.bcm2835 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/files.bcm2835 diff -u src/sys/arch/arm/broadcom/files.bcm2835:1.42 src/sys/arch/arm/broadcom/files.bcm2835:1.43 --- src/sys/arch/arm/broadcom/files.bcm2835:1.42 Sun Aug 8 18:43:21 2021 +++ src/sys/arch/arm/broadcom/files.bcm2835 Fri Apr 22 12:41:06 2022 @@ -1,4 +1,4 @@ -# $NetBSD: files.bcm2835,v 1.42 2021/08/08 18:43:21 jmcneill Exp $ +# $NetBSD: files.bcm2835,v 1.43 2022/04/22 12:41:06 skrll Exp $ # # Configuration info for Broadcom BCM2835 ARM Peripherals # @@ -9,7 +9,7 @@ file arch/arm/broadcom/bcm283x_platform. define bcmmboxbus { } -# Interrupt Controller (BCM2835_ARMICU_BASE) #, pic_splfuncs +# Interrupt Controller (BCM2835_ARMICU_BASE) device bcmicu: pic, pic_splfuncs attach bcmicu at fdt with bcmicu file arch/arm/broadcom/bcm2835_intr.c bcmicu
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Fri Apr 22 12:41:06 UTC 2022 Modified Files: src/sys/arch/arm/broadcom: files.bcm2835 Log Message: Remove stale comment To generate a diff of this commit: cvs rdiff -u -r1.42 -r1.43 src/sys/arch/arm/broadcom/files.bcm2835 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: nat Date: Sun Sep 12 03:58:52 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2835_intr.c Log Message: Fix build for uniprocessor. To generate a diff of this commit: cvs rdiff -u -r1.40 -r1.41 src/sys/arch/arm/broadcom/bcm2835_intr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: nat Date: Sun Sep 12 03:58:52 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2835_intr.c Log Message: Fix build for uniprocessor. To generate a diff of this commit: cvs rdiff -u -r1.40 -r1.41 src/sys/arch/arm/broadcom/bcm2835_intr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_intr.c diff -u src/sys/arch/arm/broadcom/bcm2835_intr.c:1.40 src/sys/arch/arm/broadcom/bcm2835_intr.c:1.41 --- src/sys/arch/arm/broadcom/bcm2835_intr.c:1.40 Wed Sep 1 22:11:35 2021 +++ src/sys/arch/arm/broadcom/bcm2835_intr.c Sun Sep 12 03:58:52 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_intr.c,v 1.40 2021/09/01 22:11:35 jmcneill Exp $ */ +/* $NetBSD: bcm2835_intr.c,v 1.41 2021/09/12 03:58:52 nat Exp $ */ /*- * Copyright (c) 2012, 2015, 2019 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_intr.c,v 1.40 2021/09/01 22:11:35 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_intr.c,v 1.41 2021/09/12 03:58:52 nat Exp $"); #define _INTR_PRIVATE @@ -892,11 +892,11 @@ bcm2836mp_ipi_handler(void *priv) static void bcm2836mp_intr_init(void *priv, struct cpu_info *ci) { +#if defined(MULTIPROCESSOR) const cpuid_t cpuid = ci->ci_core_id; KASSERT(cpuid < BCM2836_NCPUS); -#if defined(MULTIPROCESSOR) intr_establish(BCM2836_INT_MAILBOX0_CPUN(cpuid), IPL_HIGH, IST_LEVEL | IST_MPSAFE, bcm2836mp_ipi_handler, ci);
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Wed Sep 1 22:11:35 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2835_intr.c Log Message: Install IPI handler with non-NULL context. A side effect of interrupt handlers with NULL context when using armpic is that the interrupt handler is only called from interrupt context, not when lowering spl! To generate a diff of this commit: cvs rdiff -u -r1.39 -r1.40 src/sys/arch/arm/broadcom/bcm2835_intr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_intr.c diff -u src/sys/arch/arm/broadcom/bcm2835_intr.c:1.39 src/sys/arch/arm/broadcom/bcm2835_intr.c:1.40 --- src/sys/arch/arm/broadcom/bcm2835_intr.c:1.39 Wed Sep 1 03:08:08 2021 +++ src/sys/arch/arm/broadcom/bcm2835_intr.c Wed Sep 1 22:11:35 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_intr.c,v 1.39 2021/09/01 03:08:08 rin Exp $ */ +/* $NetBSD: bcm2835_intr.c,v 1.40 2021/09/01 22:11:35 jmcneill Exp $ */ /*- * Copyright (c) 2012, 2015, 2019 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_intr.c,v 1.39 2021/09/01 03:08:08 rin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_intr.c,v 1.40 2021/09/01 22:11:35 jmcneill Exp $"); #define _INTR_PRIVATE @@ -842,7 +842,7 @@ bcm2836mp_send_ipi(struct pic_softc *pic int bcm2836mp_ipi_handler(void *priv) { - const struct cpu_info *ci = curcpu(); + const struct cpu_info *ci = priv; const cpuid_t cpuid = ci->ci_core_id; uint32_t ipimask, bit; @@ -898,7 +898,7 @@ bcm2836mp_intr_init(void *priv, struct c #if defined(MULTIPROCESSOR) intr_establish(BCM2836_INT_MAILBOX0_CPUN(cpuid), IPL_HIGH, - IST_LEVEL | IST_MPSAFE, bcm2836mp_ipi_handler, NULL); + IST_LEVEL | IST_MPSAFE, bcm2836mp_ipi_handler, ci); struct bcm2836mp_interrupt *bip; TAILQ_FOREACH(bip, _interrupts, bi_next) {
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Wed Sep 1 22:11:35 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2835_intr.c Log Message: Install IPI handler with non-NULL context. A side effect of interrupt handlers with NULL context when using armpic is that the interrupt handler is only called from interrupt context, not when lowering spl! To generate a diff of this commit: cvs rdiff -u -r1.39 -r1.40 src/sys/arch/arm/broadcom/bcm2835_intr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: rin Date: Wed Sep 1 03:08:08 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2835_intr.c Log Message: PR port-arm/56264 Register all PICs when bcmicu1 is attached, in order to avoid calling pic_add() from cpu_hatch(), which blocks for aarch64 kernel on RPI3. This prevented MP kernel to boot due to KASSERT failure as described in the PR. This is a kind of a workaround; the real fix should be to (a) reorganize cpu_hatch() for aarch64 and arm: http://mail-index.netbsd.org/port-arm/2021/06/21/msg007320.html (b) or change MI abstraction of ``MP ready'': http://mail-index.netbsd.org/port-arm/2021/06/22/msg007327.html However, still, this fix does not bring about any penalty, and it is not good to leave RPI3 broken for months... Tested on RPI3 (aarch64 MP, armv7hf MP) as well as RPI1 (armv6hf UP). To generate a diff of this commit: cvs rdiff -u -r1.38 -r1.39 src/sys/arch/arm/broadcom/bcm2835_intr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_intr.c diff -u src/sys/arch/arm/broadcom/bcm2835_intr.c:1.38 src/sys/arch/arm/broadcom/bcm2835_intr.c:1.39 --- src/sys/arch/arm/broadcom/bcm2835_intr.c:1.38 Mon Mar 8 14:22:42 2021 +++ src/sys/arch/arm/broadcom/bcm2835_intr.c Wed Sep 1 03:08:08 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_intr.c,v 1.38 2021/03/08 14:22:42 mlelstv Exp $ */ +/* $NetBSD: bcm2835_intr.c,v 1.39 2021/09/01 03:08:08 rin Exp $ */ /*- * Copyright (c) 2012, 2015, 2019 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_intr.c,v 1.38 2021/03/08 14:22:42 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_intr.c,v 1.39 2021/09/01 03:08:08 rin Exp $"); #define _INTR_PRIVATE @@ -359,6 +359,34 @@ bcm2835_icu_attach(device_t parent, devi ifuncs = _fdt_funcs; + /* + * XXX + * Register all PICs here in order to avoid pic_add() from + * cpu_hatch(). See port-arm/56264. + */ + CPU_INFO_ITERATOR cii; + struct cpu_info *ci; + for (CPU_INFO_FOREACH(cii, ci)) { + const cpuid_t cpuid = ci->ci_core_id; + struct pic_softc * const pic = _pic[cpuid]; + + KASSERT(cpuid < BCM2836_NCPUS); + +#if defined(MULTIPROCESSOR) + pic->pic_cpus = ci->ci_kcpuset; + /* + * Append "#n" to avoid duplication of .pic_name[] + * It should be a unique id for intr_get_source() + */ + char suffix[sizeof("#0")]; + snprintf(suffix, sizeof(suffix), "#%lu", cpuid); + strlcat(pic->pic_name, suffix, sizeof(pic->pic_name)); +#endif + + bcm2836mp_int_base[cpuid] = + pic_add(pic, PIC_IRQBASE_ALLOC); + } + bcm2836mp_intr_init(self, curcpu()); arm_fdt_cpu_hatch_register(self, bcm2836mp_intr_init); } else { @@ -865,24 +893,10 @@ static void bcm2836mp_intr_init(void *priv, struct cpu_info *ci) { const cpuid_t cpuid = ci->ci_core_id; - struct pic_softc * const pic = _pic[cpuid]; KASSERT(cpuid < BCM2836_NCPUS); #if defined(MULTIPROCESSOR) - pic->pic_cpus = ci->ci_kcpuset; - - /* - * Append "#n" to avoid duplication of .pic_name[] - * It should be a unique id for intr_get_source() - */ - char suffix[sizeof("#0")]; - snprintf(suffix, sizeof(suffix), "#%lu", cpuid); - strlcat(pic->pic_name, suffix, sizeof(pic->pic_name)); -#endif - bcm2836mp_int_base[cpuid] = pic_add(pic, PIC_IRQBASE_ALLOC); - -#if defined(MULTIPROCESSOR) intr_establish(BCM2836_INT_MAILBOX0_CPUN(cpuid), IPL_HIGH, IST_LEVEL | IST_MPSAFE, bcm2836mp_ipi_handler, NULL);
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: rin Date: Wed Sep 1 03:08:08 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2835_intr.c Log Message: PR port-arm/56264 Register all PICs when bcmicu1 is attached, in order to avoid calling pic_add() from cpu_hatch(), which blocks for aarch64 kernel on RPI3. This prevented MP kernel to boot due to KASSERT failure as described in the PR. This is a kind of a workaround; the real fix should be to (a) reorganize cpu_hatch() for aarch64 and arm: http://mail-index.netbsd.org/port-arm/2021/06/21/msg007320.html (b) or change MI abstraction of ``MP ready'': http://mail-index.netbsd.org/port-arm/2021/06/22/msg007327.html However, still, this fix does not bring about any penalty, and it is not good to leave RPI3 broken for months... Tested on RPI3 (aarch64 MP, armv7hf MP) as well as RPI1 (armv6hf UP). To generate a diff of this commit: cvs rdiff -u -r1.38 -r1.39 src/sys/arch/arm/broadcom/bcm2835_intr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Sun Aug 8 18:55:12 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2835_com_acpi.c Log Message: Adjust register base and size To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/broadcom/bcm2835_com_acpi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_com_acpi.c diff -u src/sys/arch/arm/broadcom/bcm2835_com_acpi.c:1.1 src/sys/arch/arm/broadcom/bcm2835_com_acpi.c:1.2 --- src/sys/arch/arm/broadcom/bcm2835_com_acpi.c:1.1 Sun Aug 8 18:43:21 2021 +++ src/sys/arch/arm/broadcom/bcm2835_com_acpi.c Sun Aug 8 18:55:12 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_com_acpi.c,v 1.1 2021/08/08 18:43:21 jmcneill Exp $ */ +/* $NetBSD: bcm2835_com_acpi.c,v 1.2 2021/08/08 18:55:12 jmcneill Exp $ */ /* * Copyright (c) 2021 Jared McNeill @@ -26,7 +26,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_com_acpi.c,v 1.1 2021/08/08 18:43:21 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_com_acpi.c,v 1.2 2021/08/08 18:55:12 jmcneill Exp $"); #include #include @@ -100,8 +100,8 @@ bcmcom_acpi_attach(device_t parent, devi } iot = aa->aa_memt; - base = mem->ar_base; - size = mem->ar_length; + base = mem->ar_base + 0x40; + size = mem->ar_length - 0x40; irq = acpi_res_irq(, 0); if (irq == NULL) {
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Sun Aug 8 18:55:12 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2835_com_acpi.c Log Message: Adjust register base and size To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/broadcom/bcm2835_com_acpi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Sun Aug 8 18:43:21 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: files.bcm2835 Added Files: src/sys/arch/arm/broadcom: bcm2835_com_acpi.c Log Message: broadcom: ACPI: Add support for mini UART in ACPI mode. To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/sys/arch/arm/broadcom/bcm2835_com_acpi.c cvs rdiff -u -r1.41 -r1.42 src/sys/arch/arm/broadcom/files.bcm2835 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/files.bcm2835 diff -u src/sys/arch/arm/broadcom/files.bcm2835:1.41 src/sys/arch/arm/broadcom/files.bcm2835:1.42 --- src/sys/arch/arm/broadcom/files.bcm2835:1.41 Sun Aug 8 10:32:26 2021 +++ src/sys/arch/arm/broadcom/files.bcm2835 Sun Aug 8 18:43:21 2021 @@ -1,4 +1,4 @@ -# $NetBSD: files.bcm2835,v 1.41 2021/08/08 10:32:26 jmcneill Exp $ +# $NetBSD: files.bcm2835,v 1.42 2021/08/08 18:43:21 jmcneill Exp $ # # Configuration info for Broadcom BCM2835 ARM Peripherals # @@ -60,6 +60,11 @@ file arch/arm/broadcom/bcm2835_aux.c bc attach com at fdt with bcmcom file arch/arm/broadcom/bcm2835_com.c bcmcom +ifdef acpinodebus +attach com at acpinodebus with bcmcom_acpi +file arch/arm/broadcom/bcm2835_com_acpi.c bcmcom_acpi +endif + # External Mass Media Controller (BCM2835_EMMC_BASE) attach sdhc at fdt with bcmemmc file arch/arm/broadcom/bcm2835_emmc.c bcmemmc Added files: Index: src/sys/arch/arm/broadcom/bcm2835_com_acpi.c diff -u /dev/null src/sys/arch/arm/broadcom/bcm2835_com_acpi.c:1.1 --- /dev/null Sun Aug 8 18:43:21 2021 +++ src/sys/arch/arm/broadcom/bcm2835_com_acpi.c Sun Aug 8 18:43:21 2021 @@ -0,0 +1,168 @@ +/* $NetBSD: bcm2835_com_acpi.c,v 1.1 2021/08/08 18:43:21 jmcneill Exp $ */ + +/* + * Copyright (c) 2021 Jared McNeill + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. The name of the author may not be used to endorse or promote products + *derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__KERNEL_RCSID(0, "$NetBSD: bcm2835_com_acpi.c,v 1.1 2021/08/08 18:43:21 jmcneill Exp $"); + +#include +#include +#include +#include + +#include +#include + +#include + +#include +#include +#include + +static int bcmcom_acpi_match(device_t, cfdata_t , void *); +static void bcmcom_acpi_attach(device_t, device_t, void *); + +static u_int bcmcom_acpi_get_clockrate(device_t); + +struct vcmbox_clockrate_request { + struct vcprop_buffer_hdr vb_hdr; + struct vcprop_tag_clockrate vbt_clockrate; + struct vcprop_tag end; +} __packed; + +CFATTACH_DECL_NEW(bcmcom_acpi, sizeof(struct com_softc), bcmcom_acpi_match, +bcmcom_acpi_attach, NULL, NULL); + +static const struct device_compatible_entry compat_data[] = { + { .compat = "BCM2836", .value = COM_TYPE_BCMAUXUART }, + DEVICE_COMPAT_EOL +}; + +static int +bcmcom_acpi_match(device_t parent, cfdata_t match, void *aux) +{ + struct acpi_attach_args *aa = aux; + + return acpi_compatible_match(aa, compat_data); +} + +static void +bcmcom_acpi_attach(device_t parent, device_t self, void *aux) +{ + struct com_softc *sc = device_private(self); + struct acpi_attach_args *aa = aux; + const struct device_compatible_entry *dce; + struct acpi_resources res; + struct acpi_mem *mem; + struct acpi_irq *irq; + bus_space_tag_t iot; + bus_space_handle_t ioh; + bus_addr_t base; + bus_size_t size; + ACPI_STATUS rv; + void *ih; + + sc->sc_dev = self; + + rv = acpi_resource_parse(sc->sc_dev, aa->aa_node->ad_handle, "_CRS", + , _resource_parse_ops_default); + if (ACPI_FAILURE(rv)) { + return; + } + + mem = acpi_res_mem(, 0); + if (mem == NULL) { + aprint_error_dev(self, "couldn't find mem resource\n"); + goto cleanup; + } + + iot = aa->aa_memt; + base = mem->ar_base; + size = mem->ar_length; + + irq = acpi_res_irq(, 0); + if (irq == NULL) { + aprint_error_dev(self, "couldn't find irq resource\n"); +
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Sun Aug 8 18:43:21 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: files.bcm2835 Added Files: src/sys/arch/arm/broadcom: bcm2835_com_acpi.c Log Message: broadcom: ACPI: Add support for mini UART in ACPI mode. To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/sys/arch/arm/broadcom/bcm2835_com_acpi.c cvs rdiff -u -r1.41 -r1.42 src/sys/arch/arm/broadcom/files.bcm2835 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Sun Aug 8 10:59:27 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2838_emmc2_acpi.c Log Message: disable DMA for now... To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/broadcom/bcm2838_emmc2_acpi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2838_emmc2_acpi.c diff -u src/sys/arch/arm/broadcom/bcm2838_emmc2_acpi.c:1.1 src/sys/arch/arm/broadcom/bcm2838_emmc2_acpi.c:1.2 --- src/sys/arch/arm/broadcom/bcm2838_emmc2_acpi.c:1.1 Sun Aug 8 10:32:26 2021 +++ src/sys/arch/arm/broadcom/bcm2838_emmc2_acpi.c Sun Aug 8 10:59:27 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2838_emmc2_acpi.c,v 1.1 2021/08/08 10:32:26 jmcneill Exp $ */ +/* $NetBSD: bcm2838_emmc2_acpi.c,v 1.2 2021/08/08 10:59:27 jmcneill Exp $ */ /* * Copyright (c) 2021 Jared McNeill @@ -26,7 +26,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2838_emmc2_acpi.c,v 1.1 2021/08/08 10:32:26 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2838_emmc2_acpi.c,v 1.2 2021/08/08 10:59:27 jmcneill Exp $"); #include #include @@ -119,8 +119,10 @@ bcmemmc2_acpi_attach(device_t parent, de * disable UHS modes. */ sc->sc.sc_flags = SDHC_FLAG_32BIT_ACCESS | +#if notyet SDHC_FLAG_USE_DMA | SDHC_FLAG_USE_ADMA2 | +#endif SDHC_FLAG_NO_1_8_V; sc->sc_ih = acpi_intr_establish(self,
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Sun Aug 8 10:59:27 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2838_emmc2_acpi.c Log Message: disable DMA for now... To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/broadcom/bcm2838_emmc2_acpi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Sun Aug 8 10:32:27 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: files.bcm2835 Added Files: src/sys/arch/arm/broadcom: bcm2838_emmc2_acpi.c Log Message: bcm2838: Add ACPI support for the EMMC2 SDHCI controller. To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/sys/arch/arm/broadcom/bcm2838_emmc2_acpi.c cvs rdiff -u -r1.40 -r1.41 src/sys/arch/arm/broadcom/files.bcm2835 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/files.bcm2835 diff -u src/sys/arch/arm/broadcom/files.bcm2835:1.40 src/sys/arch/arm/broadcom/files.bcm2835:1.41 --- src/sys/arch/arm/broadcom/files.bcm2835:1.40 Wed Mar 10 11:03:48 2021 +++ src/sys/arch/arm/broadcom/files.bcm2835 Sun Aug 8 10:32:26 2021 @@ -1,4 +1,4 @@ -# $NetBSD: files.bcm2835,v 1.40 2021/03/10 11:03:48 mlelstv Exp $ +# $NetBSD: files.bcm2835,v 1.41 2021/08/08 10:32:26 jmcneill Exp $ # # Configuration info for Broadcom BCM2835 ARM Peripherals # @@ -67,6 +67,8 @@ file arch/arm/broadcom/bcm2835_emmc.c bc ifdef acpinodebus attach sdhc at acpinodebus with bcmemmc_acpi file arch/arm/broadcom/bcm2835_emmc_acpi.c bcmemmc_acpi +attach sdhc at acpinodebus with bcmemmc2_acpi +file arch/arm/broadcom/bcm2838_emmc2_acpi.c bcmemmc2_acpi endif # SD Host Controller (BCM2835_SDHOST_BASE) Added files: Index: src/sys/arch/arm/broadcom/bcm2838_emmc2_acpi.c diff -u /dev/null src/sys/arch/arm/broadcom/bcm2838_emmc2_acpi.c:1.1 --- /dev/null Sun Aug 8 10:32:27 2021 +++ src/sys/arch/arm/broadcom/bcm2838_emmc2_acpi.c Sun Aug 8 10:32:26 2021 @@ -0,0 +1,164 @@ +/* $NetBSD: bcm2838_emmc2_acpi.c,v 1.1 2021/08/08 10:32:26 jmcneill Exp $ */ + +/* + * Copyright (c) 2021 Jared McNeill + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. The name of the author may not be used to endorse or promote products + *derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +__KERNEL_RCSID(0, "$NetBSD: bcm2838_emmc2_acpi.c,v 1.1 2021/08/08 10:32:26 jmcneill Exp $"); + +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include + +#define _COMPONENT ACPI_RESOURCE_COMPONENT +ACPI_MODULE_NAME ("bcmemmc2_acpi") + +static int bcmemmc2_acpi_match(device_t, cfdata_t, void *); +static void bcmemmc2_acpi_attach(device_t, device_t, void *); +static void bcmemmc2_acpi_attach1(device_t); + +static const char * const compatible[] = { + "BRCME88C", + NULL +}; + +struct bcmemmc2_acpi_softc { + struct sdhc_softc sc; + bus_space_tag_t sc_memt; + bus_space_handle_t sc_memh; + bus_size_t sc_memsize; + void *sc_ih; + struct sdhc_host *sc_hosts[1]; +}; + +CFATTACH_DECL_NEW(bcmemmc2_acpi, sizeof(struct bcmemmc2_acpi_softc), +bcmemmc2_acpi_match, bcmemmc2_acpi_attach, NULL, NULL); + +static int +bcmemmc2_acpi_match(device_t parent, cfdata_t match, void *opaque) +{ + struct acpi_attach_args *aa = opaque; + + if (aa->aa_node->ad_type != ACPI_TYPE_DEVICE) + return 0; + + return acpi_match_hid(aa->aa_node->ad_devinfo, compatible); +} + +static void +bcmemmc2_acpi_attach(device_t parent, device_t self, void *opaque) +{ + struct bcmemmc2_acpi_softc *sc = device_private(self); + struct acpi_attach_args *aa = opaque; + struct acpi_resources res; + struct acpi_mem *mem; + struct acpi_irq *irq; + ACPI_STATUS rv; + + sc->sc.sc_dev = self; + sc->sc.sc_dmat = aa->aa_dmat; + sc->sc.sc_host = sc->sc_hosts; + sc->sc_memt = aa->aa_memt; + + rv = acpi_resource_parse(self, aa->aa_node->ad_handle, "_CRS", + , _resource_parse_ops_default); + if (ACPI_FAILURE(rv)) + return; + + mem = acpi_res_mem(, 0); + irq = acpi_res_irq(, 0); + if (mem == NULL || irq == NULL) { + aprint_error_dev(self, "incomplete resources\n"); + goto cleanup; + } + if (mem->ar_length == 0) { + aprint_error_dev(self, "zero length memory resource\n"); + goto
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Sun Aug 8 10:32:27 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: files.bcm2835 Added Files: src/sys/arch/arm/broadcom: bcm2838_emmc2_acpi.c Log Message: bcm2838: Add ACPI support for the EMMC2 SDHCI controller. To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/sys/arch/arm/broadcom/bcm2838_emmc2_acpi.c cvs rdiff -u -r1.40 -r1.41 src/sys/arch/arm/broadcom/files.bcm2835 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: tnn Date: Mon May 3 18:56:38 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2838_pcie.c Log Message: bcm2838_pcie: match brcm,bcm2711-pcie To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/broadcom/bcm2838_pcie.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: tnn Date: Mon May 3 18:56:38 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2838_pcie.c Log Message: bcm2838_pcie: match brcm,bcm2711-pcie To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/broadcom/bcm2838_pcie.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2838_pcie.c diff -u src/sys/arch/arm/broadcom/bcm2838_pcie.c:1.2 src/sys/arch/arm/broadcom/bcm2838_pcie.c:1.3 --- src/sys/arch/arm/broadcom/bcm2838_pcie.c:1.2 Sat Apr 24 23:36:26 2021 +++ src/sys/arch/arm/broadcom/bcm2838_pcie.c Mon May 3 18:56:38 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2838_pcie.c,v 1.2 2021/04/24 23:36:26 thorpej Exp $ */ +/* $NetBSD: bcm2838_pcie.c,v 1.3 2021/05/03 18:56:38 tnn Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2838_pcie.c,v 1.2 2021/04/24 23:36:26 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2838_pcie.c,v 1.3 2021/05/03 18:56:38 tnn Exp $"); #include #include @@ -156,6 +156,7 @@ stb_setbits(struct bcmstb_softc *sc, int static const struct device_compatible_entry compat_data[] = { { .compat = "brcm,pci-plat-dev" }, + { .compat = "brcm,bcm2711-pcie" }, DEVICE_COMPAT_EOL };
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: mlelstv Date: Wed Mar 10 11:03:49 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: files.bcm2835 Log Message: Add PCIe driver to build. You still need: bcm2838pcie* at fdt?# STB PCIe host controller in kernel config, and DTB entries like: pci@7d50 { compatible = "brcm,bcm2711-pcie\0brcm,pci-plat-dev"; device_type = "pci"; #address-cells = <0x03>; #size-cells = <0x02>; bus-range = <0x00 0x01>; reg = <0x00 0x7d50 0x8>; ranges = <0x200 0x00 0xf800 0x06 0x00 0x00 0x400>; #interrupt-cells = <0x01>; interrupt-map = <0x00 0x00 0x00 0x01 0x01 0x00 0x8f 0x04>; interrupt-map-mask = <0x00 0x00 0x00 0x07>; linux,pci-domain = <0x00>; phandle = <0x90>; }; and pcie0 = "/scb/pci@7d50"; in __symbols__ To generate a diff of this commit: cvs rdiff -u -r1.39 -r1.40 src/sys/arch/arm/broadcom/files.bcm2835 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/files.bcm2835 diff -u src/sys/arch/arm/broadcom/files.bcm2835:1.39 src/sys/arch/arm/broadcom/files.bcm2835:1.40 --- src/sys/arch/arm/broadcom/files.bcm2835:1.39 Tue Mar 31 12:23:17 2020 +++ src/sys/arch/arm/broadcom/files.bcm2835 Wed Mar 10 11:03:48 2021 @@ -1,4 +1,4 @@ -# $NetBSD: files.bcm2835,v 1.39 2020/03/31 12:23:17 jmcneill Exp $ +# $NetBSD: files.bcm2835,v 1.40 2021/03/10 11:03:48 mlelstv Exp $ # # Configuration info for Broadcom BCM2835 ARM Peripherals # @@ -46,6 +46,11 @@ attach bcm2838rng at fdt with bcm2838rng file arch/arm/broadcom/bcm2838_rng.c bcm2838rng file dev/ic/rng200.cbcm2838rng +# Broadcom STB PCIE host +device bcm2838pcie: pcibus +attach bcm2838pcie at fdt with bcm2838pcie_fdt +file arch/arm/broadcom/bcm2838_pcie.c bcm2838pcie + # AUX device bcmaux attach bcmaux at fdt with bcmaux_fdt
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: mlelstv Date: Wed Mar 10 11:03:49 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: files.bcm2835 Log Message: Add PCIe driver to build. You still need: bcm2838pcie* at fdt?# STB PCIe host controller in kernel config, and DTB entries like: pci@7d50 { compatible = "brcm,bcm2711-pcie\0brcm,pci-plat-dev"; device_type = "pci"; #address-cells = <0x03>; #size-cells = <0x02>; bus-range = <0x00 0x01>; reg = <0x00 0x7d50 0x8>; ranges = <0x200 0x00 0xf800 0x06 0x00 0x00 0x400>; #interrupt-cells = <0x01>; interrupt-map = <0x00 0x00 0x00 0x01 0x01 0x00 0x8f 0x04>; interrupt-map-mask = <0x00 0x00 0x00 0x07>; linux,pci-domain = <0x00>; phandle = <0x90>; }; and pcie0 = "/scb/pci@7d50"; in __symbols__ To generate a diff of this commit: cvs rdiff -u -r1.39 -r1.40 src/sys/arch/arm/broadcom/files.bcm2835 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: mlelstv Date: Mon Mar 8 14:27:46 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2835reg.h Log Message: Add comments for 2711 local peripherals To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/sys/arch/arm/broadcom/bcm2835reg.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: mlelstv Date: Mon Mar 8 14:27:46 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2835reg.h Log Message: Add comments for 2711 local peripherals To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/sys/arch/arm/broadcom/bcm2835reg.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/arch/arm/broadcom/bcm2835reg.h diff -u src/sys/arch/arm/broadcom/bcm2835reg.h:1.31 src/sys/arch/arm/broadcom/bcm2835reg.h:1.32 --- src/sys/arch/arm/broadcom/bcm2835reg.h:1.31 Mon Mar 8 14:22:42 2021 +++ src/sys/arch/arm/broadcom/bcm2835reg.h Mon Mar 8 14:27:45 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835reg.h,v 1.31 2021/03/08 14:22:42 mlelstv Exp $ */ +/* $NetBSD: bcm2835reg.h,v 1.32 2021/03/08 14:27:45 mlelstv Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -179,18 +179,18 @@ #define BCM2836_ARM_LOCAL_BASE 0x4000 #define BCM2836_ARM_LOCAL_SIZE 0x1000 /* 4KBytes */ -#define BCM2836_LOCAL_CONTROL 0x000 +#define BCM2836_LOCAL_CONTROL 0x000 /* ARM_CONTROL */ #define BCM2836_LOCAL_PRESCALER 0x008 -#define BCM2836_LOCAL_GPU_INT_ROUTING 0x00c -#define BCM2836_LOCAL_PM_ROUTING_SET 0x010 -#define BCM2836_LOCAL_PM_ROUTING_CLR 0x014 +#define BCM2836_LOCAL_GPU_INT_ROUTING 0x00c /* CORE_IRQ_CONTROL */ +#define BCM2836_LOCAL_PM_ROUTING_SET 0x010 /* PMU_CONTROL_SET */ +#define BCM2836_LOCAL_PM_ROUTING_CLR 0x014 /* PMU_CONTROL_CLR */ #define BCM2836_LOCAL_TIMER_LS 0x01c #define BCM2836_LOCAL_TIMER_MS 0x020 -#define BCM2836_LOCAL_INT_ROUTING 0x024 +#define BCM2836_LOCAL_INT_ROUTING 0x024 /* PERI_IRQ_ROUTE0 */ #define BCM2836_LOCAL_AXI_COUNT 0x02c -#define BCM2836_LOCAL_AXI_IRQ 0x030 +#define BCM2836_LOCAL_AXI_IRQ 0x030 /* AXI_QUIET_TIME */ #define BCM2836_LOCAL_TIMER_CONTROL 0x034 -#define BCM2836_LOCAL_TIMER_WRITE 0x038 +#define BCM2836_LOCAL_TIMER_WRITE 0x038 /* LOCAL_TIMER_IRQ */ #define BCM2836_LOCAL_TIMER_IRQ_CONTROL_BASE 0x40
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: mlelstv Date: Mon Mar 8 14:22:42 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2835_intr.c bcm2835reg.h Log Message: Move interrupt register definitions to driver. To generate a diff of this commit: cvs rdiff -u -r1.37 -r1.38 src/sys/arch/arm/broadcom/bcm2835_intr.c cvs rdiff -u -r1.30 -r1.31 src/sys/arch/arm/broadcom/bcm2835reg.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/arch/arm/broadcom/bcm2835_intr.c diff -u src/sys/arch/arm/broadcom/bcm2835_intr.c:1.37 src/sys/arch/arm/broadcom/bcm2835_intr.c:1.38 --- src/sys/arch/arm/broadcom/bcm2835_intr.c:1.37 Wed Jan 27 03:10:19 2021 +++ src/sys/arch/arm/broadcom/bcm2835_intr.c Mon Mar 8 14:22:42 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_intr.c,v 1.37 2021/01/27 03:10:19 thorpej Exp $ */ +/* $NetBSD: bcm2835_intr.c,v 1.38 2021/03/08 14:22:42 mlelstv Exp $ */ /*- * Copyright (c) 2012, 2015, 2019 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_intr.c,v 1.37 2021/01/27 03:10:19 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_intr.c,v 1.38 2021/03/08 14:22:42 mlelstv Exp $"); #define _INTR_PRIVATE @@ -104,6 +104,49 @@ static int bcm2836mp_int_base[BCM2836_NC #define BCM2835_INT_BASE bcm2835_int_base #define BCM2836_INT_BASECPUN(n) bcm2836mp_int_base[(n)] +#define BCM2836_INT_CNTPSIRQ_CPUN(n) (BCM2836_INT_BASECPUN(n) + BCM2836_INT_CNTPSIRQ) +#define BCM2836_INT_CNTPNSIRQ_CPUN(n) (BCM2836_INT_BASECPUN(n) + BCM2836_INT_CNTPNSIRQ) +#define BCM2836_INT_CNTVIRQ_CPUN(n) (BCM2836_INT_BASECPUN(n) + BCM2836_INT_CNTVIRQ) +#define BCM2836_INT_CNTHPIRQ_CPUN(n) (BCM2836_INT_BASECPUN(n) + BCM2836_INT_CNTHPIRQ) +#define BCM2836_INT_MAILBOX0_CPUN(n) (BCM2836_INT_BASECPUN(n) + BCM2836_INT_MAILBOX0) + +/* Periperal Interrupt sources */ +#define BCM2835_NIRQ 96 + +#define BCM2835_INT_GPU0BASE (BCM2835_INT_BASE + 0) +#define BCM2835_INT_TIMER0 (BCM2835_INT_GPU0BASE + 0) +#define BCM2835_INT_TIMER1 (BCM2835_INT_GPU0BASE + 1) +#define BCM2835_INT_TIMER2 (BCM2835_INT_GPU0BASE + 2) +#define BCM2835_INT_TIMER3 (BCM2835_INT_GPU0BASE + 3) +#define BCM2835_INT_USB (BCM2835_INT_GPU0BASE + 9) +#define BCM2835_INT_DMA0 (BCM2835_INT_GPU0BASE + 16) +#define BCM2835_INT_DMA2 (BCM2835_INT_GPU0BASE + 18) +#define BCM2835_INT_DMA3 (BCM2835_INT_GPU0BASE + 19) +#define BCM2835_INT_AUX (BCM2835_INT_GPU0BASE + 29) +#define BCM2835_INT_ARM (BCM2835_INT_GPU0BASE + 30) + +#define BCM2835_INT_GPU1BASE (BCM2835_INT_BASE + 32) +#define BCM2835_INT_GPIO0 (BCM2835_INT_GPU1BASE + 17) +#define BCM2835_INT_GPIO1 (BCM2835_INT_GPU1BASE + 18) +#define BCM2835_INT_GPIO2 (BCM2835_INT_GPU1BASE + 19) +#define BCM2835_INT_GPIO3 (BCM2835_INT_GPU1BASE + 20) +#define BCM2835_INT_BSC (BCM2835_INT_GPU1BASE + 21) +#define BCM2835_INT_SPI0 (BCM2835_INT_GPU1BASE + 22) +#define BCM2835_INT_PCM (BCM2835_INT_GPU1BASE + 23) +#define BCM2835_INT_SDHOST (BCM2835_INT_GPU1BASE + 24) +#define BCM2835_INT_UART0 (BCM2835_INT_GPU1BASE + 25) +#define BCM2835_INT_EMMC (BCM2835_INT_GPU1BASE + 30) + +#define BCM2835_INT_BASICBASE (BCM2835_INT_BASE + 64) +#define BCM2835_INT_ARMTIMER (BCM2835_INT_BASICBASE + 0) +#define BCM2835_INT_ARMMAILBOX (BCM2835_INT_BASICBASE + 1) +#define BCM2835_INT_ARMDOORBELL0 (BCM2835_INT_BASICBASE + 2) +#define BCM2835_INT_ARMDOORBELL1 (BCM2835_INT_BASICBASE + 3) +#define BCM2835_INT_GPU0HALTED (BCM2835_INT_BASICBASE + 4) +#define BCM2835_INT_GPU1HALTED (BCM2835_INT_BASICBASE + 5) +#define BCM2835_INT_ILLEGALTYPE0 (BCM2835_INT_BASICBASE + 6) +#define BCM2835_INT_ILLEGALTYPE1 (BCM2835_INT_BASICBASE + 7) + static void bcm2835_set_priority(struct pic_softc *pic, int ipl) { Index: src/sys/arch/arm/broadcom/bcm2835reg.h diff -u src/sys/arch/arm/broadcom/bcm2835reg.h:1.30 src/sys/arch/arm/broadcom/bcm2835reg.h:1.31 --- src/sys/arch/arm/broadcom/bcm2835reg.h:1.30 Sat Feb 22 00:17:54 2020 +++ src/sys/arch/arm/broadcom/bcm2835reg.h Mon Mar 8 14:22:42 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835reg.h,v 1.30 2020/02/22 00:17:54 jmcneill Exp $ */ +/* $NetBSD: bcm2835reg.h,v 1.31 2021/03/08 14:22:42 mlelstv Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -165,50 +165,6 @@ #define BCM2836_INT_TIMER 11 #define BCM2836_INT_NLOCAL 12 -#define BCM2836_INT_CNTPSIRQ_CPUN(n) (BCM2836_INT_BASECPUN(n) + BCM2836_INT_CNTPSIRQ) -#define BCM2836_INT_CNTPNSIRQ_CPUN(n) (BCM2836_INT_BASECPUN(n) + BCM2836_INT_CNTPNSIRQ) -#define BCM2836_INT_CNTVIRQ_CPUN(n) (BCM2836_INT_BASECPUN(n) + BCM2836_INT_CNTVIRQ) -#define BCM2836_INT_CNTHPIRQ_CPUN(n) (BCM2836_INT_BASECPUN(n) + BCM2836_INT_CNTHPIRQ) -#define BCM2836_INT_MAILBOX0_CPUN(n) (BCM2836_INT_BASECPUN(n) + BCM2836_INT_MAILBOX0) - -/* Periperal Interrupt sources */ -#define BCM2835_NIRQ 96 - -#define BCM2835_INT_GPU0BASE (BCM2835_INT_BASE + 0) -#define BCM2835_INT_TIMER0 (BCM2835_INT_GPU0BASE + 0)
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: mlelstv Date: Mon Mar 8 14:22:42 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2835_intr.c bcm2835reg.h Log Message: Move interrupt register definitions to driver. To generate a diff of this commit: cvs rdiff -u -r1.37 -r1.38 src/sys/arch/arm/broadcom/bcm2835_intr.c cvs rdiff -u -r1.30 -r1.31 src/sys/arch/arm/broadcom/bcm2835reg.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: mlelstv Date: Mon Mar 8 13:59:29 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2835_gpioreg.h Log Message: Undocumented register to multiplex emmc2 pins to legacy sdhc To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/broadcom/bcm2835_gpioreg.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/arch/arm/broadcom/bcm2835_gpioreg.h diff -u src/sys/arch/arm/broadcom/bcm2835_gpioreg.h:1.5 src/sys/arch/arm/broadcom/bcm2835_gpioreg.h:1.6 --- src/sys/arch/arm/broadcom/bcm2835_gpioreg.h:1.5 Sat Sep 28 07:24:52 2019 +++ src/sys/arch/arm/broadcom/bcm2835_gpioreg.h Mon Mar 8 13:59:29 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_gpioreg.h,v 1.5 2019/09/28 07:24:52 mlelstv Exp $ */ +/* $NetBSD: bcm2835_gpioreg.h,v 1.6 2021/03/08 13:59:29 mlelstv Exp $ */ /* * Copyright (c) 2013 Jonathan A. Kollasch @@ -73,4 +73,8 @@ #define BCM2835_GPIO_ALT2 6 #define BCM2835_GPIO_ALT3 7 +/* Undocumented register to multiplex emmc2 pins to legacy sdhc */ +#define BCM2838_GPIO_MUX 0x0d0 +#define BCM2838_GPIO_MUX_LEGACY 0x2 + #endif /* _BROADCOM_BCM2835_GPIOREG_H_ */
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: mlelstv Date: Mon Mar 8 13:59:29 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2835_gpioreg.h Log Message: Undocumented register to multiplex emmc2 pins to legacy sdhc To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/broadcom/bcm2835_gpioreg.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: mlelstv Date: Mon Mar 8 13:49:02 UTC 2021 Added Files: src/sys/arch/arm/broadcom: bcm2838_pcie.c bcm2838_pcie.h Log Message: RPI4 PCIe driver, based on pcihost_fdt.c To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/sys/arch/arm/broadcom/bcm2838_pcie.c \ src/sys/arch/arm/broadcom/bcm2838_pcie.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Added files: Index: src/sys/arch/arm/broadcom/bcm2838_pcie.c diff -u /dev/null src/sys/arch/arm/broadcom/bcm2838_pcie.c:1.1 --- /dev/null Mon Mar 8 13:49:02 2021 +++ src/sys/arch/arm/broadcom/bcm2838_pcie.c Mon Mar 8 13:49:01 2021 @@ -0,0 +1,872 @@ +/* $NetBSD: bcm2838_pcie.c,v 1.1 2021/03/08 13:49:01 mlelstv Exp $ */ + +/*- + * Copyright (c) 2020 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Michael van Elst + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#include +__KERNEL_RCSID(0, "$NetBSD: bcm2838_pcie.c,v 1.1 2021/03/08 13:49:01 mlelstv Exp $"); + +#include +#include + +#include +#include +#include + +#include + +#include +#include + +#include +#include + +#define PHYS_HI_RELO __BIT(31) +#define PHYS_HI_PREFETCH __BIT(30) +#define PHYS_HI_ALIASED __BIT(29) +#define PHYS_HI_SPACE __BITS(25,24) +#define PHYS_HI_SPACE_CFG 0 +#define PHYS_HI_SPACE_IO 1 +#define PHYS_HI_SPACE_MEM32 2 +#define PHYS_HI_SPACE_MEM64 3 + +#define CFG_OFFSET(b,d,f,r) ((b) << 16 | (d) << 1 | (f) << 8 | (r)) + +struct bcmstb_busspace { + struct bus_space bst; + int (*map)(void *, bus_addr_t, bus_size_t, +int, bus_space_handle_t *); + int flags; + struct { + bus_addr_t bpci; + bus_addr_t bbus; + bus_size_t size; + } ranges[4]; + size_t nranges; +}; + +struct bcmstb_softc { +bus_space_tag_t sc_bst; +bus_space_handle_t sc_bsh; + bus_dma_tag_t sc_dmat; + +kmutex_tsc_lock; +const char *sc_name; + + int sc_phandle; + + uint32_t sc_bus_min; + uint32_t sc_bus_max; + + struct arm32_pci_chipset sc_pc; + + struct bcmstb_busspace sc_io; + struct bcmstb_busspace sc_mem; + + int sc_pci_flags; +}; + +static void bcmstb_attach(device_t, struct bcmstb_softc *); +static int bcmstb_config(struct bcmstb_softc *); +static int bcmstb_setup(struct bcmstb_softc *); +static void bcmstb_attach_hook(device_t, device_t, struct pcibus_attach_args *); +static int bcmstb_bus_maxdevs(void *, int); +static pcitag_t bcmstb_make_tag(void *, int, int, int); +static void bcmstb_decompose_tag(void *, pcitag_t, int *, int *, int *); +static u_int bcmstb_get_segment(void *); +static pcireg_t bcmstb_conf_read(void *, pcitag_t, int); +static void bcmstb_conf_write(void *, pcitag_t, int, pcireg_t); +static int bcmstb_conf_hook(void *, int, int, int, pcireg_t); +static void bcmstb_conf_interrupt(void *, int, int, int, int, int *); + +static int bcmstb_intr_map(const struct pci_attach_args *, pci_intr_handle_t *); +static const char *bcmstb_intr_string(void *, pci_intr_handle_t, char *, size_t); +static const struct evcnt *bcmstb_intr_evcnt(void *, pci_intr_handle_t); +static int bcmstb_intr_setattr(void *, pci_intr_handle_t *, int, uint64_t); +static void *bcmstb_intr_establish(void *, pci_intr_handle_t, int, +int (*)(void *), void *, const char *); +static void bcmstb_intr_disestablish(void *, void *); +static int bcmstb_bus_space_map(void *, bus_addr_t, +bus_size_t, int, bus_space_handle_t *); + +struct bcm2838pcie_softc { + device_t sc_dev; + struct bcmstb_softc sc_bcmstb; +}; + +static int
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: mlelstv Date: Mon Mar 8 13:49:02 UTC 2021 Added Files: src/sys/arch/arm/broadcom: bcm2838_pcie.c bcm2838_pcie.h Log Message: RPI4 PCIe driver, based on pcihost_fdt.c To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/sys/arch/arm/broadcom/bcm2838_pcie.c \ src/sys/arch/arm/broadcom/bcm2838_pcie.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Fri Jan 29 14:11:14 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2835_bsc_fdt.c bcm2835_com.c bcm2835_dmac.c bcm2835_dwctwo.c bcm2835_emmc.c bcm2835_gpio.c bcm2835_mbox_fdt.c bcm2835_sdhost.c bcm2835_spi.c bcm2835_tmr.c Log Message: fdtbus_intr_establish -> fdtbus_intr_establish_xname To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/broadcom/bcm2835_bsc_fdt.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/broadcom/bcm2835_com.c \ src/sys/arch/arm/broadcom/bcm2835_sdhost.c cvs rdiff -u -r1.18 -r1.19 src/sys/arch/arm/broadcom/bcm2835_dmac.c \ src/sys/arch/arm/broadcom/bcm2835_gpio.c cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/broadcom/bcm2835_dwctwo.c cvs rdiff -u -r1.42 -r1.43 src/sys/arch/arm/broadcom/bcm2835_emmc.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/broadcom/bcm2835_mbox_fdt.c cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/broadcom/bcm2835_spi.c cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/broadcom/bcm2835_tmr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_bsc_fdt.c diff -u src/sys/arch/arm/broadcom/bcm2835_bsc_fdt.c:1.5 src/sys/arch/arm/broadcom/bcm2835_bsc_fdt.c:1.6 --- src/sys/arch/arm/broadcom/bcm2835_bsc_fdt.c:1.5 Wed Jan 27 03:10:19 2021 +++ src/sys/arch/arm/broadcom/bcm2835_bsc_fdt.c Fri Jan 29 14:11:14 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_bsc_fdt.c,v 1.5 2021/01/27 03:10:19 thorpej Exp $ */ +/* $NetBSD: bcm2835_bsc_fdt.c,v 1.6 2021/01/29 14:11:14 skrll Exp $ */ /* * Copyright (c) 2019 Jason R. Thorpe @@ -28,7 +28,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_bsc_fdt.c,v 1.5 2021/01/27 03:10:19 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_bsc_fdt.c,v 1.6 2021/01/29 14:11:14 skrll Exp $"); #include #include @@ -118,8 +118,8 @@ bsciic_fdt_attach(device_t parent, devic aprint_error_dev(sc->sc_dev, "failed to decode interrupt\n"); return; } - sc->sc_inth = fdtbus_intr_establish(phandle, 0, IPL_VM, - FDT_INTR_MPSAFE, bsciic_intr, sc); + sc->sc_inth = fdtbus_intr_establish_xname(phandle, 0, IPL_VM, + FDT_INTR_MPSAFE, bsciic_intr, sc, device_xname(sc->sc_dev)); if (sc->sc_inth == NULL) { aprint_error_dev(sc->sc_dev, "failed to establish interrupt %s\n", intrstr); Index: src/sys/arch/arm/broadcom/bcm2835_com.c diff -u src/sys/arch/arm/broadcom/bcm2835_com.c:1.7 src/sys/arch/arm/broadcom/bcm2835_com.c:1.8 --- src/sys/arch/arm/broadcom/bcm2835_com.c:1.7 Wed Jan 27 03:10:19 2021 +++ src/sys/arch/arm/broadcom/bcm2835_com.c Fri Jan 29 14:11:14 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_com.c,v 1.7 2021/01/27 03:10:19 thorpej Exp $ */ +/* $NetBSD: bcm2835_com.c,v 1.8 2021/01/29 14:11:14 skrll Exp $ */ /*- * Copyright (c) 2017 Jared McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_com.c,v 1.7 2021/01/27 03:10:19 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_com.c,v 1.8 2021/01/29 14:11:14 skrll Exp $"); #include #include @@ -116,8 +116,8 @@ bcm_com_attach(device_t parent, device_t return; } - ih = fdtbus_intr_establish(phandle, 0, IPL_SERIAL, FDT_INTR_MPSAFE, - comintr, sc); + ih = fdtbus_intr_establish_xname(phandle, 0, IPL_SERIAL, FDT_INTR_MPSAFE, + comintr, sc, device_xname(sc->sc_dev)); if (ih == NULL) { aprint_error_dev(self, "failed to establish interrupt %s\n", intrstr); Index: src/sys/arch/arm/broadcom/bcm2835_sdhost.c diff -u src/sys/arch/arm/broadcom/bcm2835_sdhost.c:1.7 src/sys/arch/arm/broadcom/bcm2835_sdhost.c:1.8 --- src/sys/arch/arm/broadcom/bcm2835_sdhost.c:1.7 Wed Jan 27 03:10:19 2021 +++ src/sys/arch/arm/broadcom/bcm2835_sdhost.c Fri Jan 29 14:11:14 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_sdhost.c,v 1.7 2021/01/27 03:10:19 thorpej Exp $ */ +/* $NetBSD: bcm2835_sdhost.c,v 1.8 2021/01/29 14:11:14 skrll Exp $ */ /*- * Copyright (c) 2017 Jared McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_sdhost.c,v 1.7 2021/01/27 03:10:19 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_sdhost.c,v 1.8 2021/01/29 14:11:14 skrll Exp $"); #include "bcmdmac.h" @@ -243,8 +243,8 @@ sdhost_attach(device_t parent, device_t return; } - sc->sc_ih = fdtbus_intr_establish(phandle, 0, IPL_SDMMC, - FDT_INTR_MPSAFE, sdhost_intr, sc); + sc->sc_ih = fdtbus_intr_establish_xname(phandle, 0, IPL_SDMMC, + FDT_INTR_MPSAFE, sdhost_intr, sc, device_xname(self)); if (sc->sc_ih == NULL) { aprint_error_dev(self, "failed to establish interrupt %s\n", intrstr); Index: src/sys/arch/arm/broadcom/bcm2835_dmac.c diff -u src/sys/arch/arm/broadcom/bcm2835_dmac.c:1.18 src/sys/arch/arm/broadcom/bcm2835_dmac.c:1.19 --- src/sys/arch/arm/broadcom/bcm2835_dmac.c:1.18 Wed Jan 27 03:10:19 2021 +++ src/sys/arch/arm/broadcom/bcm2835_dmac.c Fri Jan 29 14:11:14 2021 @@ -1,4 +1,4
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Fri Jan 29 14:11:14 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2835_bsc_fdt.c bcm2835_com.c bcm2835_dmac.c bcm2835_dwctwo.c bcm2835_emmc.c bcm2835_gpio.c bcm2835_mbox_fdt.c bcm2835_sdhost.c bcm2835_spi.c bcm2835_tmr.c Log Message: fdtbus_intr_establish -> fdtbus_intr_establish_xname To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/broadcom/bcm2835_bsc_fdt.c cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/broadcom/bcm2835_com.c \ src/sys/arch/arm/broadcom/bcm2835_sdhost.c cvs rdiff -u -r1.18 -r1.19 src/sys/arch/arm/broadcom/bcm2835_dmac.c \ src/sys/arch/arm/broadcom/bcm2835_gpio.c cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/broadcom/bcm2835_dwctwo.c cvs rdiff -u -r1.42 -r1.43 src/sys/arch/arm/broadcom/bcm2835_emmc.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/broadcom/bcm2835_mbox_fdt.c cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/broadcom/bcm2835_spi.c cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/broadcom/bcm2835_tmr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: nia Date: Wed Jan 27 12:06:10 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2835_vcaudio.c Log Message: vcaudio: Do not report recording mode in hardware format To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/broadcom/bcm2835_vcaudio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: nia Date: Wed Jan 27 12:06:10 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2835_vcaudio.c Log Message: vcaudio: Do not report recording mode in hardware format To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/broadcom/bcm2835_vcaudio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_vcaudio.c diff -u src/sys/arch/arm/broadcom/bcm2835_vcaudio.c:1.16 src/sys/arch/arm/broadcom/bcm2835_vcaudio.c:1.17 --- src/sys/arch/arm/broadcom/bcm2835_vcaudio.c:1.16 Sat Jan 23 12:53:46 2021 +++ src/sys/arch/arm/broadcom/bcm2835_vcaudio.c Wed Jan 27 12:06:10 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_vcaudio.c,v 1.16 2021/01/23 12:53:46 nia Exp $ */ +/* $NetBSD: bcm2835_vcaudio.c,v 1.17 2021/01/27 12:06:10 nia Exp $ */ /*- * Copyright (c) 2013 Jared D. McNeill @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_vcaudio.c,v 1.16 2021/01/23 12:53:46 nia Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_vcaudio.c,v 1.17 2021/01/27 12:06:10 nia Exp $"); #include #include @@ -270,7 +270,7 @@ vcaudio_init(struct vcaudio_softc *sc) sc->sc_hwvol[VCAUDIO_DEST_HDMI] = 255; sc->sc_dest = VCAUDIO_DEST_AUTO; - sc->sc_format.mode = AUMODE_PLAY|AUMODE_RECORD; + sc->sc_format.mode = AUMODE_PLAY; sc->sc_format.encoding = AUDIO_ENCODING_SLINEAR_LE; sc->sc_format.validbits = 16; sc->sc_format.precision = 16;
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: nia Date: Sat Jan 23 12:53:46 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2835_vcaudio.c Log Message: vcaudio: don't advertise CAPTURE when all functions return EINVAL To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/arch/arm/broadcom/bcm2835_vcaudio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: nia Date: Sat Jan 23 12:53:46 UTC 2021 Modified Files: src/sys/arch/arm/broadcom: bcm2835_vcaudio.c Log Message: vcaudio: don't advertise CAPTURE when all functions return EINVAL To generate a diff of this commit: cvs rdiff -u -r1.15 -r1.16 src/sys/arch/arm/broadcom/bcm2835_vcaudio.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_vcaudio.c diff -u src/sys/arch/arm/broadcom/bcm2835_vcaudio.c:1.15 src/sys/arch/arm/broadcom/bcm2835_vcaudio.c:1.16 --- src/sys/arch/arm/broadcom/bcm2835_vcaudio.c:1.15 Wed Jan 22 21:21:24 2020 +++ src/sys/arch/arm/broadcom/bcm2835_vcaudio.c Sat Jan 23 12:53:46 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_vcaudio.c,v 1.15 2020/01/22 21:21:24 mlelstv Exp $ */ +/* $NetBSD: bcm2835_vcaudio.c,v 1.16 2021/01/23 12:53:46 nia Exp $ */ /*- * Copyright (c) 2013 Jared D. McNeill @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_vcaudio.c,v 1.15 2020/01/22 21:21:24 mlelstv Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_vcaudio.c,v 1.16 2021/01/23 12:53:46 nia Exp $"); #include #include @@ -159,7 +159,6 @@ static int vcaudio_set_format(void *, in const audio_params_t *, const audio_params_t *, audio_filter_reg_t *, audio_filter_reg_t *); static int vcaudio_halt_output(void *); -static int vcaudio_halt_input(void *); static int vcaudio_set_port(void *, mixer_ctrl_t *); static int vcaudio_get_port(void *, mixer_ctrl_t *); static int vcaudio_query_devinfo(void *, mixer_devinfo_t *); @@ -171,8 +170,6 @@ static int vcaudio_round_blocksize(void static int vcaudio_trigger_output(void *, void *, void *, int, void (*)(void *), void *, const audio_params_t *); -static int vcaudio_trigger_input(void *, void *, void *, int, -void (*)(void *), void *, const audio_params_t *); static void vcaudio_get_locks(void *, kmutex_t **, kmutex_t **); @@ -182,7 +179,6 @@ static const struct audio_hw_if vcaudio_ .query_format = vcaudio_query_format, .set_format = vcaudio_set_format, .halt_output = vcaudio_halt_output, - .halt_input = vcaudio_halt_input, .getdev = vcaudio_getdev, .set_port = vcaudio_set_port, .get_port = vcaudio_get_port, @@ -190,7 +186,6 @@ static const struct audio_hw_if vcaudio_ .get_props = vcaudio_get_props, .round_blocksize = vcaudio_round_blocksize, .trigger_output = vcaudio_trigger_output, - .trigger_input = vcaudio_trigger_input, .get_locks = vcaudio_get_locks, }; @@ -612,12 +607,6 @@ vcaudio_halt_output(void *priv) } static int -vcaudio_halt_input(void *priv) -{ - return EINVAL; -} - -static int vcaudio_set_volume(struct vcaudio_softc *sc, enum vcaudio_dest dest, int hwvol) { @@ -802,7 +791,7 @@ vcaudio_getdev(void *priv, struct audio_ static int vcaudio_get_props(void *priv) { - return AUDIO_PROP_PLAYBACK|AUDIO_PROP_CAPTURE|AUDIO_PROP_INDEPENDENT; + return AUDIO_PROP_PLAYBACK; } static int @@ -837,13 +826,6 @@ vcaudio_trigger_output(void *priv, void return 0; } -static int -vcaudio_trigger_input(void *priv, void *start, void *end, int blksize, -void (*intr)(void *), void *intrarg, const audio_params_t *params) -{ - return EINVAL; -} - static void vcaudio_get_locks(void *priv, kmutex_t **intr, kmutex_t **thread) {
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: thorpej Date: Wed Dec 23 02:56:11 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_bsc_fdt.c Log Message: Add missing call to fdtbus_register_i2c_controller(). This doesn't affect basic child attachment, but would have broken other references to the i2c controller in DT overlays. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/broadcom/bcm2835_bsc_fdt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_bsc_fdt.c diff -u src/sys/arch/arm/broadcom/bcm2835_bsc_fdt.c:1.2 src/sys/arch/arm/broadcom/bcm2835_bsc_fdt.c:1.3 --- src/sys/arch/arm/broadcom/bcm2835_bsc_fdt.c:1.2 Sun May 31 23:52:19 2020 +++ src/sys/arch/arm/broadcom/bcm2835_bsc_fdt.c Wed Dec 23 02:56:11 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_bsc_fdt.c,v 1.2 2020/05/31 23:52:19 thorpej Exp $ */ +/* $NetBSD: bcm2835_bsc_fdt.c,v 1.3 2020/12/23 02:56:11 thorpej Exp $ */ /* * Copyright (c) 2019 Jason R. Thorpe @@ -28,7 +28,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_bsc_fdt.c,v 1.2 2020/05/31 23:52:19 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_bsc_fdt.c,v 1.3 2020/12/23 02:56:11 thorpej Exp $"); #include #include @@ -46,6 +46,18 @@ __KERNEL_RCSID(0, "$NetBSD: bcm2835_bsc_ #include +static i2c_tag_t +bsciic_fdt_get_tag(device_t dev) +{ + struct bsciic_softc * const sc = device_private(dev); + + return >sc_i2c; +} + +static const struct fdtbus_i2c_controller_func bsciic_fdt_funcs = { + .get_tag = bsciic_fdt_get_tag, +}; + static int bsciic_fdt_match(device_t, cfdata_t, void *); static void bsciic_fdt_attach(device_t, device_t, void *); @@ -129,5 +141,7 @@ bsciic_fdt_attach(device_t parent, devic sc->sc_i2c.ic_release_bus = bsciic_release_bus; sc->sc_i2c.ic_exec = bsciic_exec; + fdtbus_register_i2c_controller(self, phandle, _fdt_funcs); + fdtbus_attach_i2cbus(self, phandle, >sc_i2c, iicbus_print); }
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: thorpej Date: Wed Dec 23 02:56:11 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_bsc_fdt.c Log Message: Add missing call to fdtbus_register_i2c_controller(). This doesn't affect basic child attachment, but would have broken other references to the i2c controller in DT overlays. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/broadcom/bcm2835_bsc_fdt.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: rin Date: Tue Dec 1 04:17:10 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_genfb.c Log Message: bcm2835-fb seems byte-swapped to CPU when running in big-endian mode. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/sys/arch/arm/broadcom/bcm2835_genfb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_genfb.c diff -u src/sys/arch/arm/broadcom/bcm2835_genfb.c:1.10 src/sys/arch/arm/broadcom/bcm2835_genfb.c:1.11 --- src/sys/arch/arm/broadcom/bcm2835_genfb.c:1.10 Mon Nov 23 06:46:38 2020 +++ src/sys/arch/arm/broadcom/bcm2835_genfb.c Tue Dec 1 04:17:10 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_genfb.c,v 1.10 2020/11/23 06:46:38 rin Exp $ */ +/* $NetBSD: bcm2835_genfb.c,v 1.11 2020/12/01 04:17:10 rin Exp $ */ /*- * Copyright (c) 2013 Jared D. McNeill @@ -31,13 +31,14 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_genfb.c,v 1.10 2020/11/23 06:46:38 rin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_genfb.c,v 1.11 2020/12/01 04:17:10 rin Exp $"); #include #include #include #include #include +#include #include #include @@ -96,6 +97,9 @@ bcmgenfb_attach(device_t parent, device_ sc->sc_wstype = WSDISPLAY_TYPE_VC4; prop_dictionary_get_uint32(dict, "wsdisplay_type", >sc_wstype); prop_dictionary_get_bool(dict, "is_console", _console); +#if BYTE_ORDER == BIG_ENDIAN + prop_dictionary_set_bool(dict, "is_swapped", true); +#endif genfb_init(>sc_gen);
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: rin Date: Tue Dec 1 04:17:10 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_genfb.c Log Message: bcm2835-fb seems byte-swapped to CPU when running in big-endian mode. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/sys/arch/arm/broadcom/bcm2835_genfb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: rin Date: Tue Dec 1 04:16:18 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm283x_platform.c Log Message: Data written to and read from bcm283x UART registers should be in little-endian. To generate a diff of this commit: cvs rdiff -u -r1.44 -r1.45 src/sys/arch/arm/broadcom/bcm283x_platform.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm283x_platform.c diff -u src/sys/arch/arm/broadcom/bcm283x_platform.c:1.44 src/sys/arch/arm/broadcom/bcm283x_platform.c:1.45 --- src/sys/arch/arm/broadcom/bcm283x_platform.c:1.44 Tue Dec 1 04:14:31 2020 +++ src/sys/arch/arm/broadcom/bcm283x_platform.c Tue Dec 1 04:16:18 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm283x_platform.c,v 1.44 2020/12/01 04:14:31 rin Exp $ */ +/* $NetBSD: bcm283x_platform.c,v 1.45 2020/12/01 04:16:18 rin Exp $ */ /*- * Copyright (c) 2017 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.44 2020/12/01 04:14:31 rin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.45 2020/12/01 04:16:18 rin Exp $"); #include "opt_arm_debug.h" #include "opt_bcm283x.h" @@ -1347,12 +1347,12 @@ bcm283x_platform_early_putchar(vaddr_t v (volatile uint32_t *)va : (volatile uint32_t *)pa; - while ((uartaddr[PL01XCOM_FR / 4] & PL01X_FR_TXFF) != 0) + while ((le32toh(uartaddr[PL01XCOM_FR / 4]) & PL01X_FR_TXFF) != 0) continue; - uartaddr[PL01XCOM_DR / 4] = c; + uartaddr[PL01XCOM_DR / 4] = htole32(c); - while ((uartaddr[PL01XCOM_FR / 4] & PL01X_FR_TXFE) == 0) + while ((le32toh(uartaddr[PL01XCOM_FR / 4]) & PL01X_FR_TXFE) == 0) continue; } @@ -1364,10 +1364,10 @@ bcm283x_aux_platform_early_putchar(vaddr (volatile uint32_t *)va : (volatile uint32_t *)pa; - while ((uartaddr[com_lsr] & LSR_TXRDY) == 0) + while ((le32toh(uartaddr[com_lsr]) & LSR_TXRDY) == 0) continue; - uartaddr[com_data] = c; + uartaddr[com_data] = htole32(c); } void __noasan
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: rin Date: Tue Dec 1 04:16:18 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm283x_platform.c Log Message: Data written to and read from bcm283x UART registers should be in little-endian. To generate a diff of this commit: cvs rdiff -u -r1.44 -r1.45 src/sys/arch/arm/broadcom/bcm283x_platform.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: rin Date: Tue Dec 1 04:15:04 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_dmac.h bcm2835_emmc.c bcm2835_sdhost.c Log Message: Data written to bcmdmac(4) should be in little-endian. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/broadcom/bcm2835_dmac.h cvs rdiff -u -r1.38 -r1.39 src/sys/arch/arm/broadcom/bcm2835_emmc.c cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/broadcom/bcm2835_sdhost.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_dmac.h diff -u src/sys/arch/arm/broadcom/bcm2835_dmac.h:1.4 src/sys/arch/arm/broadcom/bcm2835_dmac.h:1.5 --- src/sys/arch/arm/broadcom/bcm2835_dmac.h:1.4 Sun Aug 9 13:06:44 2015 +++ src/sys/arch/arm/broadcom/bcm2835_dmac.h Tue Dec 1 04:15:04 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_dmac.h,v 1.4 2015/08/09 13:06:44 mlelstv Exp $ */ +/* $NetBSD: bcm2835_dmac.h,v 1.5 2020/12/01 04:15:04 rin Exp $ */ /*- * Copyright (c) 2014 Jared D. McNeill @@ -29,6 +29,8 @@ #ifndef BCM2835_DMAC_H #define BCM2835_DMAC_H +#include + #define DMAC_CS(n) (0x00 + (0x100 * (n))) #define DMAC_CS_RESET __BIT(31) #define DMAC_CS_ABORT __BIT(30) @@ -62,6 +64,9 @@ #define DMAC_DEBUG_FIFO_ERROR __BIT(1) #define DMAC_DEBUG_READ_LAST_NOT_SET_ERROR __BIT(0) +/* + * Byte-order is little endain. + */ struct bcm_dmac_conblk { uint32_t cb_ti; #define DMAC_TI_NO_WIDE_BURSTS __BIT(26) @@ -108,5 +113,16 @@ void bcm_dmac_set_conblk_addr(struct bcm int bcm_dmac_transfer(struct bcm_dmac_channel *); void bcm_dmac_halt(struct bcm_dmac_channel *); +static inline void +bcm_dmac_swap_conblk(struct bcm_dmac_conblk *conblk) +{ + + HTOLE32(conblk->cb_ti); + HTOLE32(conblk->cb_source_ad); + HTOLE32(conblk->cb_dest_ad); + HTOLE32(conblk->cb_txfr_len); + HTOLE32(conblk->cb_stride); + HTOLE32(conblk->cb_nextconbk); +} #endif /* !BCM2835_DMAC_H */ Index: src/sys/arch/arm/broadcom/bcm2835_emmc.c diff -u src/sys/arch/arm/broadcom/bcm2835_emmc.c:1.38 src/sys/arch/arm/broadcom/bcm2835_emmc.c:1.39 --- src/sys/arch/arm/broadcom/bcm2835_emmc.c:1.38 Fri Aug 28 13:13:55 2020 +++ src/sys/arch/arm/broadcom/bcm2835_emmc.c Tue Dec 1 04:15:04 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_emmc.c,v 1.38 2020/08/28 13:13:55 skrll Exp $ */ +/* $NetBSD: bcm2835_emmc.c,v 1.39 2020/12/01 04:15:04 rin Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_emmc.c,v 1.38 2020/08/28 13:13:55 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_emmc.c,v 1.39 2020/12/01 04:15:04 rin Exp $"); #include "bcmdmac.h" @@ -327,6 +327,7 @@ bcmemmc_xfer_data_dma(struct sdhc_softc sc->sc_dmamap->dm_segs[0].ds_addr + sizeof(struct bcm_dmac_conblk) * (seg+1); } + bcm_dmac_swap_conblk(>sc_cblk[seg]); sc->sc_cblk[seg].cb_padding[0] = 0; sc->sc_cblk[seg].cb_padding[1] = 0; } Index: src/sys/arch/arm/broadcom/bcm2835_sdhost.c diff -u src/sys/arch/arm/broadcom/bcm2835_sdhost.c:1.5 src/sys/arch/arm/broadcom/bcm2835_sdhost.c:1.6 --- src/sys/arch/arm/broadcom/bcm2835_sdhost.c:1.5 Sun May 31 23:52:19 2020 +++ src/sys/arch/arm/broadcom/bcm2835_sdhost.c Tue Dec 1 04:15:04 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_sdhost.c,v 1.5 2020/05/31 23:52:19 thorpej Exp $ */ +/* $NetBSD: bcm2835_sdhost.c,v 1.6 2020/12/01 04:15:04 rin Exp $ */ /*- * Copyright (c) 2017 Jared McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_sdhost.c,v 1.5 2020/05/31 23:52:19 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_sdhost.c,v 1.6 2020/12/01 04:15:04 rin Exp $"); #include "bcmdmac.h" @@ -397,6 +397,7 @@ sdhost_dma_transfer(struct sdhost_softc sc->sc_dmamap->dm_segs[0].ds_addr + sizeof(struct bcm_dmac_conblk) * (seg+1); } + bcm_dmac_swap_conblk(>sc_cblk[seg]); sc->sc_cblk[seg].cb_padding[0] = 0; sc->sc_cblk[seg].cb_padding[1] = 0; }
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: rin Date: Tue Dec 1 04:15:04 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_dmac.h bcm2835_emmc.c bcm2835_sdhost.c Log Message: Data written to bcmdmac(4) should be in little-endian. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/broadcom/bcm2835_dmac.h cvs rdiff -u -r1.38 -r1.39 src/sys/arch/arm/broadcom/bcm2835_emmc.c cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/broadcom/bcm2835_sdhost.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: rin Date: Mon Nov 23 06:46:38 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_genfb.c Log Message: Sort headers. No binary changes. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/broadcom/bcm2835_genfb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: rin Date: Mon Nov 23 06:46:38 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_genfb.c Log Message: Sort headers. No binary changes. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/arch/arm/broadcom/bcm2835_genfb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_genfb.c diff -u src/sys/arch/arm/broadcom/bcm2835_genfb.c:1.9 src/sys/arch/arm/broadcom/bcm2835_genfb.c:1.10 --- src/sys/arch/arm/broadcom/bcm2835_genfb.c:1.9 Sun Apr 1 04:35:03 2018 +++ src/sys/arch/arm/broadcom/bcm2835_genfb.c Mon Nov 23 06:46:38 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_genfb.c,v 1.9 2018/04/01 04:35:03 ryo Exp $ */ +/* $NetBSD: bcm2835_genfb.c,v 1.10 2020/11/23 06:46:38 rin Exp $ */ /*- * Copyright (c) 2013 Jared D. McNeill @@ -31,15 +31,15 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_genfb.c,v 1.9 2018/04/01 04:35:03 ryo Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_genfb.c,v 1.10 2020/11/23 06:46:38 rin Exp $"); #include #include -#include -#include -#include #include +#include +#include #include +#include #include
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: rin Date: Mon Nov 23 06:21:07 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm283x_platform.c Log Message: Factor out bcm283x_aux_platform_early_putchar() from bcm{2837,2711}_platform_early_putchar(), for which output goes to AUX UART (aka mini UART). No functional changes. To generate a diff of this commit: cvs rdiff -u -r1.41 -r1.42 src/sys/arch/arm/broadcom/bcm283x_platform.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm283x_platform.c diff -u src/sys/arch/arm/broadcom/bcm283x_platform.c:1.41 src/sys/arch/arm/broadcom/bcm283x_platform.c:1.42 --- src/sys/arch/arm/broadcom/bcm283x_platform.c:1.41 Mon Sep 28 11:54:23 2020 +++ src/sys/arch/arm/broadcom/bcm283x_platform.c Mon Nov 23 06:21:07 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm283x_platform.c,v 1.41 2020/09/28 11:54:23 jmcneill Exp $ */ +/* $NetBSD: bcm283x_platform.c,v 1.42 2020/11/23 06:21:07 rin Exp $ */ /*- * Copyright (c) 2017 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.41 2020/09/28 11:54:23 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.42 2020/11/23 06:21:07 rin Exp $"); #include "opt_arm_debug.h" #include "opt_bcm283x.h" @@ -1344,6 +1344,20 @@ bcm283x_platform_early_putchar(vaddr_t v continue; } +static void __noasan +bcm283x_aux_platform_early_putchar(vaddr_t va, paddr_t pa, char c) +{ + volatile uint32_t *uartaddr = + cpu_earlydevice_va_p() ? + (volatile uint32_t *)va : + (volatile uint32_t *)pa; + + while ((uartaddr[com_lsr] & LSR_TXRDY) == 0) + continue; + + uartaddr[com_data] = c; +} + void __noasan bcm2835_platform_early_putchar(char c) { @@ -1365,37 +1379,19 @@ bcm2836_platform_early_putchar(char c) void __noasan bcm2837_platform_early_putchar(char c) { -#define AUCONSADDR_PA BCM2836_PERIPHERALS_BUS_TO_PHYS(BCM2835_AUX_UART_BASE) -#define AUCONSADDR_VA BCM2835_IOPHYSTOVIRT(AUCONSADDR_PA) - volatile uint32_t *uartaddr = - cpu_earlydevice_va_p() ? - (volatile uint32_t *)AUCONSADDR_VA : - (volatile uint32_t *)AUCONSADDR_PA; - - while ((uartaddr[com_lsr] & LSR_TXRDY) == 0) - ; + paddr_t pa = BCM2836_PERIPHERALS_BUS_TO_PHYS(BCM2835_AUX_UART_BASE); + vaddr_t va = BCM2835_IOPHYSTOVIRT(pa); - uartaddr[com_data] = c; -#undef AUCONSADDR_VA -#undef AUCONSADDR_PA + bcm283x_aux_platform_early_putchar(va, pa, c); } void __noasan bcm2711_platform_early_putchar(char c) { -#define AUCONSADDR_PA BCM2711_PERIPHERALS_BUS_TO_PHYS(BCM2835_AUX_UART_BASE) -#define AUCONSADDR_VA BCM2711_IOPHYSTOVIRT(AUCONSADDR_PA) - volatile uint32_t *uartaddr = - cpu_earlydevice_va_p() ? - (volatile uint32_t *)AUCONSADDR_VA : - (volatile uint32_t *)AUCONSADDR_PA; + paddr_t pa = BCM2711_PERIPHERALS_BUS_TO_PHYS(BCM2835_AUX_UART_BASE); + vaddr_t va = BCM2711_IOPHYSTOVIRT(pa); - while ((uartaddr[com_lsr] & LSR_TXRDY) == 0) - ; - - uartaddr[com_data] = c; -#undef AUCONSADDR_VA -#undef AUCONSADDR_PA + bcm283x_aux_platform_early_putchar(va, pa, c); } #define BCM283x_REF_FREQ 1920
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: rin Date: Mon Nov 23 06:21:07 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm283x_platform.c Log Message: Factor out bcm283x_aux_platform_early_putchar() from bcm{2837,2711}_platform_early_putchar(), for which output goes to AUX UART (aka mini UART). No functional changes. To generate a diff of this commit: cvs rdiff -u -r1.41 -r1.42 src/sys/arch/arm/broadcom/bcm283x_platform.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Wed Sep 30 23:58:13 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_dmac.c Log Message: Fix off-by-one in channel count, from Mark Millard. To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/broadcom/bcm2835_dmac.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Wed Sep 30 23:58:13 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_dmac.c Log Message: Fix off-by-one in channel count, from Mark Millard. To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/broadcom/bcm2835_dmac.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_dmac.c diff -u src/sys/arch/arm/broadcom/bcm2835_dmac.c:1.16 src/sys/arch/arm/broadcom/bcm2835_dmac.c:1.17 --- src/sys/arch/arm/broadcom/bcm2835_dmac.c:1.16 Sun Dec 10 21:38:26 2017 +++ src/sys/arch/arm/broadcom/bcm2835_dmac.c Wed Sep 30 23:58:13 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_dmac.c,v 1.16 2017/12/10 21:38:26 skrll Exp $ */ +/* $NetBSD: bcm2835_dmac.c,v 1.17 2020/09/30 23:58:13 jmcneill Exp $ */ /*- * Copyright (c) 2014 Jared D. McNeill @@ -29,7 +29,7 @@ #include "opt_ddb.h" #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_dmac.c,v 1.16 2017/12/10 21:38:26 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_dmac.c,v 1.17 2020/09/30 23:58:13 jmcneill Exp $"); #include #include @@ -142,7 +142,7 @@ bcm_dmac_attach(device_t parent, device_ mutex_init(>sc_lock, MUTEX_DEFAULT, IPL_SCHED); - sc->sc_nchannels = 31 - __builtin_clz(sc->sc_channelmask); + sc->sc_nchannels = 32 - __builtin_clz(sc->sc_channelmask); sc->sc_channels = kmem_alloc( sizeof(*sc->sc_channels) * sc->sc_nchannels, KM_SLEEP);
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Fri Aug 28 13:13:55 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_emmc.c Log Message: Fix build if NBCMDMAC is zero To generate a diff of this commit: cvs rdiff -u -r1.37 -r1.38 src/sys/arch/arm/broadcom/bcm2835_emmc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_emmc.c diff -u src/sys/arch/arm/broadcom/bcm2835_emmc.c:1.37 src/sys/arch/arm/broadcom/bcm2835_emmc.c:1.38 --- src/sys/arch/arm/broadcom/bcm2835_emmc.c:1.37 Sun May 31 23:52:19 2020 +++ src/sys/arch/arm/broadcom/bcm2835_emmc.c Fri Aug 28 13:13:55 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_emmc.c,v 1.37 2020/05/31 23:52:19 thorpej Exp $ */ +/* $NetBSD: bcm2835_emmc.c,v 1.38 2020/08/28 13:13:55 skrll Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_emmc.c,v 1.37 2020/05/31 23:52:19 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_emmc.c,v 1.38 2020/08/28 13:13:55 skrll Exp $"); #include "bcmdmac.h" @@ -118,11 +118,8 @@ bcmemmc_attach(device_t parent, device_t struct bcmemmc_softc *sc = device_private(self); struct fdt_attach_args * const faa = aux; const int phandle = faa->faa_phandle; - enum bcmemmc_type type; int error; - type = of_search_compatible(phandle, compat_data)->data; - sc->sc.sc_dev = self; sc->sc.sc_dmat = faa->faa_dmat; sc->sc.sc_flags = 0; @@ -186,6 +183,8 @@ bcmemmc_attach(device_t parent, device_t aprint_normal_dev(self, "interrupting on %s\n", intrstr); #if NBCMDMAC > 0 + enum bcmemmc_type type = of_search_compatible(phandle, compat_data)->data; + if (type != BCM2835_SDHCI) goto done;
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Fri Aug 28 13:13:55 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_emmc.c Log Message: Fix build if NBCMDMAC is zero To generate a diff of this commit: cvs rdiff -u -r1.37 -r1.38 src/sys/arch/arm/broadcom/bcm2835_emmc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Fri Jun 26 08:42:01 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm283x_platform.c Log Message: Avoid large stack usage with kmem_alloc - we're in device_register so there is no problem doing this. To generate a diff of this commit: cvs rdiff -u -r1.38 -r1.39 src/sys/arch/arm/broadcom/bcm283x_platform.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Fri Jun 26 08:42:01 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm283x_platform.c Log Message: Avoid large stack usage with kmem_alloc - we're in device_register so there is no problem doing this. To generate a diff of this commit: cvs rdiff -u -r1.38 -r1.39 src/sys/arch/arm/broadcom/bcm283x_platform.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm283x_platform.c diff -u src/sys/arch/arm/broadcom/bcm283x_platform.c:1.38 src/sys/arch/arm/broadcom/bcm283x_platform.c:1.39 --- src/sys/arch/arm/broadcom/bcm283x_platform.c:1.38 Sun Jun 21 07:17:25 2020 +++ src/sys/arch/arm/broadcom/bcm283x_platform.c Fri Jun 26 08:42:01 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm283x_platform.c,v 1.38 2020/06/21 07:17:25 skrll Exp $ */ +/* $NetBSD: bcm283x_platform.c,v 1.39 2020/06/26 08:42:01 skrll Exp $ */ /*- * Copyright (c) 2017 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.38 2020/06/21 07:17:25 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.39 2020/06/26 08:42:01 skrll Exp $"); #include "opt_arm_debug.h" #include "opt_bcm283x.h" @@ -53,6 +53,7 @@ __KERNEL_RCSID(0, "$NetBSD: bcm283x_plat #include #include #include +#include #include #include @@ -881,11 +882,12 @@ rpi_fb_parse_mode(const char *s, uint32_ return true; } +#define RPI_EDIDSIZE 1024 + static bool rpi_fb_get_edid_mode(uint32_t *pwidth, uint32_t *pheight) { struct edid_info ei; - uint8_t edid_data[1024]; uint32_t res; int error; @@ -901,7 +903,9 @@ rpi_fb_get_edid_mode(uint32_t *pwidth, u vb_edid.vbt_edid.status != 0) return false; - memset(edid_data, 0, sizeof(edid_data)); + uint8_t *edid_data = kmem_alloc(RPI_EDIDSIZE, KM_SLEEP); + + memset(edid_data, 0, RPI_EDIDSIZE); memcpy(edid_data, vb_edid.vbt_edid.data, sizeof(vb_edid.vbt_edid.data)); edid_parse(edid_data, ); @@ -914,6 +918,8 @@ rpi_fb_get_edid_mode(uint32_t *pwidth, u *pheight = ei.edid_preferred_mode->vdisplay; } + kmem_free(edid_data, RPI_EDIDSIZE); + return true; }
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Sun Jun 21 07:17:25 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm283x_platform.c Log Message: Update to new proplib api To generate a diff of this commit: cvs rdiff -u -r1.37 -r1.38 src/sys/arch/arm/broadcom/bcm283x_platform.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Sun Jun 21 07:17:25 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm283x_platform.c Log Message: Update to new proplib api To generate a diff of this commit: cvs rdiff -u -r1.37 -r1.38 src/sys/arch/arm/broadcom/bcm283x_platform.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm283x_platform.c diff -u src/sys/arch/arm/broadcom/bcm283x_platform.c:1.37 src/sys/arch/arm/broadcom/bcm283x_platform.c:1.38 --- src/sys/arch/arm/broadcom/bcm283x_platform.c:1.37 Sat Feb 22 00:28:35 2020 +++ src/sys/arch/arm/broadcom/bcm283x_platform.c Sun Jun 21 07:17:25 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm283x_platform.c,v 1.37 2020/02/22 00:28:35 jmcneill Exp $ */ +/* $NetBSD: bcm283x_platform.c,v 1.38 2020/06/21 07:17:25 skrll Exp $ */ /*- * Copyright (c) 2017 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.37 2020/02/22 00:28:35 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.38 2020/06/21 07:17:25 skrll Exp $"); #include "opt_arm_debug.h" #include "opt_bcm283x.h" @@ -1428,14 +1428,8 @@ bcm283x_platform_device_register(device_ (vb.vbt_macaddr.addr >> 40) & 0xff }; - prop_data_t pd = prop_data_create_data(enaddr, ETHER_ADDR_LEN); - KASSERT(pd != NULL); - if (prop_dictionary_set(device_properties(dev), "mac-address", - pd) == false) { - aprint_error_dev(dev, - "WARNING: Unable to set mac-address property\n"); - } - prop_object_release(pd); + prop_dictionary_set_data(dict, "mac-address", enaddr, + ETHER_ADDR_LEN); } #if NGENFB > 0
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: thorpej Date: Sun May 31 23:52:19 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_bsc_fdt.c bcm2835_emmc.c bcm2835_sdhost.c Log Message: Remove superfluous checking for a "disable" property in the device_t properties dictionary. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/broadcom/bcm2835_bsc_fdt.c cvs rdiff -u -r1.36 -r1.37 src/sys/arch/arm/broadcom/bcm2835_emmc.c cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/broadcom/bcm2835_sdhost.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_bsc_fdt.c diff -u src/sys/arch/arm/broadcom/bcm2835_bsc_fdt.c:1.1 src/sys/arch/arm/broadcom/bcm2835_bsc_fdt.c:1.2 --- src/sys/arch/arm/broadcom/bcm2835_bsc_fdt.c:1.1 Tue Mar 31 12:23:17 2020 +++ src/sys/arch/arm/broadcom/bcm2835_bsc_fdt.c Sun May 31 23:52:19 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_bsc_fdt.c,v 1.1 2020/03/31 12:23:17 jmcneill Exp $ */ +/* $NetBSD: bcm2835_bsc_fdt.c,v 1.2 2020/05/31 23:52:19 thorpej Exp $ */ /* * Copyright (c) 2019 Jason R. Thorpe @@ -28,7 +28,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_bsc_fdt.c,v 1.1 2020/03/31 12:23:17 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_bsc_fdt.c,v 1.2 2020/05/31 23:52:19 thorpej Exp $"); #include #include @@ -67,8 +67,6 @@ bsciic_fdt_attach(device_t parent, devic struct bsciic_softc * const sc = device_private(self); struct fdt_attach_args * const faa = aux; const int phandle = faa->faa_phandle; - prop_dictionary_t prop = device_properties(self); - bool disable = false; bus_addr_t addr; bus_size_t size; @@ -82,13 +80,6 @@ bsciic_fdt_attach(device_t parent, devic return; } - prop_dictionary_get_bool(prop, "disable", ); - if (disable) { - aprint_naive(": disabled\n"); - aprint_normal(": disabled\n"); - return; - } - /* Enable clock */ sc->sc_clk = fdtbus_clock_get_index(phandle, 0); if (sc->sc_clk == NULL) { Index: src/sys/arch/arm/broadcom/bcm2835_emmc.c diff -u src/sys/arch/arm/broadcom/bcm2835_emmc.c:1.36 src/sys/arch/arm/broadcom/bcm2835_emmc.c:1.37 --- src/sys/arch/arm/broadcom/bcm2835_emmc.c:1.36 Thu Feb 20 01:44:06 2020 +++ src/sys/arch/arm/broadcom/bcm2835_emmc.c Sun May 31 23:52:19 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_emmc.c,v 1.36 2020/02/20 01:44:06 jmcneill Exp $ */ +/* $NetBSD: bcm2835_emmc.c,v 1.37 2020/05/31 23:52:19 thorpej Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_emmc.c,v 1.36 2020/02/20 01:44:06 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_emmc.c,v 1.37 2020/05/31 23:52:19 thorpej Exp $"); #include "bcmdmac.h" @@ -117,9 +117,7 @@ bcmemmc_attach(device_t parent, device_t { struct bcmemmc_softc *sc = device_private(self); struct fdt_attach_args * const faa = aux; - prop_dictionary_t dict = device_properties(self); const int phandle = faa->faa_phandle; - bool disable = false; enum bcmemmc_type type; int error; @@ -138,13 +136,6 @@ bcmemmc_attach(device_t parent, device_t sc->sc.sc_clkbase = 5; /* Default to 50MHz */ sc->sc_iot = faa->faa_bst; - prop_dictionary_get_bool(dict, "disable", ); - if (disable) { - aprint_naive(": disabled\n"); - aprint_normal(": disabled\n"); - return; - } - bus_addr_t addr; bus_size_t size; Index: src/sys/arch/arm/broadcom/bcm2835_sdhost.c diff -u src/sys/arch/arm/broadcom/bcm2835_sdhost.c:1.4 src/sys/arch/arm/broadcom/bcm2835_sdhost.c:1.5 --- src/sys/arch/arm/broadcom/bcm2835_sdhost.c:1.4 Sun Dec 10 21:38:26 2017 +++ src/sys/arch/arm/broadcom/bcm2835_sdhost.c Sun May 31 23:52:19 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_sdhost.c,v 1.4 2017/12/10 21:38:26 skrll Exp $ */ +/* $NetBSD: bcm2835_sdhost.c,v 1.5 2020/05/31 23:52:19 thorpej Exp $ */ /*- * Copyright (c) 2017 Jared McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_sdhost.c,v 1.4 2017/12/10 21:38:26 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_sdhost.c,v 1.5 2020/05/31 23:52:19 thorpej Exp $"); #include "bcmdmac.h" @@ -191,8 +191,6 @@ sdhost_attach(device_t parent, device_t { struct sdhost_softc * const sc = device_private(self); struct fdt_attach_args * const faa = aux; - prop_dictionary_t dict = device_properties(self); - bool disable = false; sc->sc_dev = self; sc->sc_bst = faa->faa_bst; @@ -220,12 +218,6 @@ sdhost_attach(device_t parent, device_t aprint_naive("\n"); aprint_normal(": SD HOST controller\n"); - prop_dictionary_get_bool(dict, "disable", ); - if (disable) { - aprint_naive(": disabled\n"); - aprint_normal(": disabled\n"); - return; - } /* Enable clocks */ struct clk *clk; for (int i = 0; (clk = fdtbus_clock_get_index(phandle, i)); i++) {
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: thorpej Date: Sun May 31 23:52:19 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_bsc_fdt.c bcm2835_emmc.c bcm2835_sdhost.c Log Message: Remove superfluous checking for a "disable" property in the device_t properties dictionary. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/broadcom/bcm2835_bsc_fdt.c cvs rdiff -u -r1.36 -r1.37 src/sys/arch/arm/broadcom/bcm2835_emmc.c cvs rdiff -u -r1.4 -r1.5 src/sys/arch/arm/broadcom/bcm2835_sdhost.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Tue Mar 31 14:39:44 UTC 2020 Added Files: src/sys/arch/arm/broadcom: bcm2835_bscvar.h Log Message: Add bcm2835_bscvar.h To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/sys/arch/arm/broadcom/bcm2835_bscvar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Added files: Index: src/sys/arch/arm/broadcom/bcm2835_bscvar.h diff -u /dev/null src/sys/arch/arm/broadcom/bcm2835_bscvar.h:1.1 --- /dev/null Tue Mar 31 14:39:44 2020 +++ src/sys/arch/arm/broadcom/bcm2835_bscvar.h Tue Mar 31 14:39:44 2020 @@ -0,0 +1,100 @@ +/* $NetBSD: bcm2835_bscvar.h,v 1.1 2020/03/31 14:39:44 jmcneill Exp $ */ + +/* + * Copyright (c) 2019 Jason R. Thorpe + * Copyright (c) 2012 Jonathan A. Kollasch + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + *notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + *notice, this list of conditions and the following disclaimer in the + *documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _BCM2835_BSCVAR_H +#define _BCM2835_BSCVAR_H + +#include + +typedef enum { + BSC_EXEC_STATE_IDLE = 0, + BSC_EXEC_STATE_SEND_ADDR = 1, + BSC_EXEC_STATE_SEND_CMD = 2, + BSC_EXEC_STATE_SEND_DATA = 3, + BSC_EXEC_STATE_RECV_DATA = 4, + BSC_EXEC_STATE_DONE = 5, + BSC_EXEC_STATE_ERROR = 6, +} bsc_exec_state_t; + +#define BSC_EXEC_STATE_SENDING(sc) \ + ((sc)->sc_exec_state >= BSC_EXEC_STATE_SEND_ADDR && \ + (sc)->sc_exec_state <= BSC_EXEC_STATE_SEND_DATA) + +#define BSC_EXEC_STATE_RECEIVING(sc) \ + ((sc)->sc_exec_state == BSC_EXEC_STATE_RECV_DATA) + +struct bsciic_softc { + device_t sc_dev; + bus_space_tag_t sc_iot; + bus_space_handle_t sc_ioh; + struct i2c_controller sc_i2c; + void *sc_inth; + + struct clk *sc_clk; + u_int sc_frequency; + u_int sc_clkrate; + + kmutex_t sc_intr_lock; + kcondvar_t sc_intr_wait; + + struct { + i2c_op_t op; + i2c_addr_t addr; + const void *cmdbuf; + size_t cmdlen; + void *databuf; + size_t datalen; + int flags; + } sc_exec; + + /* + * Everything below here protected by the i2c controller lock + * /and/ sc_intr_lock (if we're using interrupts). + */ + + bsc_exec_state_t sc_exec_state; + + uint8_t *sc_buf; + size_t sc_bufpos; + size_t sc_buflen; + + uint32_t sc_c_bits; + bool sc_expecting_interrupt; +}; + +void bsciic_attach(struct bsciic_softc *); + +int bsciic_acquire_bus(void *, int); +void bsciic_release_bus(void *, int); +int bsciic_exec(void *, i2c_op_t, i2c_addr_t, const void *, size_t, + void *, size_t, int); + +int bsciic_intr(void *); + +#endif /* !_BCM2835_BSCVAR_H */
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Tue Mar 31 14:39:44 UTC 2020 Added Files: src/sys/arch/arm/broadcom: bcm2835_bscvar.h Log Message: Add bcm2835_bscvar.h To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 src/sys/arch/arm/broadcom/bcm2835_bscvar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Sat Feb 22 22:09:07 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_mbox.c bcm2835_mbox_acpi.c Log Message: RPi4 UEFI firmware 1.1 reports the wrong IRQ for the VC mailbox. Use polling mode for now until this is sorted out. To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/sys/arch/arm/broadcom/bcm2835_mbox.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/broadcom/bcm2835_mbox_acpi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Sat Feb 22 22:09:07 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_mbox.c bcm2835_mbox_acpi.c Log Message: RPi4 UEFI firmware 1.1 reports the wrong IRQ for the VC mailbox. Use polling mode for now until this is sorted out. To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/sys/arch/arm/broadcom/bcm2835_mbox.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/broadcom/bcm2835_mbox_acpi.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_mbox.c diff -u src/sys/arch/arm/broadcom/bcm2835_mbox.c:1.14 src/sys/arch/arm/broadcom/bcm2835_mbox.c:1.15 --- src/sys/arch/arm/broadcom/bcm2835_mbox.c:1.14 Mon Dec 30 18:43:38 2019 +++ src/sys/arch/arm/broadcom/bcm2835_mbox.c Sat Feb 22 22:09:07 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_mbox.c,v 1.14 2019/12/30 18:43:38 jmcneill Exp $ */ +/* $NetBSD: bcm2835_mbox.c,v 1.15 2020/02/22 22:09:07 jmcneill Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_mbox.c,v 1.14 2019/12/30 18:43:38 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_mbox.c,v 1.15 2020/02/22 22:09:07 jmcneill Exp $"); #include #include @@ -97,8 +97,9 @@ bcmmbox_attach(struct bcm2835mbox_softc cv_init(>sc_chan[i], "bcmmbox"); /* enable mbox interrupt */ - bus_space_write_4(sc->sc_iot, sc->sc_ioh, BCM2835_MBOX_CFG, - BCM2835_MBOX_CFG_DATAIRQEN); + if (sc->sc_intrh != NULL) + bus_space_write_4(sc->sc_iot, sc->sc_ioh, BCM2835_MBOX_CFG, + BCM2835_MBOX_CFG_DATAIRQEN); baa.baa_dmat = sc->sc_dmat; sc->sc_platdev = config_found_ia(sc->sc_dev, "bcmmboxbus", , NULL); @@ -130,7 +131,7 @@ bcmmbox_read(uint8_t chan, uint32_t *dat mutex_enter(>sc_intr_lock); while (BCM2835_MBOX_CHAN(sc->sc_mbox[chan]) == 0) { - if (cold) + if (cold || sc->sc_intrh == NULL) bcmmbox_intr1(sc, 0); else cv_wait(>sc_chan[chan], >sc_intr_lock); Index: src/sys/arch/arm/broadcom/bcm2835_mbox_acpi.c diff -u src/sys/arch/arm/broadcom/bcm2835_mbox_acpi.c:1.1 src/sys/arch/arm/broadcom/bcm2835_mbox_acpi.c:1.2 --- src/sys/arch/arm/broadcom/bcm2835_mbox_acpi.c:1.1 Mon Dec 30 18:43:38 2019 +++ src/sys/arch/arm/broadcom/bcm2835_mbox_acpi.c Sat Feb 22 22:09:07 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_mbox_acpi.c,v 1.1 2019/12/30 18:43:38 jmcneill Exp $ */ +/* $NetBSD: bcm2835_mbox_acpi.c,v 1.2 2020/02/22 22:09:07 jmcneill Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_mbox_acpi.c,v 1.1 2019/12/30 18:43:38 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_mbox_acpi.c,v 1.2 2020/02/22 22:09:07 jmcneill Exp $"); #include #include @@ -103,12 +103,14 @@ bcmmbox_acpi_attach(device_t parent, dev return; } +#if notyet sc->sc_intrh = acpi_intr_establish(self, (uint64_t)aa->aa_node->ad_handle, IPL_VM, false, bcmmbox_intr, sc, device_xname(self)); if (sc->sc_intrh == NULL) { aprint_error_dev(self, "failed to establish interrupt\n"); return; } +#endif bcmmbox_attach(sc); }
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Sat Feb 22 00:17:54 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835reg.h bcm283x_platform.c Log Message: Translate bus addresses for SCB on BCM2711 To generate a diff of this commit: cvs rdiff -u -r1.29 -r1.30 src/sys/arch/arm/broadcom/bcm2835reg.h cvs rdiff -u -r1.35 -r1.36 src/sys/arch/arm/broadcom/bcm283x_platform.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835reg.h diff -u src/sys/arch/arm/broadcom/bcm2835reg.h:1.29 src/sys/arch/arm/broadcom/bcm2835reg.h:1.30 --- src/sys/arch/arm/broadcom/bcm2835reg.h:1.29 Mon Dec 30 16:19:27 2019 +++ src/sys/arch/arm/broadcom/bcm2835reg.h Sat Feb 22 00:17:54 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835reg.h,v 1.29 2019/12/30 16:19:27 skrll Exp $ */ +/* $NetBSD: bcm2835reg.h,v 1.30 2020/02/22 00:17:54 jmcneill Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -124,6 +124,15 @@ #define BCM2835_INTC_BASE (0x0) /* Relative to BCM2835_ARMICU_BASE */ +#define BCM2711_SCB_BASE 0xfc00 +#define BCM2711_SCB_SIZE 0x0380 +#define BCM2711_SCB_BASE_BUS 0x7c00 + +#define BCM2711_SCB_PHYS_TO_BUS(a) \ +((a) - BCM2711_SCB_BASE + BCM2711_SCB_BASE_BUS) +#define BCM2711_SCB_BUS_TO_PHYS(a) \ +((a) - BCM2711_SCB_BASE_BUS + BCM2711_SCB_BASE) + /* Interrupt controller */ #define BCM2835_INTC_IRQBPENDING (BCM2835_INTC_BASE + 0x00) /* IRQ Basic pending */ #define BCM2835_INTC_IRQ1PENDING (BCM2835_INTC_BASE + 0x04) /* IRQ pending 1 */ Index: src/sys/arch/arm/broadcom/bcm283x_platform.c diff -u src/sys/arch/arm/broadcom/bcm283x_platform.c:1.35 src/sys/arch/arm/broadcom/bcm283x_platform.c:1.36 --- src/sys/arch/arm/broadcom/bcm283x_platform.c:1.35 Thu Feb 20 01:43:07 2020 +++ src/sys/arch/arm/broadcom/bcm283x_platform.c Sat Feb 22 00:17:54 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm283x_platform.c,v 1.35 2020/02/20 01:43:07 jmcneill Exp $ */ +/* $NetBSD: bcm283x_platform.c,v 1.36 2020/02/22 00:17:54 jmcneill Exp $ */ /*- * Copyright (c) 2017 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.35 2020/02/20 01:43:07 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.36 2020/02/22 00:17:54 jmcneill Exp $"); #include "opt_arm_debug.h" #include "opt_bcm283x.h" @@ -187,6 +187,10 @@ bcm2711_bus_to_phys(bus_addr_t ba) ba < BCM283X_PERIPHERALS_BASE_BUS + BCM283X_PERIPHERALS_SIZE) return BCM2711_PERIPHERALS_BUS_TO_PHYS(ba); + if (ba >= BCM2711_SCB_BASE_BUS && + ba < BCM2711_SCB_BASE_BUS + BCM2711_SCB_SIZE) + return BCM2711_SCB_BUS_TO_PHYS(ba); + if (ba >= BCM2711_ARM_LOCAL_BASE_BUS && ba < BCM2711_ARM_LOCAL_BASE_BUS + BCM2711_ARM_LOCAL_SIZE) return BCM2711_ARM_LOCAL_BUS_TO_PHYS(ba);
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Sat Feb 22 00:17:54 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835reg.h bcm283x_platform.c Log Message: Translate bus addresses for SCB on BCM2711 To generate a diff of this commit: cvs rdiff -u -r1.29 -r1.30 src/sys/arch/arm/broadcom/bcm2835reg.h cvs rdiff -u -r1.35 -r1.36 src/sys/arch/arm/broadcom/bcm283x_platform.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Thu Feb 20 01:44:06 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_emmc.c Log Message: Add support for brcm,bcm2711-emmc2 To generate a diff of this commit: cvs rdiff -u -r1.35 -r1.36 src/sys/arch/arm/broadcom/bcm2835_emmc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Thu Feb 20 01:44:06 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_emmc.c Log Message: Add support for brcm,bcm2711-emmc2 To generate a diff of this commit: cvs rdiff -u -r1.35 -r1.36 src/sys/arch/arm/broadcom/bcm2835_emmc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_emmc.c diff -u src/sys/arch/arm/broadcom/bcm2835_emmc.c:1.35 src/sys/arch/arm/broadcom/bcm2835_emmc.c:1.36 --- src/sys/arch/arm/broadcom/bcm2835_emmc.c:1.35 Mon Dec 30 16:41:38 2019 +++ src/sys/arch/arm/broadcom/bcm2835_emmc.c Thu Feb 20 01:44:06 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_emmc.c,v 1.35 2019/12/30 16:41:38 skrll Exp $ */ +/* $NetBSD: bcm2835_emmc.c,v 1.36 2020/02/20 01:44:06 jmcneill Exp $ */ /*- * Copyright (c) 2012 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_emmc.c,v 1.35 2019/12/30 16:41:38 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_emmc.c,v 1.36 2020/02/20 01:44:06 jmcneill Exp $"); #include "bcmdmac.h" @@ -91,17 +91,24 @@ static void bcmemmc_dma_done(uint32_t, u CFATTACH_DECL_NEW(bcmemmc, sizeof(struct bcmemmc_softc), bcmemmc_match, bcmemmc_attach, NULL, NULL); +enum bcmemmc_type { + BCM2835_SDHCI, + BCM2711_EMMC2, +}; + +static const struct of_compat_data compat_data[] = { + { "brcm,bcm2835-sdhci", BCM2835_SDHCI }, + { "brcm,bcm2711-emmc2", BCM2711_EMMC2 }, + { NULL } +}; + /* ARGSUSED */ static int bcmemmc_match(device_t parent, struct cfdata *match, void *aux) { - const char * const compatible[] = { - "brcm,bcm2835-sdhci", - NULL - }; struct fdt_attach_args * const faa = aux; - return of_match_compatible(faa->faa_phandle, compatible); + return of_match_compat_data(faa->faa_phandle, compat_data); } /* ARGSUSED */ @@ -111,9 +118,13 @@ bcmemmc_attach(device_t parent, device_t struct bcmemmc_softc *sc = device_private(self); struct fdt_attach_args * const faa = aux; prop_dictionary_t dict = device_properties(self); + const int phandle = faa->faa_phandle; bool disable = false; + enum bcmemmc_type type; int error; + type = of_search_compatible(phandle, compat_data)->data; + sc->sc.sc_dev = self; sc->sc.sc_dmat = faa->faa_dmat; sc->sc.sc_flags = 0; @@ -137,7 +148,6 @@ bcmemmc_attach(device_t parent, device_t bus_addr_t addr; bus_size_t size; - const int phandle = faa->faa_phandle; error = fdtbus_get_reg(phandle, 0, , ); if (error) { aprint_error_dev(sc->sc.sc_dev, "unable to map device\n"); @@ -185,6 +195,9 @@ bcmemmc_attach(device_t parent, device_t aprint_normal_dev(self, "interrupting on %s\n", intrstr); #if NBCMDMAC > 0 + if (type != BCM2835_SDHCI) + goto done; + sc->sc_dmac = bcm_dmac_alloc(BCM_DMAC_TYPE_NORMAL, IPL_SDMMC, bcmemmc_dma_done, sc); if (sc->sc_dmac == NULL)
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Thu Feb 20 01:43:08 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm283x_platform.c Log Message: Remove custom bus dma tag handling. To generate a diff of this commit: cvs rdiff -u -r1.34 -r1.35 src/sys/arch/arm/broadcom/bcm283x_platform.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: jmcneill Date: Thu Feb 20 01:43:08 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm283x_platform.c Log Message: Remove custom bus dma tag handling. To generate a diff of this commit: cvs rdiff -u -r1.34 -r1.35 src/sys/arch/arm/broadcom/bcm283x_platform.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm283x_platform.c diff -u src/sys/arch/arm/broadcom/bcm283x_platform.c:1.34 src/sys/arch/arm/broadcom/bcm283x_platform.c:1.35 --- src/sys/arch/arm/broadcom/bcm283x_platform.c:1.34 Wed Jan 1 13:54:32 2020 +++ src/sys/arch/arm/broadcom/bcm283x_platform.c Thu Feb 20 01:43:07 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm283x_platform.c,v 1.34 2020/01/01 13:54:32 skrll Exp $ */ +/* $NetBSD: bcm283x_platform.c,v 1.35 2020/02/20 01:43:07 jmcneill Exp $ */ /*- * Copyright (c) 2017 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.34 2020/01/01 13:54:32 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.35 2020/02/20 01:43:07 jmcneill Exp $"); #include "opt_arm_debug.h" #include "opt_bcm283x.h" @@ -109,7 +109,6 @@ __KERNEL_RCSID(0, "$NetBSD: bcm283x_plat #endif #define RPI_CPU_MAX 4 -#define BCM2711_DMA_SIZE 0x3c00 void bcm2835_platform_early_putchar(char c); void bcm2836_platform_early_putchar(char c); @@ -267,28 +266,6 @@ bcm2711_a4x_bs_mmap(void *t, bus_addr_t return bcm2711_bs_mmap(t, ba, 4 * offset, prot, flags); } -struct arm32_dma_range bcm2835_dma_ranges[] = { - [0] = { - .dr_sysbase = 0, - .dr_busbase = BCM2835_BUSADDR_CACHE_COHERENT, - } -}; - -struct arm32_dma_range bcm2836_dma_ranges[] = { - [0] = { - .dr_sysbase = 0, - .dr_busbase = BCM2835_BUSADDR_CACHE_DIRECT, - } -}; - -struct arm32_dma_range bcm2711_dma_ranges[] = { - [0] = { - .dr_sysbase = 0, - .dr_busbase = BCM2835_BUSADDR_CACHE_DIRECT, - } -}; - - #if defined(SOC_BCM2835) static const struct pmap_devmap * bcm2835_platform_devmap(void) @@ -1321,11 +1298,6 @@ bcm2835_platform_init_attach_args(struct faa->faa_bst = _bs_tag; faa->faa_a4x_bst = _a4x_bs_tag; - faa->faa_dmat = _bus_dma_tag; - - bcm2835_bus_dma_tag._ranges = bcm2835_dma_ranges; - bcm2835_bus_dma_tag._nranges = __arraycount(bcm2835_dma_ranges); - bcm2835_dma_ranges[0].dr_len = bcm283x_memorysize; } #endif @@ -1336,11 +1308,6 @@ bcm2836_platform_init_attach_args(struct faa->faa_bst = _bs_tag; faa->faa_a4x_bst = _a4x_bs_tag; - faa->faa_dmat = _bus_dma_tag; - - bcm2835_bus_dma_tag._ranges = bcm2836_dma_ranges; - bcm2835_bus_dma_tag._nranges = __arraycount(bcm2836_dma_ranges); - bcm2836_dma_ranges[0].dr_len = bcm283x_memorysize; } static void @@ -1349,11 +1316,6 @@ bcm2711_platform_init_attach_args(struct faa->faa_bst = _bs_tag; faa->faa_a4x_bst = _a4x_bs_tag; - faa->faa_dmat = _bus_dma_tag; - - bcm2835_bus_dma_tag._ranges = bcm2711_dma_ranges; - bcm2835_bus_dma_tag._nranges = __arraycount(bcm2711_dma_ranges); - bcm2711_dma_ranges[0].dr_len = BCM2711_DMA_SIZE; } #endif
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Mon Feb 3 08:00:35 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm53xx_eth.c Log Message: Adopt To generate a diff of this commit: cvs rdiff -u -r1.39 -r1.40 src/sys/arch/arm/broadcom/bcm53xx_eth.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Mon Feb 3 08:00:35 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm53xx_eth.c Log Message: Adopt To generate a diff of this commit: cvs rdiff -u -r1.39 -r1.40 src/sys/arch/arm/broadcom/bcm53xx_eth.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm53xx_eth.c diff -u src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.39 src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.40 --- src/sys/arch/arm/broadcom/bcm53xx_eth.c:1.39 Wed Oct 30 10:12:37 2019 +++ src/sys/arch/arm/broadcom/bcm53xx_eth.c Mon Feb 3 08:00:35 2020 @@ -35,7 +35,7 @@ #include -__KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.c,v 1.39 2019/10/30 10:12:37 msaitoh Exp $"); +__KERNEL_RCSID(1, "$NetBSD: bcm53xx_eth.c,v 1.40 2020/02/03 08:00:35 skrll Exp $"); #include #include @@ -1119,7 +1119,7 @@ bcmeth_rxq_consume( #ifdef BCMETH_RCVMAGIC if (rxsts == BCMETH_RCVMAGIC) { - ifp->if_ierrors++; + if_statinc(ifp, if_ierrors); if ((m->m_ext.ext_paddr >> 28) == 8) { BCMETH_EVCNT_INCR(sc->sc_ev_rx_badmagic_lo); } else { @@ -1137,7 +1137,7 @@ bcmeth_rxq_consume( * We encountered an error, take the mbufs and add them * to the rx bufcache so we can quickly reuse them. */ - ifp->if_ierrors++; + if_statinc(ifp, if_ierrors); do { struct mbuf *m0 = m->m_next; m->m_next = NULL; @@ -1662,10 +1662,10 @@ bcmeth_txq_consume( __func__, m, m->m_pkthdr.len); #endif bpf_mtap(ifp, m, BPF_D_OUT); - ifp->if_opackets++; - ifp->if_obytes += m->m_pkthdr.len; + if_statinc(ifp, if_opackets); + if_statadd(ifp, if_obytes, m->m_pkthdr.len); if (m->m_flags & M_MCAST) -ifp->if_omcasts++; +if_statinc(ifp, if_omcasts); m_freem(m); }
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: mlelstv Date: Wed Jan 22 21:21:24 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_vcaudio.c bcm2835_vcaudioreg.h Log Message: Adapt to changed 64bit vchiq interface. To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/sys/arch/arm/broadcom/bcm2835_vcaudio.c cvs rdiff -u -r1.3 -r1.4 src/sys/arch/arm/broadcom/bcm2835_vcaudioreg.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/arch/arm/broadcom/bcm2835_vcaudio.c diff -u src/sys/arch/arm/broadcom/bcm2835_vcaudio.c:1.14 src/sys/arch/arm/broadcom/bcm2835_vcaudio.c:1.15 --- src/sys/arch/arm/broadcom/bcm2835_vcaudio.c:1.14 Wed May 8 13:40:14 2019 +++ src/sys/arch/arm/broadcom/bcm2835_vcaudio.c Wed Jan 22 21:21:24 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_vcaudio.c,v 1.14 2019/05/08 13:40:14 isaki Exp $ */ +/* $NetBSD: bcm2835_vcaudio.c,v 1.15 2020/01/22 21:21:24 mlelstv Exp $ */ /*- * Copyright (c) 2013 Jared D. McNeill @@ -31,7 +31,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_vcaudio.c,v 1.14 2019/05/08 13:40:14 isaki Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_vcaudio.c,v 1.15 2020/01/22 21:21:24 mlelstv Exp $"); #include #include @@ -371,8 +371,6 @@ vcaudio_service_callback(void *priv, con VC_AUDIO_MSG_T msg; int32_t msglen = 0; int error; - void (*intr)(void *) = NULL; - void *intrarg = NULL; if (sc == NULL || reason != VCHI_CALLBACK_MSG_AVAILABLE) return; @@ -396,9 +394,8 @@ vcaudio_service_callback(void *priv, con break; case VC_AUDIO_MSG_TYPE_COMPLETE: - intr = msg.u.complete.callback; - intrarg = msg.u.complete.cookie; - if (intr && intrarg) { + if (msg.u.complete.cookie1 == VC_AUDIO_WRITE_COOKIE1 && + msg.u.complete.cookie2 == VC_AUDIO_WRITE_COOKIE2) { int count = msg.u.complete.count & 0x; int perr = (msg.u.complete.count & __BIT(30)) != 0; bool sched = false; @@ -420,7 +417,7 @@ vcaudio_service_callback(void *priv, con } if (sched && sc->sc_pint) { -intr(intrarg); +sc->sc_pint(sc->sc_pintarg); sc->sc_abytes += sc->sc_pblksize; cv_signal(>sc_datacv); } @@ -465,8 +462,8 @@ vcaudio_worker(void *priv) msg.type = VC_AUDIO_MSG_TYPE_WRITE; msg.u.write.max_packet = VCAUDIO_MSGSIZE; msg.u.write.count = count; - msg.u.write.callback = intr; - msg.u.write.cookie = intrarg; + msg.u.write.cookie1 = VC_AUDIO_WRITE_COOKIE1; + msg.u.write.cookie2 = VC_AUDIO_WRITE_COOKIE2; msg.u.write.silence = 0; block = (uint8_t *)sc->sc_pstart + sc->sc_ppos; Index: src/sys/arch/arm/broadcom/bcm2835_vcaudioreg.h diff -u src/sys/arch/arm/broadcom/bcm2835_vcaudioreg.h:1.3 src/sys/arch/arm/broadcom/bcm2835_vcaudioreg.h:1.4 --- src/sys/arch/arm/broadcom/bcm2835_vcaudioreg.h:1.3 Fri Apr 25 15:51:12 2014 +++ src/sys/arch/arm/broadcom/bcm2835_vcaudioreg.h Wed Jan 22 21:21:24 2020 @@ -33,6 +33,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI // FourCC code used for VCHI connection #define VC_AUDIO_SERVER_NAME MAKE_FOURCC("AUDS") +#define VC_AUDIO_WRITE_COOKIE1 MAKE_FOURCC("BCMA") +#define VC_AUDIO_WRITE_COOKIE2 MAKE_FOURCC("DATA") // Maximum message length #define VC_AUDIO_MAX_MSG_LEN (sizeof( VC_AUDIO_MSG_T )) @@ -115,8 +117,8 @@ typedef struct typedef struct { uint32_t count; // in bytes - void *callback; - void *cookie; + uint32_t cookie1; + uint32_t cookie2; uint16_t silence; uint16_t max_packet; } VC_AUDIO_WRITE_T; @@ -132,8 +134,8 @@ typedef struct typedef struct { int32_t count; // Success value - void *callback; - void *cookie; + uint32_t cookie1; + uint32_t cookie2; } VC_AUDIO_COMPLETE_T; // Message header for all messages in HOST->VC direction
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: mlelstv Date: Wed Jan 22 21:21:24 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_vcaudio.c bcm2835_vcaudioreg.h Log Message: Adapt to changed 64bit vchiq interface. To generate a diff of this commit: cvs rdiff -u -r1.14 -r1.15 src/sys/arch/arm/broadcom/bcm2835_vcaudio.c cvs rdiff -u -r1.3 -r1.4 src/sys/arch/arm/broadcom/bcm2835_vcaudioreg.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: mrg Date: Mon Jan 20 06:55:35 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_intr.c Log Message: use arm_cpu_mpidr() and fix arm64 builds. To generate a diff of this commit: cvs rdiff -u -r1.30 -r1.31 src/sys/arch/arm/broadcom/bcm2835_intr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_intr.c diff -u src/sys/arch/arm/broadcom/bcm2835_intr.c:1.30 src/sys/arch/arm/broadcom/bcm2835_intr.c:1.31 --- src/sys/arch/arm/broadcom/bcm2835_intr.c:1.30 Sun Jan 19 16:53:20 2020 +++ src/sys/arch/arm/broadcom/bcm2835_intr.c Mon Jan 20 06:55:35 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_intr.c,v 1.30 2020/01/19 16:53:20 skrll Exp $ */ +/* $NetBSD: bcm2835_intr.c,v 1.31 2020/01/20 06:55:35 mrg Exp $ */ /*- * Copyright (c) 2012, 2015, 2019 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_intr.c,v 1.30 2020/01/19 16:53:20 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_intr.c,v 1.31 2020/01/20 06:55:35 mrg Exp $"); #define _INTR_PRIVATE @@ -337,7 +337,7 @@ bcm2835_irq_handler(void *frame) { struct cpu_info * const ci = curcpu(); const int oldipl = ci->ci_cpl; - const cpuid_t cpuid = __SHIFTOUT(ci->ci_mpidr, MPIDR_AFF0); + const cpuid_t cpuid = __SHIFTOUT(arm_cpu_mpidr(ci), MPIDR_AFF0); const uint32_t oldipl_mask = __BIT(oldipl); int ipl_mask = 0; @@ -700,7 +700,7 @@ static int bcm2836mp_pic_find_pending_irqs(struct pic_softc *pic) { struct cpu_info * const ci = curcpu(); - const cpuid_t cpuid = __SHIFTOUT(ci->ci_mpidr, MPIDR_AFF0); + const cpuid_t cpuid = __SHIFTOUT(arm_cpu_mpidr(ci), MPIDR_AFF0); uint32_t lpending; int ipl = 0; @@ -741,7 +741,7 @@ bcm2836mp_pic_source_name(struct pic_sof #if defined(MULTIPROCESSOR) static void bcm2836mp_cpu_init(struct pic_softc *pic, struct cpu_info *ci) { - const cpuid_t cpuid = __SHIFTOUT(ci->ci_mpidr, MPIDR_AFF0); + const cpuid_t cpuid = __SHIFTOUT(arm_cpu_mpidr(ci), MPIDR_AFF0); KASSERT(cpuid < BCM2836_NCPUS); @@ -768,7 +768,7 @@ int bcm2836mp_ipi_handler(void *priv) { const struct cpu_info *ci = curcpu(); - const cpuid_t cpuid = __SHIFTOUT(ci->ci_mpidr, MPIDR_AFF0); + const cpuid_t cpuid = __SHIFTOUT(arm_cpu_mpidr(ci), MPIDR_AFF0); uint32_t ipimask, bit; KASSERT(cpuid < BCM2836_NCPUS); @@ -817,7 +817,7 @@ bcm2836mp_ipi_handler(void *priv) static void bcm2836mp_intr_init(void *priv, struct cpu_info *ci) { - const cpuid_t cpuid = __SHIFTOUT(ci->ci_mpidr, MPIDR_AFF0); + const cpuid_t cpuid = __SHIFTOUT(arm_cpu_mpidr(ci), MPIDR_AFF0); struct pic_softc * const pic = _pic[cpuid]; KASSERT(cpuid < BCM2836_NCPUS);
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: mrg Date: Mon Jan 20 06:55:35 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_intr.c Log Message: use arm_cpu_mpidr() and fix arm64 builds. To generate a diff of this commit: cvs rdiff -u -r1.30 -r1.31 src/sys/arch/arm/broadcom/bcm2835_intr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Sun Jan 19 16:53:20 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_intr.c Log Message: ci_core_id isn't setup early enough after recent arm_cpu_topology changes, so use ci_mpidr as a stop gap fix for cpuid To generate a diff of this commit: cvs rdiff -u -r1.29 -r1.30 src/sys/arch/arm/broadcom/bcm2835_intr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm2835_intr.c diff -u src/sys/arch/arm/broadcom/bcm2835_intr.c:1.29 src/sys/arch/arm/broadcom/bcm2835_intr.c:1.30 --- src/sys/arch/arm/broadcom/bcm2835_intr.c:1.29 Thu Dec 26 11:09:11 2019 +++ src/sys/arch/arm/broadcom/bcm2835_intr.c Sun Jan 19 16:53:20 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm2835_intr.c,v 1.29 2019/12/26 11:09:11 skrll Exp $ */ +/* $NetBSD: bcm2835_intr.c,v 1.30 2020/01/19 16:53:20 skrll Exp $ */ /*- * Copyright (c) 2012, 2015, 2019 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm2835_intr.c,v 1.29 2019/12/26 11:09:11 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm2835_intr.c,v 1.30 2020/01/19 16:53:20 skrll Exp $"); #define _INTR_PRIVATE @@ -337,7 +337,7 @@ bcm2835_irq_handler(void *frame) { struct cpu_info * const ci = curcpu(); const int oldipl = ci->ci_cpl; - const cpuid_t cpuid = ci->ci_core_id; + const cpuid_t cpuid = __SHIFTOUT(ci->ci_mpidr, MPIDR_AFF0); const uint32_t oldipl_mask = __BIT(oldipl); int ipl_mask = 0; @@ -700,7 +700,7 @@ static int bcm2836mp_pic_find_pending_irqs(struct pic_softc *pic) { struct cpu_info * const ci = curcpu(); - const cpuid_t cpuid = ci->ci_core_id; + const cpuid_t cpuid = __SHIFTOUT(ci->ci_mpidr, MPIDR_AFF0); uint32_t lpending; int ipl = 0; @@ -741,7 +741,7 @@ bcm2836mp_pic_source_name(struct pic_sof #if defined(MULTIPROCESSOR) static void bcm2836mp_cpu_init(struct pic_softc *pic, struct cpu_info *ci) { - const cpuid_t cpuid = ci->ci_core_id; + const cpuid_t cpuid = __SHIFTOUT(ci->ci_mpidr, MPIDR_AFF0); KASSERT(cpuid < BCM2836_NCPUS); @@ -768,7 +768,7 @@ int bcm2836mp_ipi_handler(void *priv) { const struct cpu_info *ci = curcpu(); - const cpuid_t cpuid = ci->ci_core_id; + const cpuid_t cpuid = __SHIFTOUT(ci->ci_mpidr, MPIDR_AFF0); uint32_t ipimask, bit; KASSERT(cpuid < BCM2836_NCPUS); @@ -817,7 +817,7 @@ bcm2836mp_ipi_handler(void *priv) static void bcm2836mp_intr_init(void *priv, struct cpu_info *ci) { - const cpuid_t cpuid = ci->ci_core_id; + const cpuid_t cpuid = __SHIFTOUT(ci->ci_mpidr, MPIDR_AFF0); struct pic_softc * const pic = _pic[cpuid]; KASSERT(cpuid < BCM2836_NCPUS);
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Sun Jan 19 16:53:20 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm2835_intr.c Log Message: ci_core_id isn't setup early enough after recent arm_cpu_topology changes, so use ci_mpidr as a stop gap fix for cpuid To generate a diff of this commit: cvs rdiff -u -r1.29 -r1.30 src/sys/arch/arm/broadcom/bcm2835_intr.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Wed Jan 1 13:54:32 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm283x_platform.c Log Message: Provide a single generic bcm283x_platform_uart_freq which checks for "brcm,bcm2835-aux-uart" and returns the appropriate core clock based results; otherwise it returns the uart clock from firmware. Should fix early console output on the rpi0w. Based on a diff from mlelstv To generate a diff of this commit: cvs rdiff -u -r1.33 -r1.34 src/sys/arch/arm/broadcom/bcm283x_platform.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm283x_platform.c diff -u src/sys/arch/arm/broadcom/bcm283x_platform.c:1.33 src/sys/arch/arm/broadcom/bcm283x_platform.c:1.34 --- src/sys/arch/arm/broadcom/bcm283x_platform.c:1.33 Wed Jan 1 09:35:50 2020 +++ src/sys/arch/arm/broadcom/bcm283x_platform.c Wed Jan 1 13:54:32 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm283x_platform.c,v 1.33 2020/01/01 09:35:50 skrll Exp $ */ +/* $NetBSD: bcm283x_platform.c,v 1.34 2020/01/01 13:54:32 skrll Exp $ */ /*- * Copyright (c) 2017 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.33 2020/01/01 09:35:50 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.34 2020/01/01 13:54:32 skrll Exp $"); #include "opt_arm_debug.h" #include "opt_bcm283x.h" @@ -1499,6 +1499,20 @@ static u_int bcm283x_platform_uart_freq(void) { + /* + * We are safe to access stdout phandle - consinit did before + * calling ap_uart_freq + */ + const int phandle = fdtbus_get_stdout_phandle(); + + static const char * const aux_compatible[] = { + "brcm,bcm2835-aux-uart", + NULL + }; + + if (of_match_compatible(phandle, aux_compatible)) + return core_clk * 2; + return uart_clk; } @@ -1517,12 +1531,6 @@ ARM_PLATFORM(bcm2835, "brcm,bcm2835", #endif #if defined(SOC_BCM2836) -static u_int -bcm2837_platform_uart_freq(void) -{ - - return core_clk * 2; -} static const struct arm_platform bcm2836_platform = { .ap_devmap = bcm2836_platform_devmap, @@ -1542,7 +1550,7 @@ static const struct arm_platform bcm2837 .ap_device_register = bcm283x_platform_device_register, .ap_reset = bcm2835_system_reset, .ap_delay = gtmr_delay, - .ap_uart_freq = bcm2837_platform_uart_freq, + .ap_uart_freq = bcm283x_platform_uart_freq, .ap_mpstart = arm_fdt_cpu_mpstart, }; @@ -1553,7 +1561,7 @@ static const struct arm_platform bcm2711 .ap_device_register = bcm283x_platform_device_register, .ap_reset = bcm2835_system_reset, .ap_delay = gtmr_delay, - .ap_uart_freq = bcm2837_platform_uart_freq, + .ap_uart_freq = bcm283x_platform_uart_freq, .ap_mpstart = arm_fdt_cpu_mpstart, };
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Wed Jan 1 13:54:32 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm283x_platform.c Log Message: Provide a single generic bcm283x_platform_uart_freq which checks for "brcm,bcm2835-aux-uart" and returns the appropriate core clock based results; otherwise it returns the uart clock from firmware. Should fix early console output on the rpi0w. Based on a diff from mlelstv To generate a diff of this commit: cvs rdiff -u -r1.33 -r1.34 src/sys/arch/arm/broadcom/bcm283x_platform.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Wed Jan 1 09:35:50 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm283x_platform.c Log Message: The DMA range doesn't cover all of memory on the bcm2711 (rpi4) - it covers (most of) the first 1GB. To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 src/sys/arch/arm/broadcom/bcm283x_platform.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/sys/arch/arm/broadcom/bcm283x_platform.c diff -u src/sys/arch/arm/broadcom/bcm283x_platform.c:1.32 src/sys/arch/arm/broadcom/bcm283x_platform.c:1.33 --- src/sys/arch/arm/broadcom/bcm283x_platform.c:1.32 Tue Dec 31 08:01:19 2019 +++ src/sys/arch/arm/broadcom/bcm283x_platform.c Wed Jan 1 09:35:50 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: bcm283x_platform.c,v 1.32 2019/12/31 08:01:19 skrll Exp $ */ +/* $NetBSD: bcm283x_platform.c,v 1.33 2020/01/01 09:35:50 skrll Exp $ */ /*- * Copyright (c) 2017 Jared D. McNeill @@ -27,7 +27,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.32 2019/12/31 08:01:19 skrll Exp $"); +__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.33 2020/01/01 09:35:50 skrll Exp $"); #include "opt_arm_debug.h" #include "opt_bcm283x.h" @@ -109,6 +109,7 @@ __KERNEL_RCSID(0, "$NetBSD: bcm283x_plat #endif #define RPI_CPU_MAX 4 +#define BCM2711_DMA_SIZE 0x3c00 void bcm2835_platform_early_putchar(char c); void bcm2836_platform_early_putchar(char c); @@ -1352,7 +1353,7 @@ bcm2711_platform_init_attach_args(struct bcm2835_bus_dma_tag._ranges = bcm2711_dma_ranges; bcm2835_bus_dma_tag._nranges = __arraycount(bcm2711_dma_ranges); - bcm2711_dma_ranges[0].dr_len = bcm283x_memorysize; + bcm2711_dma_ranges[0].dr_len = BCM2711_DMA_SIZE; } #endif
CVS commit: src/sys/arch/arm/broadcom
Module Name:src Committed By: skrll Date: Wed Jan 1 09:35:50 UTC 2020 Modified Files: src/sys/arch/arm/broadcom: bcm283x_platform.c Log Message: The DMA range doesn't cover all of memory on the bcm2711 (rpi4) - it covers (most of) the first 1GB. To generate a diff of this commit: cvs rdiff -u -r1.32 -r1.33 src/sys/arch/arm/broadcom/bcm283x_platform.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.