Module Name:    src
Committed By:   skrll
Date:           Tue Oct 30 16:41:53 UTC 2018

Modified Files:
        src/sys/arch/arm/acpi: acpi_platform.c
        src/sys/arch/arm/altera: cycv_platform.c
        src/sys/arch/arm/broadcom: bcm283x_platform.c
        src/sys/arch/arm/cavium: thunderx_platform.c
        src/sys/arch/arm/fdt: arm_fdtvar.h
        src/sys/arch/arm/nvidia: tegra_platform.c
        src/sys/arch/arm/rockchip: rk_platform.c
        src/sys/arch/arm/samsung: exynos_platform.c
        src/sys/arch/arm/sunxi: sunxi_platform.c
        src/sys/arch/arm/ti: ti_platform.c
        src/sys/arch/arm/vexpress: vexpress_platform.c
        src/sys/arch/arm/virt: virt_platform.c
        src/sys/arch/evbarm/fdt: fdt_machdep.c

Log Message:
Retire fdt_putchar and ap_early_put_char in favour of uartputc.


To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/acpi/acpi_platform.c
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/altera/cycv_platform.c
cvs rdiff -u -r1.21 -r1.22 src/sys/arch/arm/broadcom/bcm283x_platform.c
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/cavium/thunderx_platform.c
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/fdt/arm_fdtvar.h
cvs rdiff -u -r1.17 -r1.18 src/sys/arch/arm/nvidia/tegra_platform.c
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/rockchip/rk_platform.c
cvs rdiff -u -r1.19 -r1.20 src/sys/arch/arm/samsung/exynos_platform.c
cvs rdiff -u -r1.30 -r1.31 src/sys/arch/arm/sunxi/sunxi_platform.c
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/ti/ti_platform.c
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/vexpress/vexpress_platform.c
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/virt/virt_platform.c
cvs rdiff -u -r1.47 -r1.48 src/sys/arch/evbarm/fdt/fdt_machdep.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/acpi/acpi_platform.c
diff -u src/sys/arch/arm/acpi/acpi_platform.c:1.5 src/sys/arch/arm/acpi/acpi_platform.c:1.6
--- src/sys/arch/arm/acpi/acpi_platform.c:1.5	Sun Oct 28 10:21:42 2018
+++ src/sys/arch/arm/acpi/acpi_platform.c	Tue Oct 30 16:41:51 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: acpi_platform.c,v 1.5 2018/10/28 10:21:42 jmcneill Exp $ */
+/* $NetBSD: acpi_platform.c,v 1.6 2018/10/30 16:41:51 skrll Exp $ */
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
 #include "opt_efi.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi_platform.c,v 1.5 2018/10/28 10:21:42 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi_platform.c,v 1.6 2018/10/30 16:41:51 skrll Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -214,11 +214,6 @@ acpi_platform_init_attach_args(struct fd
 }
 
 static void
-acpi_platform_early_putchar(char c)
-{
-}
-
-static void
 acpi_platform_device_register(device_t self, void *aux)
 {
 }
@@ -245,7 +240,6 @@ static const struct arm_platform acpi_pl
 	.ap_bootstrap = acpi_platform_bootstrap,
 	.ap_startup = acpi_platform_startup,
 	.ap_init_attach_args = acpi_platform_init_attach_args,
-	.ap_early_putchar = acpi_platform_early_putchar,
 	.ap_device_register = acpi_platform_device_register,
 	.ap_reset = acpi_platform_reset,
 	.ap_delay = gtmr_delay,

Index: src/sys/arch/arm/altera/cycv_platform.c
diff -u src/sys/arch/arm/altera/cycv_platform.c:1.5 src/sys/arch/arm/altera/cycv_platform.c:1.6
--- src/sys/arch/arm/altera/cycv_platform.c:1.5	Sun Oct 28 14:58:20 2018
+++ src/sys/arch/arm/altera/cycv_platform.c	Tue Oct 30 16:41:52 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: cycv_platform.c,v 1.5 2018/10/28 14:58:20 aymeric Exp $ */
+/* $NetBSD: cycv_platform.c,v 1.6 2018/10/30 16:41:52 skrll Exp $ */
 
 /* This file is in the public domain. */
 
@@ -6,7 +6,7 @@
 #include "opt_multiprocessor.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cycv_platform.c,v 1.5 2018/10/28 14:58:20 aymeric Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cycv_platform.c,v 1.6 2018/10/30 16:41:52 skrll Exp $");
 
 #define	_ARM32_BUS_DMA_PRIVATE
 #include <sys/param.h>
@@ -30,7 +30,20 @@ __KERNEL_RCSID(0, "$NetBSD: cycv_platfor
 #include <arm/fdt/arm_fdtvar.h>
 #include <dev/fdt/fdtvar.h>
 
-static void cycv_platform_early_putchar(char);
+void cycv_platform_early_putchar(char);
+
+void
+cycv_platform_early_putchar(char c) {
+#ifdef CONSADDR
+#define CONSADDR_VA (CONSADDR - CYCV_PERIPHERAL_BASE + CYCV_PERIPHERAL_VBASE)
+	volatile uint32_t *uartaddr = (volatile uint32_t *) CONSADDR_VA;
+
+	while ((le32toh(uartaddr[com_lsr]) & LSR_TXRDY) == 0)
+		;
+
+	uartaddr[com_data] = htole32(c);
+#endif
+}
 
 static const struct pmap_devmap *
 cycv_platform_devmap(void) {
@@ -100,19 +113,6 @@ cycv_platform_init_attach_args(struct fd
 }
 
 static void
-cycv_platform_early_putchar(char c) {
-#ifdef CONSADDR
-#define CONSADDR_VA (CONSADDR - CYCV_PERIPHERAL_BASE + CYCV_PERIPHERAL_VBASE)
-	volatile uint32_t *uartaddr = (volatile uint32_t *) CONSADDR_VA;
-
-	while ((le32toh(uartaddr[com_lsr]) & LSR_TXRDY) == 0)
-		;
-
-	uartaddr[com_data] = htole32(c);
-#endif
-}
-
-static void
 cycv_platform_device_register(device_t dev, void *aux) {
 	prop_dictionary_t dict = device_properties(dev);
 
@@ -143,7 +143,6 @@ static const struct arm_platform cycv_pl
 	.ap_devmap = cycv_platform_devmap,
 	.ap_bootstrap = cycv_platform_bootstrap,
 	.ap_init_attach_args = cycv_platform_init_attach_args,
-	.ap_early_putchar = cycv_platform_early_putchar,
 	.ap_device_register = cycv_platform_device_register,
 	.ap_reset = cycv_platform_reset,
 	.ap_delay = a9tmr_delay,

Index: src/sys/arch/arm/broadcom/bcm283x_platform.c
diff -u src/sys/arch/arm/broadcom/bcm283x_platform.c:1.21 src/sys/arch/arm/broadcom/bcm283x_platform.c:1.22
--- src/sys/arch/arm/broadcom/bcm283x_platform.c:1.21	Sat Oct 20 05:53:22 2018
+++ src/sys/arch/arm/broadcom/bcm283x_platform.c	Tue Oct 30 16:41:52 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: bcm283x_platform.c,v 1.21 2018/10/20 05:53:22 ryo Exp $	*/
+/*	$NetBSD: bcm283x_platform.c,v 1.22 2018/10/30 16:41:52 skrll Exp $	*/
 
 /*-
  * Copyright (c) 2017 Jared D. McNeill <[email protected]>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.21 2018/10/20 05:53:22 ryo Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bcm283x_platform.c,v 1.22 2018/10/30 16:41:52 skrll Exp $");
 
 #include "opt_arm_debug.h"
 #include "opt_bcm283x.h"
@@ -110,7 +110,6 @@ __KERNEL_RCSID(0, "$NetBSD: bcm283x_plat
 
 #define RPI_CPU_MAX	4
 
-void bcm283x_platform_early_putchar(vaddr_t, paddr_t, char c);
 void bcm2835_platform_early_putchar(char c);
 void bcm2836_platform_early_putchar(char c);
 void bcm2837_platform_early_putchar(char c);
@@ -1221,7 +1220,7 @@ bcm2836_platform_init_attach_args(struct
 #endif
 
 
-void
+static void
 bcm283x_platform_early_putchar(vaddr_t va, paddr_t pa, char c)
 {
 	volatile uint32_t *uartaddr =
@@ -1350,7 +1349,6 @@ static const struct arm_platform bcm2835
 	.ap_devmap = bcm2835_platform_devmap,
 	.ap_bootstrap = bcm2835_platform_bootstrap,
 	.ap_init_attach_args = bcm2835_platform_init_attach_args,
-	.ap_early_putchar = bcm2835_platform_early_putchar,
 	.ap_device_register = bcm283x_platform_device_register,
 	.ap_reset = bcm2835_system_reset,
 	.ap_delay = bcm2835_tmr_delay,
@@ -1372,7 +1370,6 @@ static const struct arm_platform bcm2836
 	.ap_devmap = bcm2836_platform_devmap,
 	.ap_bootstrap = bcm2836_platform_bootstrap,
 	.ap_init_attach_args = bcm2836_platform_init_attach_args,
-	.ap_early_putchar = bcm2836_platform_early_putchar,
 	.ap_device_register = bcm283x_platform_device_register,
 	.ap_reset = bcm2835_system_reset,
 	.ap_delay = gtmr_delay,
@@ -1384,7 +1381,6 @@ static const struct arm_platform bcm2837
 	.ap_devmap = bcm2836_platform_devmap,
 	.ap_bootstrap = bcm2836_platform_bootstrap,
 	.ap_init_attach_args = bcm2836_platform_init_attach_args,
-	.ap_early_putchar = bcm2837_platform_early_putchar,
 	.ap_device_register = bcm283x_platform_device_register,
 	.ap_reset = bcm2835_system_reset,
 	.ap_delay = gtmr_delay,

Index: src/sys/arch/arm/cavium/thunderx_platform.c
diff -u src/sys/arch/arm/cavium/thunderx_platform.c:1.1 src/sys/arch/arm/cavium/thunderx_platform.c:1.2
--- src/sys/arch/arm/cavium/thunderx_platform.c:1.1	Wed Oct  3 09:24:36 2018
+++ src/sys/arch/arm/cavium/thunderx_platform.c	Tue Oct 30 16:41:52 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: thunderx_platform.c,v 1.1 2018/10/03 09:24:36 skrll Exp $	*/
+/*	$NetBSD: thunderx_platform.c,v 1.2 2018/10/30 16:41:52 skrll Exp $	*/
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
 #include "opt_multiprocessor.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: thunderx_platform.c,v 1.1 2018/10/03 09:24:36 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: thunderx_platform.c,v 1.2 2018/10/30 16:41:52 skrll Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -121,7 +121,6 @@ static const struct arm_platform thunder
 	.ap_devmap = thunderx_platform_devmap,
 	.ap_bootstrap = arm_fdt_cpu_bootstrap,
 	.ap_init_attach_args = thunderx_platform_init_attach_args,
-	.ap_early_putchar = thunderx_platform_early_putchar,
 	.ap_device_register = thunderx_platform_device_register,
 	.ap_reset = psci_fdt_reset,
 	.ap_delay = gtmr_delay,

Index: src/sys/arch/arm/fdt/arm_fdtvar.h
diff -u src/sys/arch/arm/fdt/arm_fdtvar.h:1.11 src/sys/arch/arm/fdt/arm_fdtvar.h:1.12
--- src/sys/arch/arm/fdt/arm_fdtvar.h:1.11	Thu Oct 18 09:01:52 2018
+++ src/sys/arch/arm/fdt/arm_fdtvar.h	Tue Oct 30 16:41:52 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: arm_fdtvar.h,v 1.11 2018/10/18 09:01:52 skrll Exp $ */
+/* $NetBSD: arm_fdtvar.h,v 1.12 2018/10/30 16:41:52 skrll Exp $ */
 
 /*-
  * Copyright (c) 2017 Jared D. McNeill <[email protected]>
@@ -41,7 +41,6 @@ struct arm_platform {
 	void			(*ap_mpstart)(void);
 	void			(*ap_startup)(void);
 	void			(*ap_init_attach_args)(struct fdt_attach_args *);
-	void			(*ap_early_putchar)(char);
 	void			(*ap_device_register)(device_t, void *);
 	void			(*ap_reset)(void);
 	void			(*ap_delay)(u_int);

Index: src/sys/arch/arm/nvidia/tegra_platform.c
diff -u src/sys/arch/arm/nvidia/tegra_platform.c:1.17 src/sys/arch/arm/nvidia/tegra_platform.c:1.18
--- src/sys/arch/arm/nvidia/tegra_platform.c:1.17	Thu Oct 18 09:01:53 2018
+++ src/sys/arch/arm/nvidia/tegra_platform.c	Tue Oct 30 16:41:52 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: tegra_platform.c,v 1.17 2018/10/18 09:01:53 skrll Exp $ */
+/* $NetBSD: tegra_platform.c,v 1.18 2018/10/30 16:41:52 skrll Exp $ */
 
 /*-
  * Copyright (c) 2017 Jared D. McNeill <[email protected]>
@@ -34,7 +34,7 @@
 #include "ukbd.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tegra_platform.c,v 1.17 2018/10/18 09:01:53 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tegra_platform.c,v 1.18 2018/10/30 16:41:52 skrll Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -69,6 +69,23 @@ __KERNEL_RCSID(0, "$NetBSD: tegra_platfo
 
 void tegra_platform_early_putchar(char);
 
+void
+tegra_platform_early_putchar(char c)
+{
+#ifdef CONSADDR
+#define CONSADDR_VA	(CONSADDR - TEGRA_APB_BASE + TEGRA_APB_VBASE)
+
+	volatile uint32_t *uartaddr = cpu_earlydevice_va_p() ?
+	    (volatile uint32_t *)CONSADDR_VA :
+	    (volatile uint32_t *)CONSADDR;
+
+	while ((uartaddr[com_lsr] & LSR_TXRDY) == 0)
+		;
+
+	uartaddr[com_data] = c;
+#endif
+}
+
 static const struct pmap_devmap *
 tegra_platform_devmap(void)
 {
@@ -133,23 +150,6 @@ tegra_platform_init_attach_args(struct f
 	faa->faa_dmat = &arm_generic_dma_tag;
 }
 
-void
-tegra_platform_early_putchar(char c)
-{
-#ifdef CONSADDR
-#define CONSADDR_VA	(CONSADDR - TEGRA_APB_BASE + TEGRA_APB_VBASE)
-
-	volatile uint32_t *uartaddr = cpu_earlydevice_va_p() ?
-	    (volatile uint32_t *)CONSADDR_VA :
-	    (volatile uint32_t *)CONSADDR;
-
-	while ((uartaddr[com_lsr] & LSR_TXRDY) == 0)
-		;
-
-	uartaddr[com_data] = c;
-#endif
-}
-
 static void
 tegra_platform_device_register(device_t self, void *aux)
 {
@@ -223,7 +223,6 @@ static const struct arm_platform tegra12
 	.ap_devmap = tegra_platform_devmap,
 	.ap_bootstrap = tegra124_platform_bootstrap,
 	.ap_init_attach_args = tegra_platform_init_attach_args,
-	.ap_early_putchar = tegra_platform_early_putchar,
 	.ap_device_register = tegra_platform_device_register,
 	.ap_reset = tegra_platform_reset,
 	.ap_delay = tegra_platform_delay,
@@ -239,7 +238,6 @@ static const struct arm_platform tegra21
 	.ap_devmap = tegra_platform_devmap,
 	.ap_bootstrap = tegra210_platform_bootstrap,
 	.ap_init_attach_args = tegra_platform_init_attach_args,
-	.ap_early_putchar = tegra_platform_early_putchar,
 	.ap_device_register = tegra_platform_device_register,
 	.ap_reset = tegra_platform_reset,
 	.ap_delay = tegra_platform_delay,

Index: src/sys/arch/arm/rockchip/rk_platform.c
diff -u src/sys/arch/arm/rockchip/rk_platform.c:1.7 src/sys/arch/arm/rockchip/rk_platform.c:1.8
--- src/sys/arch/arm/rockchip/rk_platform.c:1.7	Sat Oct 20 05:38:27 2018
+++ src/sys/arch/arm/rockchip/rk_platform.c	Tue Oct 30 16:41:52 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: rk_platform.c,v 1.7 2018/10/20 05:38:27 ryo Exp $ */
+/* $NetBSD: rk_platform.c,v 1.8 2018/10/30 16:41:52 skrll Exp $ */
 
 /*-
  * Copyright (c) 2018 Jared McNeill <[email protected]>
@@ -31,7 +31,7 @@
 #include "opt_console.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rk_platform.c,v 1.7 2018/10/20 05:38:27 ryo Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rk_platform.c,v 1.8 2018/10/30 16:41:52 skrll Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -148,7 +148,6 @@ static const struct arm_platform rk3328_
 	.ap_devmap = rk3328_platform_devmap,
 	.ap_bootstrap = rk_platform_bootstrap,
 	.ap_init_attach_args = rk_platform_init_attach_args,
-	.ap_early_putchar = rk3328_platform_early_putchar,
 	.ap_device_register = rk_platform_device_register,
 	.ap_reset = psci_fdt_reset,
 	.ap_delay = gtmr_delay,
@@ -207,7 +206,6 @@ static const struct arm_platform rk3399_
 	.ap_devmap = rk3399_platform_devmap,
 	.ap_bootstrap = rk_platform_bootstrap,
 	.ap_init_attach_args = rk_platform_init_attach_args,
-	.ap_early_putchar = rk3399_platform_early_putchar,
 	.ap_device_register = rk_platform_device_register,
 	.ap_reset = psci_fdt_reset,
 	.ap_delay = gtmr_delay,

Index: src/sys/arch/arm/samsung/exynos_platform.c
diff -u src/sys/arch/arm/samsung/exynos_platform.c:1.19 src/sys/arch/arm/samsung/exynos_platform.c:1.20
--- src/sys/arch/arm/samsung/exynos_platform.c:1.19	Thu Oct 18 09:01:53 2018
+++ src/sys/arch/arm/samsung/exynos_platform.c	Tue Oct 30 16:41:52 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: exynos_platform.c,v 1.19 2018/10/18 09:01:53 skrll Exp $ */
+/* $NetBSD: exynos_platform.c,v 1.20 2018/10/30 16:41:52 skrll Exp $ */
 
 /*-
  * Copyright (c) 2017 Jared D. McNeill <[email protected]>
@@ -35,7 +35,7 @@
 #include "ukbd.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: exynos_platform.c,v 1.19 2018/10/18 09:01:53 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: exynos_platform.c,v 1.20 2018/10/30 16:41:52 skrll Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -227,7 +227,6 @@ static const struct arm_platform exynos4
 //	.ap_mpstart = exynos4_mpstart,
 	.ap_bootstrap = exynos4_platform_bootstrap,
 	.ap_init_attach_args = exynos_platform_init_attach_args,
-	.ap_early_putchar = exynos_platform_early_putchar,
 	.ap_device_register = exynos_platform_device_register,
 	.ap_reset = exynos5_platform_reset,
 	.ap_delay = mct_delay,
@@ -272,7 +271,6 @@ static const struct arm_platform exynos5
 	.ap_bootstrap = exynos5_platform_bootstrap,
 	.ap_mpstart = exynos_platform_mpstart,
 	.ap_init_attach_args = exynos_platform_init_attach_args,
-	.ap_early_putchar = exynos_platform_early_putchar,
 	.ap_device_register = exynos_platform_device_register,
 	.ap_reset = exynos5_platform_reset,
 	.ap_delay = mct_delay,

Index: src/sys/arch/arm/sunxi/sunxi_platform.c
diff -u src/sys/arch/arm/sunxi/sunxi_platform.c:1.30 src/sys/arch/arm/sunxi/sunxi_platform.c:1.31
--- src/sys/arch/arm/sunxi/sunxi_platform.c:1.30	Sun Oct 28 13:56:21 2018
+++ src/sys/arch/arm/sunxi/sunxi_platform.c	Tue Oct 30 16:41:52 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: sunxi_platform.c,v 1.30 2018/10/28 13:56:21 skrll Exp $ */
+/* $NetBSD: sunxi_platform.c,v 1.31 2018/10/30 16:41:52 skrll Exp $ */
 
 /*-
  * Copyright (c) 2017 Jared McNeill <[email protected]>
@@ -31,7 +31,7 @@
 #include "opt_console.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sunxi_platform.c,v 1.30 2018/10/28 13:56:21 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sunxi_platform.c,v 1.31 2018/10/30 16:41:52 skrll Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -300,7 +300,6 @@ static const struct arm_platform sun4i_p
 	.ap_devmap = sunxi_platform_devmap,
 	.ap_bootstrap = sunxi_platform_bootstrap,
 	.ap_init_attach_args = sunxi_platform_init_attach_args,
-	.ap_early_putchar = sunxi_platform_early_putchar,
 	.ap_device_register = sunxi_platform_device_register,
 	.ap_reset = sun4i_platform_reset,
 	.ap_delay = sun4i_platform_delay,
@@ -313,7 +312,6 @@ static const struct arm_platform sun5i_p
 	.ap_devmap = sunxi_platform_devmap,
 	.ap_bootstrap = sunxi_platform_bootstrap,
 	.ap_init_attach_args = sunxi_platform_init_attach_args,
-	.ap_early_putchar = sunxi_platform_early_putchar,
 	.ap_device_register = sunxi_platform_device_register,
 	.ap_reset = sun4i_platform_reset,
 	.ap_delay = sun4i_platform_delay,
@@ -327,7 +325,6 @@ static const struct arm_platform sun6i_p
 	.ap_devmap = sunxi_platform_devmap,
 	.ap_bootstrap = sunxi_platform_bootstrap,
 	.ap_init_attach_args = sunxi_platform_init_attach_args,
-	.ap_early_putchar = sunxi_platform_early_putchar,
 	.ap_device_register = sunxi_platform_device_register,
 	.ap_reset = sun6i_platform_reset,
 	.ap_delay = gtmr_delay,
@@ -341,7 +338,6 @@ static const struct arm_platform sun7i_p
 	.ap_devmap = sunxi_platform_devmap,
 	.ap_bootstrap = sunxi_platform_bootstrap,
 	.ap_init_attach_args = sunxi_platform_init_attach_args,
-	.ap_early_putchar = sunxi_platform_early_putchar,
 	.ap_device_register = sunxi_platform_device_register,
 	.ap_reset = sun4i_platform_reset,
 	.ap_delay = sun4i_platform_delay,
@@ -355,7 +351,6 @@ static const struct arm_platform sun8i_p
 	.ap_devmap = sunxi_platform_devmap,
 	.ap_bootstrap = sunxi_platform_bootstrap,
 	.ap_init_attach_args = sunxi_platform_init_attach_args,
-	.ap_early_putchar = sunxi_platform_early_putchar,
 	.ap_device_register = sunxi_platform_device_register,
 	.ap_reset = sun6i_platform_reset,
 	.ap_delay = gtmr_delay,
@@ -371,7 +366,6 @@ static const struct arm_platform sun9i_p
 	.ap_devmap = sunxi_platform_devmap,
 	.ap_bootstrap = sunxi_platform_bootstrap,
 	.ap_init_attach_args = sunxi_platform_init_attach_args,
-	.ap_early_putchar = sunxi_platform_early_putchar,
 	.ap_device_register = sunxi_platform_device_register,
 	.ap_reset = sun9i_platform_reset,
 	.ap_delay = gtmr_delay,
@@ -385,7 +379,6 @@ static const struct arm_platform sun50i_
 	.ap_devmap = sunxi_platform_devmap,
 	.ap_bootstrap = sunxi_platform_bootstrap,
 	.ap_init_attach_args = sunxi_platform_init_attach_args,
-	.ap_early_putchar = sunxi_platform_early_putchar,
 	.ap_device_register = sunxi_platform_device_register,
 	.ap_reset = sun6i_platform_reset,
 	.ap_delay = gtmr_delay,
@@ -400,7 +393,6 @@ static const struct arm_platform sun50i_
 	.ap_devmap = sunxi_platform_devmap,
 	.ap_bootstrap = sunxi_platform_bootstrap,
 	.ap_init_attach_args = sunxi_platform_init_attach_args,
-	.ap_early_putchar = sunxi_platform_early_putchar,
 	.ap_device_register = sunxi_platform_device_register,
 	.ap_reset = sun50i_h6_platform_reset,
 	.ap_delay = gtmr_delay,

Index: src/sys/arch/arm/ti/ti_platform.c
diff -u src/sys/arch/arm/ti/ti_platform.c:1.5 src/sys/arch/arm/ti/ti_platform.c:1.6
--- src/sys/arch/arm/ti/ti_platform.c:1.5	Fri Sep 21 12:04:07 2018
+++ src/sys/arch/arm/ti/ti_platform.c	Tue Oct 30 16:41:52 2018
@@ -1,9 +1,9 @@
-/* $NetBSD: ti_platform.c,v 1.5 2018/09/21 12:04:07 skrll Exp $ */
+/* $NetBSD: ti_platform.c,v 1.6 2018/10/30 16:41:52 skrll Exp $ */
 
 #include "opt_console.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ti_platform.c,v 1.5 2018/09/21 12:04:07 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ti_platform.c,v 1.6 2018/10/30 16:41:52 skrll Exp $");
 
 #include <sys/param.h>
 
@@ -18,6 +18,23 @@ extern struct bus_space armv7_generic_bs
 extern struct bus_space armv7_generic_a4x_bs_tag;
 extern struct arm32_bus_dma_tag arm_generic_dma_tag;
 
+void am33xx_platform_early_putchar(char);
+
+void
+am33xx_platform_early_putchar(char c)
+{
+#ifdef CONSADDR
+#define CONSADDR_VA ((CONSADDR - 0x44c00000) + 0xe4c00000)
+	volatile uint32_t *uartaddr = (volatile uint32_t *)CONSADDR_VA;
+
+	while ((le32toh(uartaddr[com_lsr]) & LSR_TXRDY) == 0)
+		;
+
+	uartaddr[com_data] = htole32(c);
+#endif
+}
+
+
 static const struct pmap_devmap *
 am33xx_platform_devmap(void)
 {
@@ -40,20 +57,6 @@ am33xx_platform_init_attach_args(struct 
 }
 
 static void
-am33xx_platform_early_putchar(char c)
-{
-#ifdef CONSADDR
-#define CONSADDR_VA ((CONSADDR - 0x44c00000) + 0xe4c00000)
-	volatile uint32_t *uartaddr = (volatile uint32_t *)CONSADDR_VA;
-
-	while ((le32toh(uartaddr[com_lsr]) & LSR_TXRDY) == 0)
-		;
-
-	uartaddr[com_data] = htole32(c);
-#endif
-}
-
-static void
 wdelay(bus_space_tag_t bst, bus_space_handle_t bsh)
 {
 	while (bus_space_read_4(bst, bsh, 0x34) != 0)
@@ -126,7 +129,6 @@ am33xx_platform_delay(u_int n)
 static const struct arm_platform am33xx_platform = {
 	.ap_devmap = am33xx_platform_devmap,
 	.ap_init_attach_args = am33xx_platform_init_attach_args,
-	.ap_early_putchar = am33xx_platform_early_putchar,
 	.ap_bootstrap = am33xx_platform_bootstrap,
 	.ap_uart_freq = am33xx_platform_uart_freq,
 	.ap_delay = am33xx_platform_delay,

Index: src/sys/arch/arm/vexpress/vexpress_platform.c
diff -u src/sys/arch/arm/vexpress/vexpress_platform.c:1.11 src/sys/arch/arm/vexpress/vexpress_platform.c:1.12
--- src/sys/arch/arm/vexpress/vexpress_platform.c:1.11	Thu Oct 18 09:01:53 2018
+++ src/sys/arch/arm/vexpress/vexpress_platform.c	Tue Oct 30 16:41:52 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: vexpress_platform.c,v 1.11 2018/10/18 09:01:53 skrll Exp $ */
+/* $NetBSD: vexpress_platform.c,v 1.12 2018/10/30 16:41:52 skrll Exp $ */
 
 /*-
  * Copyright (c) 2017 Jared McNeill <[email protected]>
@@ -30,7 +30,7 @@
 #include "opt_console.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vexpress_platform.c,v 1.11 2018/10/18 09:01:53 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vexpress_platform.c,v 1.12 2018/10/30 16:41:52 skrll Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -94,6 +94,27 @@ static bus_space_handle_t sysreg_bsh;
 
 void vexpress_platform_early_putchar(char);
 
+void
+vexpress_platform_early_putchar(char c)
+{
+#ifdef CONSADDR
+#define CONSADDR_VA ((CONSADDR - VEXPRESS_CORE_PBASE) + VEXPRESS_CORE_VBASE)
+	volatile uint32_t *uartaddr = cpu_earlydevice_va_p() ?
+	    (volatile uint32_t *)CONSADDR_VA :
+	    (volatile uint32_t *)CONSADDR;
+
+	while ((le32toh(uartaddr[PL01XCOM_FR / 4]) & PL01X_FR_TXFF) != 0)
+		continue;
+
+	uartaddr[PL01XCOM_DR / 4] = htole32(c);
+	arm_dsb();
+
+	while ((le32toh(uartaddr[PL01XCOM_FR / 4]) & PL01X_FR_TXFE) == 0)
+		continue;
+#endif
+}
+
+
 static void
 vexpress_a15_smp_init(void)
 {
@@ -178,26 +199,6 @@ vexpress_platform_init_attach_args(struc
 	faa->faa_dmat = &arm_generic_dma_tag;
 }
 
-void
-vexpress_platform_early_putchar(char c)
-{
-#ifdef CONSADDR
-#define CONSADDR_VA ((CONSADDR - VEXPRESS_CORE_PBASE) + VEXPRESS_CORE_VBASE)
-	volatile uint32_t *uartaddr = cpu_earlydevice_va_p() ?
-	    (volatile uint32_t *)CONSADDR_VA :
-	    (volatile uint32_t *)CONSADDR;
-
-	while ((le32toh(uartaddr[PL01XCOM_FR / 4]) & PL01X_FR_TXFF) != 0)
-		continue;
-
-	uartaddr[PL01XCOM_DR / 4] = htole32(c);
-	arm_dsb();
-
-	while ((le32toh(uartaddr[PL01XCOM_FR / 4]) & PL01X_FR_TXFE) == 0)
-		continue;
-#endif
-}
-
 static void
 vexpress_platform_device_register(device_t self, void *aux)
 {
@@ -226,7 +227,6 @@ static const struct arm_platform vexpres
 	.ap_bootstrap = vexpress_platform_bootstrap,
 	.ap_mpstart = vexpress_a15_smp_init,
 	.ap_init_attach_args = vexpress_platform_init_attach_args,
-	.ap_early_putchar = vexpress_platform_early_putchar,
 	.ap_device_register = vexpress_platform_device_register,
 	.ap_reset = vexpress_platform_reset,
 	.ap_delay = gtmr_delay,

Index: src/sys/arch/arm/virt/virt_platform.c
diff -u src/sys/arch/arm/virt/virt_platform.c:1.8 src/sys/arch/arm/virt/virt_platform.c:1.9
--- src/sys/arch/arm/virt/virt_platform.c:1.8	Thu Oct 18 09:01:53 2018
+++ src/sys/arch/arm/virt/virt_platform.c	Tue Oct 30 16:41:52 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: virt_platform.c,v 1.8 2018/10/18 09:01:53 skrll Exp $ */
+/* $NetBSD: virt_platform.c,v 1.9 2018/10/30 16:41:52 skrll Exp $ */
 
 /*-
  * Copyright (c) 2018 Jared McNeill <[email protected]>
@@ -30,7 +30,7 @@
 #include "opt_multiprocessor.h"
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: virt_platform.c,v 1.8 2018/10/18 09:01:53 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: virt_platform.c,v 1.9 2018/10/30 16:41:52 skrll Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -62,6 +62,25 @@ __KERNEL_RCSID(0, "$NetBSD: virt_platfor
 
 #define	VIRT_UART_BASE	0x09000000
 
+void virt_platform_early_putchar(char);
+
+void
+virt_platform_early_putchar(char c)
+{
+	volatile uint32_t *uartaddr = cpu_earlydevice_va_p() ?
+		(volatile uint32_t *)VIRT_CORE_PTOV(VIRT_UART_BASE) :
+		(volatile uint32_t *)VIRT_UART_BASE;
+
+	while ((le32toh(uartaddr[PL01XCOM_FR / 4]) & PL01X_FR_TXFF) != 0)
+		continue;
+
+	uartaddr[PL01XCOM_DR / 4] = htole32(c);
+	arm_dsb();
+
+	while ((le32toh(uartaddr[PL01XCOM_FR / 4]) & PL01X_FR_TXFE) == 0)
+		continue;
+}
+
 static const struct pmap_devmap *
 virt_platform_devmap(void)
 {
@@ -87,25 +106,6 @@ virt_platform_init_attach_args(struct fd
 	faa->faa_dmat = &arm_generic_dma_tag;
 }
 
-void virt_platform_early_putchar(char);
-
-void
-virt_platform_early_putchar(char c)
-{
-	volatile uint32_t *uartaddr = cpu_earlydevice_va_p() ?
-		(volatile uint32_t *)VIRT_CORE_PTOV(VIRT_UART_BASE) :
-		(volatile uint32_t *)VIRT_UART_BASE;
-
-	while ((le32toh(uartaddr[PL01XCOM_FR / 4]) & PL01X_FR_TXFF) != 0)
-		continue;
-
-	uartaddr[PL01XCOM_DR / 4] = htole32(c);
-	arm_dsb();
-
-	while ((le32toh(uartaddr[PL01XCOM_FR / 4]) & PL01X_FR_TXFE) == 0)
-		continue;
-}
-
 static void
 virt_platform_device_register(device_t self, void *aux)
 {
@@ -121,7 +121,6 @@ static const struct arm_platform virt_pl
 	.ap_devmap = virt_platform_devmap,
 	.ap_bootstrap = arm_fdt_cpu_bootstrap,
 	.ap_init_attach_args = virt_platform_init_attach_args,
-	.ap_early_putchar = virt_platform_early_putchar,
 	.ap_device_register = virt_platform_device_register,
 	.ap_reset = psci_fdt_reset,
 	.ap_delay = gtmr_delay,

Index: src/sys/arch/evbarm/fdt/fdt_machdep.c
diff -u src/sys/arch/evbarm/fdt/fdt_machdep.c:1.47 src/sys/arch/evbarm/fdt/fdt_machdep.c:1.48
--- src/sys/arch/evbarm/fdt/fdt_machdep.c:1.47	Mon Oct 29 21:05:58 2018
+++ src/sys/arch/evbarm/fdt/fdt_machdep.c	Tue Oct 30 16:41:53 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: fdt_machdep.c,v 1.47 2018/10/29 21:05:58 jmcneill Exp $ */
+/* $NetBSD: fdt_machdep.c,v 1.48 2018/10/30 16:41:53 skrll Exp $ */
 
 /*-
  * Copyright (c) 2015-2017 Jared McNeill <[email protected]>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fdt_machdep.c,v 1.47 2018/10/29 21:05:58 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fdt_machdep.c,v 1.48 2018/10/30 16:41:53 skrll Exp $");
 
 #include "opt_machdep.h"
 #include "opt_bootconfig.h"
@@ -140,22 +140,9 @@ static struct consdev earlycons = {
 };
 
 static void
-fdt_putchar(char c)
-{
-#ifdef EARLYCONS
-	const struct arm_platform *plat = arm_fdt_platform();
-	if (plat && plat->ap_early_putchar) {
-		plat->ap_early_putchar(c);
-	} else {
-		uartputc(c);
-	}
-#endif
-}
-
-static void
 earlyconsputc(dev_t dev, int c)
 {
-	fdt_putchar(c);
+	uartputc(c);
 }
 
 static int

Reply via email to