Attach com(4) using fdt on octeon.
authorvisa <visa@openbsd.org>
Mon, 3 Jul 2017 08:17:20 +0000 (08:17 +0000)
committervisa <visa@openbsd.org>
Mon, 3 Jul 2017 08:17:20 +0000 (08:17 +0000)
The relevant part of uartbus(4) is made part of the com(4) glue
to avoid extra maneuvers in the code.

sys/arch/octeon/conf/GENERIC
sys/arch/octeon/conf/RAMDISK
sys/arch/octeon/conf/files.octeon
sys/arch/octeon/dev/cn30xxuart.c
sys/arch/octeon/dev/mainbus.c
sys/arch/octeon/dev/octeon_uartbus.c [deleted file]
sys/arch/octeon/dev/uartbusvar.h [deleted file]
sys/arch/octeon/include/autoconf.h
sys/arch/octeon/octeon/machdep.c

index 10890ef..cec4638 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: GENERIC,v 1.33 2017/06/18 13:58:44 visa Exp $
+#      $OpenBSD: GENERIC,v 1.34 2017/07/03 08:17:20 visa Exp $
 #
 # For further information on compiling OpenBSD kernels, see the config(8)
 # man page.
@@ -31,7 +31,6 @@ mainbus0      at root
 cpu0           at mainbus0
 clock0         at mainbus0
 iobus0         at mainbus0
-uartbus0       at mainbus0
 
 simplebus*     at fdt?
 simplebus*     at iobus?
@@ -42,9 +41,6 @@ octcf0                at iobus0
 amdcf0         at iobus0
 octrng0                at iobus0
 
-com0           at uartbus0
-com1           at uartbus0
-
 pcibus*                at iobus0
 pci*           at pcibus?
 
@@ -52,6 +48,7 @@ ppb*          at pci?         # PCI-PCI bridges
 pci*           at ppb?
 
 cn30xxsmi*     at fdt?         # MDIO controller
+com*           at fdt?
 octciu*                at fdt?         # Interrupt controller v1
 octmmc*                at fdt?         # MMC host controller
 sdmmc*         at octmmc?      # SD/MMC bus
index 3b10b89..0e9d641 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: RAMDISK,v 1.31 2017/06/18 13:58:44 visa Exp $
+#      $OpenBSD: RAMDISK,v 1.32 2017/07/03 08:17:20 visa Exp $
 
 machine                octeon mips64
 maxusers       4
@@ -37,9 +37,6 @@ clock0                at mainbus0
 iobus0         at mainbus0
 octcf0         at iobus0
 amdcf0         at iobus0
-uartbus0       at mainbus0
-com0           at uartbus0
-com1           at uartbus0
 
 simplebus*     at fdt?
 simplebus*     at iobus?
@@ -52,6 +49,7 @@ ppb*          at pci?
 pci*           at ppb?
 
 cn30xxsmi*     at fdt?         # MDIO controller
+com*           at fdt?
 octciu*                at fdt?         # Interrupt controller v1
 octmmc*                at fdt?         # MMC host controller
 sdmmc*         at octmmc?      # SD/MMC bus
index b49f615..d8d5219 100644 (file)
@@ -1,4 +1,4 @@
-#      $OpenBSD: files.octeon,v 1.37 2017/06/18 13:58:44 visa Exp $
+#      $OpenBSD: files.octeon,v 1.38 2017/07/03 08:17:20 visa Exp $
 
 # Standard stanzas config(8) can't run without
 maxpartitions 16
@@ -115,12 +115,7 @@ device     cnmac: ether, ifnet, mii, ifmedia
 attach cnmac at cn30xxgmx
 file   arch/octeon/dev/if_cnmac.c                      cnmac
 
-define uartbus {[base = -1]}
-device uartbus
-attach uartbus at mainbus
-file   arch/octeon/dev/octeon_uartbus.c                uartbus
-
-attach com at uartbus with cn30xxuart
+attach com at fdt with cn30xxuart
 file   arch/octeon/dev/cn30xxuart.c                    cn30xxuart
 
 device pcibus
index a8b198a..a658f59 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: cn30xxuart.c,v 1.9 2016/04/14 13:51:58 visa Exp $     */
+/*     $OpenBSD: cn30xxuart.c,v 1.10 2017/07/03 08:17:20 visa Exp $    */
 
 /*
  * Copyright (c) 2001-2004 Opsycon AB  (www.opsycon.se / www.opsycon.com)
 #include <sys/tty.h>
 #include <sys/conf.h>
 
+#include <dev/ofw/fdt.h>
+#include <dev/ofw/openfirm.h>
+
+#include <machine/octeonreg.h>
 #include <machine/octeonvar.h>
 #include <machine/autoconf.h>
 #include <machine/bus.h>
+#include <machine/fdt.h>
 
 #include <dev/ic/comreg.h>
 #include <dev/ic/comvar.h>
 #include <dev/cons.h>
 
 #include <octeon/dev/iobusvar.h>
-#include <octeon/dev/uartbusvar.h>
 #include <octeon/dev/cn30xxuartreg.h>
 
 #define OCTEON_UART_FIFO_SIZE          64
@@ -65,76 +69,78 @@ static int delay_changed = 1;
 int cn30xxuart_delay(void);
 void cn30xxuart_wait_txhr_empty(int);
 
+uint8_t         uartbus_read_1(bus_space_tag_t, bus_space_handle_t, bus_size_t);
+void    uartbus_write_1(bus_space_tag_t, bus_space_handle_t, bus_size_t,
+           uint8_t);
+
+bus_space_t uartbus_tag = {
+       .bus_base = PHYS_TO_XKPHYS(0, CCA_NC),
+       .bus_private = NULL,
+       ._space_read_1 = uartbus_read_1,
+       ._space_write_1 = uartbus_write_1,
+       ._space_map = iobus_space_map,
+       ._space_unmap = iobus_space_unmap
+};
+
+void
+com_fdt_init_cons(void)
+{
+       comconsiot = &uartbus_tag;
+       comconsaddr = OCTEON_UART0_BASE;
+       comconsfreq = octeon_ioclock_speed();
+       comconsrate = B115200;
+       comconscflag = (TTYDEF_CFLAG & ~(CSIZE | PARENB)) | CS8;
+}
+
 int
 cn30xxuart_probe(struct device *parent, void *match, void *aux)
 {
-       struct cfdata *cf = match;
-       struct uartbus_attach_args *uba = aux;
-       bus_space_tag_t iot = uba->uba_memt;
-       bus_space_handle_t ioh;
-       int rv = 0, console;
-
-       if (strcmp(uba->uba_name, com_cd.cd_name) != 0)
-               return 0;
-
-       console = 1;
-
-       /* if it's in use as console, it's there. */
-       if (!(console && !comconsattached)) {
-               if (bus_space_map(iot, uba->uba_baseaddr, COM_NPORTS, 0, &ioh)) {
-                       printf(": can't map uart registers\n");
-                       return 1;
-               }
-               rv = comprobe1(iot, ioh);
-       } else
-               rv = 1;
-
-       /* make a config stanza with exact locators match over a generic line */
-       if (cf->cf_loc[0] != -1)
-               rv += rv;
+       struct fdt_attach_args *faa = aux;
 
-       return rv;
+       return OF_is_compatible(faa->fa_node, "cavium,octeon-3860-uart");
 }
 
 void
 cn30xxuart_attach(struct device *parent, struct device *self, void *aux)
 {
+       struct fdt_attach_args *faa = aux;
        struct com_softc *sc = (void *)self;
-       struct uartbus_attach_args *uba = aux;
-       int console;
+       int console = 0;
+
+       if (faa->fa_nreg != 1)
+               return;
 
-       console = 1;
+       if (comconsiot == &uartbus_tag && comconsaddr == faa->fa_reg[0].addr)
+               console = 1;
 
-       sc->sc_iot = uba->uba_memt;
-       sc->sc_iobase = uba->uba_baseaddr;
        sc->sc_hwflags = 0;
        sc->sc_swflags = 0;
        sc->sc_frequency = octeon_ioclock_speed();
        sc->sc_uarttype = COM_UART_16550A;
        sc->sc_fifolen = OCTEON_UART_FIFO_SIZE;
 
-       /* if it's in use as console, it's there. */
-       if (bus_space_map(sc->sc_iot, sc->sc_iobase, COM_NPORTS, 0, &sc->sc_ioh)) {
-               printf(": can't map uart registers\n");
-               return;
-       }
-
-       if (console && !comconsattached) {
-               /*
-                * If we are the console, reuse the existing bus_space
-                * information, so that comcnattach() invokes bus_space_map()
-                * with correct parameters.
-                */
-
-               if (comcnattach(sc->sc_iot, sc->sc_iobase, 115200,
-                   sc->sc_frequency, (TTYDEF_CFLAG & ~(CSIZE | PARENB)) | CS8))
-                       panic("can't setup serial console");
+       if (!console || comconsattached) {
+               sc->sc_iot = &uartbus_tag;
+               sc->sc_iobase = faa->fa_reg[0].addr;
+               if (bus_space_map(sc->sc_iot, sc->sc_iobase, COM_NPORTS, 0,
+                   &sc->sc_ioh)) {
+                       printf(": could not map UART registers\n");
+                       return;
+               }
+       } else {
+               /* Reuse the early console settings. */
+               sc->sc_iot = comconsiot;
+               sc->sc_iobase = comconsaddr;
+               if (comcnattach(sc->sc_iot, sc->sc_iobase, comconsrate,
+                   sc->sc_frequency, comconscflag))
+                       panic("could not set up serial console");
+               sc->sc_ioh = comconsioh;
        }
 
        com_attach_subr(sc);
 
-       octeon_intr_establish(uba->uba_intr, IPL_TTY, cn30xxuart_intr,
-           (void *)sc, sc->sc_dev.dv_xname);
+       octeon_intr_establish_fdt(faa->fa_node, IPL_TTY, cn30xxuart_intr, sc,
+           sc->sc_dev.dv_xname);
 }
 
 int
@@ -154,6 +160,7 @@ cn30xxuart_intr(void *arg)
 /*
  * Early console routines.
  */
+
 int
 cn30xxuart_delay(void)
 {
@@ -223,3 +230,20 @@ cn30xxuartcngetc(dev_t dev)
 
        return (c);
 }
+
+/*
+ * Bus access routines. These let com(4) work with the 64-bit registers.
+ */
+
+uint8_t
+uartbus_read_1(bus_space_tag_t tag, bus_space_handle_t handle, bus_size_t off)
+{
+       return *(volatile uint64_t *)(handle + (off << 3));
+}
+
+void
+uartbus_write_1(bus_space_tag_t tag, bus_space_handle_t handle, bus_size_t off,
+    uint8_t value)
+{
+       *(volatile uint64_t *)(handle + (off << 3)) = value;
+}
index f9d6f8d..274cf05 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: mainbus.c,v 1.8 2016/01/16 11:21:42 visa Exp $ */
+/*     $OpenBSD: mainbus.c,v 1.9 2017/07/03 08:17:20 visa Exp $ */
 
 /*
  * Copyright (c) 2001-2003 Opsycon AB  (www.opsycon.se / www.opsycon.com)
@@ -84,10 +84,6 @@ mainbus_attach(struct device *parent, struct device *self, void *aux)
        caa.caa_maa.maa_name = "clock";
        config_found(self, &caa.caa_maa, mainbus_print);
 
-       /* uart I/O */
-       caa.caa_maa.maa_name = "uartbus";
-       config_found(self, &caa.caa_maa, mainbus_print);
-
        /* on-board I/O */
        caa.caa_maa.maa_name = "iobus";
        config_found(self, &caa.caa_maa, mainbus_print);
diff --git a/sys/arch/octeon/dev/octeon_uartbus.c b/sys/arch/octeon/dev/octeon_uartbus.c
deleted file mode 100644 (file)
index bc6a744..0000000
+++ /dev/null
@@ -1,321 +0,0 @@
-/*     $OpenBSD: octeon_uartbus.c,v 1.7 2016/07/27 11:28:40 visa Exp $ */
-
-/*
- * Copyright (c) 2000-2004 Opsycon AB  (www.opsycon.se)
- *
- * 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 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.
- *
- */
-
-/*
- * This is a uartbus, for OCTEON UART.
- */
-
-#include <sys/param.h>
-#include <sys/systm.h>
-#include <sys/kernel.h>
-#include <sys/conf.h>
-#include <sys/malloc.h>
-#include <sys/device.h>
-#include <sys/proc.h>
-#include <sys/atomic.h>
-
-#include <machine/autoconf.h>
-#include <machine/intr.h>
-#include <machine/octeonreg.h>
-
-#include <octeon/dev/uartbusvar.h>
-
-#include <dev/ic/comreg.h>
-#include <dev/ic/ns16550reg.h>
-
-int     uartbusmatch(struct device *, void *, void *);
-void    uartbusattach(struct device *, struct device *, void *);
-int     uartbusprint(void *, const char *);
-int     uartbussubmatch(struct device *, void *, void *);
-
-u_int8_t uartbus_read_1(bus_space_tag_t, bus_space_handle_t, bus_size_t);
-u_int16_t uartbus_read_2(bus_space_tag_t, bus_space_handle_t, bus_size_t);
-u_int32_t uartbus_read_4(bus_space_tag_t, bus_space_handle_t, bus_size_t);
-u_int64_t uartbus_read_8(bus_space_tag_t, bus_space_handle_t, bus_size_t);
-
-void    uartbus_write_1(bus_space_tag_t, bus_space_handle_t, bus_size_t,
-           u_int8_t);
-void    uartbus_write_2(bus_space_tag_t, bus_space_handle_t, bus_size_t,
-           u_int16_t);
-void    uartbus_write_4(bus_space_tag_t, bus_space_handle_t, bus_size_t,
-           u_int32_t);
-void    uartbus_write_8(bus_space_tag_t, bus_space_handle_t, bus_size_t,
-           u_int64_t);
-
-void    uartbus_read_raw_2(bus_space_tag_t, bus_space_handle_t, bus_addr_t,
-           u_int8_t *, bus_size_t);
-void    uartbus_write_raw_2(bus_space_tag_t, bus_space_handle_t, bus_addr_t,
-           const u_int8_t *, bus_size_t);
-void    uartbus_read_raw_4(bus_space_tag_t, bus_space_handle_t, bus_addr_t,
-           u_int8_t *, bus_size_t);
-void    uartbus_write_raw_4(bus_space_tag_t, bus_space_handle_t, bus_addr_t,
-           const u_int8_t *, bus_size_t);
-void    uartbus_read_raw_8(bus_space_tag_t, bus_space_handle_t, bus_addr_t,
-           u_int8_t *, bus_size_t);
-void    uartbus_write_raw_8(bus_space_tag_t, bus_space_handle_t, bus_addr_t,
-           const u_int8_t *, bus_size_t);
-
-int     uartbus_space_map(bus_space_tag_t, bus_addr_t, bus_size_t, int,
-           bus_space_handle_t *);
-void    uartbus_space_unmap(bus_space_tag_t, bus_space_handle_t, bus_size_t);
-int     uartbus_space_region(bus_space_tag_t, bus_space_handle_t, bus_size_t,
-           bus_size_t, bus_space_handle_t *);
-
-void   *uartbus_space_vaddr(bus_space_tag_t, bus_space_handle_t);
-
-bus_addr_t uartbus_pa_to_device(paddr_t);
-paddr_t         uartbus_device_to_pa(bus_addr_t);
-
-struct cfattach uartbus_ca = {
-       sizeof(struct device), uartbusmatch, uartbusattach
-};
-
-struct cfdriver uartbus_cd = {
-       NULL, "uartbus", DV_DULL
-};
-
-bus_space_t uartbus_tag = {
-       PHYS_TO_XKPHYS(0, CCA_NC),
-       NULL,
-       uartbus_read_1, uartbus_write_1,
-       uartbus_read_2, uartbus_write_2,
-       uartbus_read_4, uartbus_write_4,
-       uartbus_read_8, uartbus_write_8,
-       uartbus_read_raw_2, uartbus_write_raw_2,
-       uartbus_read_raw_4, uartbus_write_raw_4,
-       uartbus_read_raw_8, uartbus_write_raw_8,
-       uartbus_space_map, uartbus_space_unmap, uartbus_space_region,
-       uartbus_space_vaddr
-};
-
-/*
- * List of uartbus child devices.
- */
-
-#define        UARTBUSDEV(name, addr, i) \
-       { name, &uartbus_tag, addr, i }
-struct uartbus_attach_args uartbus_children[] = {
-       UARTBUSDEV("com", OCTEON_UART0_BASE, CIU_INT_UART0),
-       UARTBUSDEV("com", OCTEON_UART1_BASE, CIU_INT_UART1),
-};
-#undef UARTBUSDEV
-
-
-
-/*
- * Match bus only to targets which have this bus.
- */
-int
-uartbusmatch(struct device *parent, void *match, void *aux)
-{
-       return (1);
-}
-
-int
-uartbusprint(void *aux, const char *uartbus)
-{
-       struct uartbus_attach_args *uba = aux;
-
-       if (uartbus != NULL)
-               printf("%s at %s", uba->uba_name, uartbus);
-
-       if (uba->uba_baseaddr != 0)
-               printf(" base 0x%lx", uba->uba_baseaddr);
-       if (uba->uba_intr >= 0)
-               printf(" irq %d", uba->uba_intr);
-
-       return (UNCONF);
-}
-
-int
-uartbussubmatch(struct device *parent, void *vcf, void *args)
-{
-       struct cfdata *cf = vcf;
-       struct uartbus_attach_args *uba = args;
-
-       if (strcmp(cf->cf_driver->cd_name, uba->uba_name) != 0)
-               return 0;
-
-       if (cf->cf_loc[0] != -1 && cf->cf_loc[0] != (int)uba->uba_baseaddr)
-               return 0;
-
-       return (*cf->cf_attach->ca_match)(parent, cf, uba);
-}
-
-void
-uartbusattach(struct device *parent, struct device *self, void *aux)
-{
-       uint i;
-
-       printf("\n");
-
-       /*
-        * Attach subdevices.
-        */
-       for (i = 0; i < nitems(uartbus_children); i++)
-               config_found_sm(self, uartbus_children + i,
-                   uartbusprint, uartbussubmatch);
-}
-
-/*
- * Bus access primitives. These are really ugly...
- */
-
-u_int8_t
-uartbus_read_1(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o)
-{
-       return *(volatile uint64_t *)(h + (o << 3));
-}
-
-u_int16_t
-uartbus_read_2(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o)
-{
-       panic(__func__);
-}
-
-u_int32_t
-uartbus_read_4(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o)
-{
-       panic(__func__);
-}
-
-u_int64_t
-uartbus_read_8(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o)
-{
-       panic(__func__);
-}
-
-void
-uartbus_write_1(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o, u_int8_t v)
-{
-       *(volatile uint64_t *)(h + (o << 3)) = v;
-}
-
-void
-uartbus_write_2(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o, u_int16_t v)
-{
-       panic(__func__);
-}
-
-void
-uartbus_write_4(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o, u_int32_t v)
-{
-       panic(__func__);
-}
-
-void
-uartbus_write_8(bus_space_tag_t t, bus_space_handle_t h, bus_size_t o, u_int64_t v)
-{
-       panic(__func__);
-}
-
-void
-uartbus_read_raw_2(bus_space_tag_t t, bus_space_handle_t h, bus_addr_t o,
-    u_int8_t *buf, bus_size_t len)
-{
-       panic(__func__);
-}
-
-void
-uartbus_write_raw_2(bus_space_tag_t t, bus_space_handle_t h, bus_addr_t o,
-    const u_int8_t *buf, bus_size_t len)
-{
-       panic(__func__);
-}
-
-void
-uartbus_read_raw_4(bus_space_tag_t t, bus_space_handle_t h, bus_addr_t o,
-    u_int8_t *buf, bus_size_t len)
-{
-       panic(__func__);
-}
-
-void
-uartbus_write_raw_4(bus_space_tag_t t, bus_space_handle_t h, bus_addr_t o,
-    const u_int8_t *buf, bus_size_t len)
-{
-       panic(__func__);
-}
-
-void
-uartbus_read_raw_8(bus_space_tag_t t, bus_space_handle_t h, bus_addr_t o,
-    u_int8_t *buf, bus_size_t len)
-{
-       panic(__func__);
-}
-
-void
-uartbus_write_raw_8(bus_space_tag_t t, bus_space_handle_t h, bus_addr_t o,
-    const u_int8_t *buf, bus_size_t len)
-{
-       panic(__func__);
-}
-
-int
-uartbus_space_map(bus_space_tag_t t, bus_addr_t offs, bus_size_t size,
-    int flags, bus_space_handle_t *bshp)
-{
-       *bshp = t->bus_base + offs;
-
-       return 0;
-}
-
-void
-uartbus_space_unmap(bus_space_tag_t t, bus_space_handle_t bsh, bus_size_t size)
-{
-}
-
-int
-uartbus_space_region(bus_space_tag_t t, bus_space_handle_t bsh,
-    bus_size_t offset, bus_size_t size, bus_space_handle_t *nbshp)
-{
-       *nbshp = bsh + offset;
-       return (0);
-}
-
-void *
-uartbus_space_vaddr(bus_space_tag_t t, bus_space_handle_t h)
-{
-       return (void *)h;
-}
-
-/*
- * uartbus bus_dma helpers.
- */
-
-bus_addr_t
-uartbus_pa_to_device(paddr_t pa)
-{
-       return (bus_addr_t)pa;
-}
-
-paddr_t
-uartbus_device_to_pa(bus_addr_t addr)
-{
-       return (paddr_t)addr;
-}
diff --git a/sys/arch/octeon/dev/uartbusvar.h b/sys/arch/octeon/dev/uartbusvar.h
deleted file mode 100644 (file)
index 9188690..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*     $OpenBSD: uartbusvar.h,v 1.1 2011/05/08 13:39:30 syuu Exp $     */
-
-/*
- * Copyright (c) 2001-2003 Opsycon AB  (www.opsycon.se / www.opsycon.com)
- *
- * 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 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.
- *
- */
-
-#ifndef        _UARTBUSVAR_H_
-#define        _UARTBUSVAR_H_
-
-#include <machine/bus.h>
-
-struct uartbus_attach_args {
-       char            *uba_name;
-       bus_space_tag_t  uba_memt;
-       bus_addr_t       uba_baseaddr;
-       int              uba_intr;
-};
-
-#endif /* _UARTBUSVAR_H_ */
index 63919f2..b934eae 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: autoconf.h,v 1.2 2017/04/07 13:30:43 visa Exp $ */
+/*     $OpenBSD: autoconf.h,v 1.3 2017/07/03 08:17:20 visa Exp $ */
 
 /*
  * Copyright (c) 2001-2003 Opsycon AB  (www.opsycon.se / www.opsycon.com)
@@ -45,6 +45,8 @@ extern enum devclass bootdev_class;
 
 #include <mips64/autoconf.h>
 
+void   com_fdt_init_cons(void);
+
 extern unsigned int octeon_ver;
 #define OCTEON_1       0
 #define OCTEON_PLUS    1
index c089a76..f25fae4 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: machdep.c,v 1.95 2017/06/19 14:47:27 visa Exp $ */
+/*     $OpenBSD: machdep.c,v 1.96 2017/07/03 08:17:20 visa Exp $ */
 
 /*
  * Copyright (c) 2009, 2010 Miodrag Vallat.
@@ -550,6 +550,7 @@ consinit()
        static int console_ok = 0;
 
        if (console_ok == 0) {
+               com_fdt_init_cons();
                cninit();
                console_ok = 1;
        }