CVS commit: src/sys/arch/arm/broadcom

2024-06-10 Thread Michael van Elst
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

2024-06-10 Thread Michael van Elst
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

2024-02-16 Thread Nick Hudson
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

2024-02-16 Thread Nick Hudson
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

2024-02-16 Thread Nick Hudson
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

2024-02-16 Thread Nick Hudson
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

2024-02-16 Thread Nick Hudson
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

2024-02-16 Thread Nick Hudson
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

2024-02-16 Thread Nick Hudson
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

2024-02-16 Thread Nick Hudson
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

2023-12-11 Thread Michael van Elst
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

2023-12-11 Thread Michael van Elst
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

2023-09-03 Thread Tobias Nygren
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

2023-09-03 Thread Tobias Nygren
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

2023-04-30 Thread Michael van Elst
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

2023-04-30 Thread Michael van Elst
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

2022-11-19 Thread YAMAMOTO Takashi
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

2022-11-19 Thread YAMAMOTO Takashi
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

2022-09-17 Thread Jason R Thorpe
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

2022-09-17 Thread Jason R Thorpe
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

2022-05-07 Thread Nick Hudson
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

2022-05-07 Thread Nick Hudson
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

2022-04-22 Thread Nick Hudson
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

2022-04-22 Thread Nick Hudson
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

2021-09-11 Thread Nathanial Sloss
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

2021-09-11 Thread Nathanial Sloss
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

2021-09-01 Thread Jared D. McNeill
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

2021-09-01 Thread Jared D. McNeill
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

2021-08-31 Thread Rin Okuyama
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

2021-08-31 Thread Rin Okuyama
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

2021-08-08 Thread Jared D. McNeill
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

2021-08-08 Thread Jared D. McNeill
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

2021-08-08 Thread Jared D. McNeill
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

2021-08-08 Thread Jared D. McNeill
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

2021-08-08 Thread Jared D. McNeill
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

2021-08-08 Thread Jared D. McNeill
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

2021-08-08 Thread Jared D. McNeill
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

2021-08-08 Thread Jared D. McNeill
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

2021-05-03 Thread Tobias Nygren
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

2021-05-03 Thread Tobias Nygren
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

2021-03-10 Thread Michael van Elst
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

2021-03-10 Thread Michael van Elst
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

2021-03-08 Thread Michael van Elst
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

2021-03-08 Thread Michael van Elst
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

2021-03-08 Thread Michael van Elst
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

2021-03-08 Thread Michael van Elst
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

2021-03-08 Thread Michael van Elst
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

2021-03-08 Thread Michael van Elst
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

2021-03-08 Thread Michael van Elst
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

2021-03-08 Thread Michael van Elst
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

2021-01-29 Thread Nick Hudson
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

2021-01-29 Thread Nick Hudson
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

2021-01-27 Thread Nia Alarie
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

2021-01-27 Thread Nia Alarie
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

2021-01-23 Thread Nia Alarie
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

2021-01-23 Thread Nia Alarie
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

2020-12-22 Thread Jason R Thorpe
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

2020-12-22 Thread Jason R Thorpe
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

2020-11-30 Thread Rin Okuyama
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

2020-11-30 Thread Rin Okuyama
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

2020-11-30 Thread Rin Okuyama
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

2020-11-30 Thread Rin Okuyama
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

2020-11-30 Thread Rin Okuyama
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

2020-11-30 Thread Rin Okuyama
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

2020-11-22 Thread Rin Okuyama
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

2020-11-22 Thread Rin Okuyama
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

2020-11-22 Thread Rin Okuyama
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

2020-11-22 Thread Rin Okuyama
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

2020-09-30 Thread Jared D. McNeill
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

2020-09-30 Thread Jared D. McNeill
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

2020-08-28 Thread Nick Hudson
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

2020-08-28 Thread Nick Hudson
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

2020-06-26 Thread Nick Hudson
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

2020-06-26 Thread Nick Hudson
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

2020-06-21 Thread Nick Hudson
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

2020-06-21 Thread Nick Hudson
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

2020-05-31 Thread Jason R Thorpe
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

2020-05-31 Thread Jason R Thorpe
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

2020-03-31 Thread Jared D. McNeill
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

2020-03-31 Thread Jared D. McNeill
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

2020-02-22 Thread Jared D. McNeill
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

2020-02-22 Thread Jared D. McNeill
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

2020-02-21 Thread Jared D. McNeill
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

2020-02-21 Thread Jared D. McNeill
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

2020-02-19 Thread Jared D. McNeill
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

2020-02-19 Thread Jared D. McNeill
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

2020-02-19 Thread Jared D. McNeill
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

2020-02-19 Thread Jared D. McNeill
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

2020-02-03 Thread Nick Hudson
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

2020-02-03 Thread Nick Hudson
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

2020-01-22 Thread Michael van Elst
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

2020-01-22 Thread Michael van Elst
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

2020-01-19 Thread matthew green
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

2020-01-19 Thread matthew green
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

2020-01-19 Thread Nick Hudson
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

2020-01-19 Thread Nick Hudson
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

2020-01-01 Thread Nick Hudson
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

2020-01-01 Thread Nick Hudson
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

2020-01-01 Thread Nick Hudson
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

2020-01-01 Thread Nick Hudson
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.



  1   2   3   4   5   6   7   >