summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormjacob <mjacob@FreeBSD.org>2000-05-07 17:44:50 +0000
committermjacob <mjacob@FreeBSD.org>2000-05-07 17:44:50 +0000
commitd26e40cb270f2df3d838565c1465f0172ae77390 (patch)
tree3f3bb066bffa1ab6596ec5f856014868bfae22d0
parent5dc4cdc7abab48f11a10d165f464ce519642cf13 (diff)
downloadFreeBSD-src-d26e40cb270f2df3d838565c1465f0172ae77390.zip
FreeBSD-src-d26e40cb270f2df3d838565c1465f0172ae77390.tar.gz
oops! final piece for Rawhides
-rw-r--r--sys/alpha/alpha/dec_kn300.c147
1 files changed, 147 insertions, 0 deletions
diff --git a/sys/alpha/alpha/dec_kn300.c b/sys/alpha/alpha/dec_kn300.c
new file mode 100644
index 0000000..9b924f2
--- /dev/null
+++ b/sys/alpha/alpha/dec_kn300.c
@@ -0,0 +1,147 @@
+/* $FreeBSD$ */
+
+/*
+ * Copyright (c) 2000 by Matthew Jacob
+ * NASA AMES Research Center.
+ * 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 immediately at the beginning of the file, without modification,
+ * 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.
+ * 3. 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 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 AUTHOR 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 "opt_ddb.h"
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/kernel.h>
+#include <sys/module.h>
+#include <sys/bus.h>
+#include <machine/intr.h>
+
+#include <sys/termios.h>
+
+#include <machine/rpb.h>
+#include <machine/cpuconf.h>
+#include <machine/clock.h>
+#include <pci/pcireg.h>
+#include <pci/pcivar.h>
+
+#include <alpha/mcbus/mcbusreg.h>
+#include <alpha/mcbus/mcbusvar.h>
+#if 0
+#include <alpha/mcbus/mcpciareg.h>
+#include <alpha/mcbsu/mcpciavar.h>
+#include <alpha/pci/pci_kn300.h>
+#endif
+
+#include "sio.h"
+#include "sc.h"
+
+#ifndef CONSPEED
+#define CONSPEED TTYDEF_SPEED
+#endif
+static int comcnrate = CONSPEED;
+
+void dec_kn300_init __P((void));
+static void dec_kn300_cons_init __P((void));
+
+#define ALPHASERVER_4100 "AlphaServer 4100"
+
+const struct alpha_variation_table dec_kn300_variations[] = {
+ { 0, ALPHASERVER_4100 },
+ { 0, NULL },
+};
+
+
+#if NSC > 0
+extern int siocnattach __P((int, int));
+#endif
+#ifdef DDB
+extern int siogdbattach __P((int, int));
+#endif
+extern int sccnattach __P((void));
+
+void
+dec_kn300_init()
+{
+ u_int64_t variation;
+
+ platform.family = ALPHASERVER_4100;
+
+ if ((platform.model = alpha_dsr_sysname()) == NULL) {
+ variation = hwrpb->rpb_variation & SV_ST_MASK;
+ if ((platform.model = alpha_variation_name(variation,
+ dec_kn300_variations)) == NULL)
+ platform.model = alpha_unknown_sysname();
+ }
+
+ platform.iobus = "mcbus";
+ platform.cons_init = dec_kn300_cons_init;
+}
+
+extern int comconsole;
+
+void
+dec_kn300_cons_init()
+{
+#if 0
+ struct ctb *ctb;
+
+/* mcpcia_init(); */
+#ifdef DDB
+ siogdbattach(0x2f8, 57600);
+#endif
+
+ ctb = (struct ctb *)(((caddr_t)hwrpb) + hwrpb->rpb_ctb_off);
+
+ switch (ctb->ctb_term_type) {
+ case 2:
+ /* serial console ... */
+ /*
+ * Delay to allow PROM putchars to complete.
+ * FIFO depth * character time,
+ * character time = (1000000 / (defaultrate / 10))
+ */
+ DELAY(160000000 / comcnrate);
+ comconsole = 0;
+ if (siocnattach(0x3f8, comcnrate))
+ panic("can't init serial console");
+ break;
+
+ case 3:
+#if NSC > 0
+ sccnattach();
+#else
+ panic("not configured to use display && keyboard console");
+#endif
+ break;
+
+ default:
+ printf("ctb->ctb_term_type = 0x%lx\n", ctb->ctb_term_type);
+ printf("ctb->ctb_turboslot = 0x%lx\n", ctb->ctb_turboslot);
+
+ panic("consinit: unknown console type %ld\n",
+ ctb->ctb_term_type);
+ }
+#endif
+}
OpenPOWER on IntegriCloud