Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/arc/arc Moved from /cvsroot/syssrc/sys/arch/pica/pi...



details:   https://anonhg.NetBSD.org/src/rev/72f17ce87926
branches:  trunk
changeset: 481108:72f17ce87926
user:      soda <soda%NetBSD.org@localhost>
date:      Sun Jan 23 20:09:13 2000 +0000

description:
Moved from /cvsroot/syssrc/sys/arch/pica/pica/mainbus.c,v

diffstat:

 sys/arch/arc/arc/mainbus.c |  169 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 169 insertions(+), 0 deletions(-)

diffs (173 lines):

diff -r 4146a32d3c97 -r 72f17ce87926 sys/arch/arc/arc/mainbus.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/arch/arc/arc/mainbus.c        Sun Jan 23 20:09:13 2000 +0000
@@ -0,0 +1,169 @@
+/*     $NetBSD: mainbus.c,v 1.7 2000/01/23 20:09:14 soda Exp $ */
+
+/*
+ * Copyright (c) 1994, 1995 Carnegie-Mellon University.
+ * All rights reserved.
+ *
+ * Author: Chris G. Demetriou
+ * 
+ * Permission to use, copy, modify and distribute this software and
+ * its documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ * 
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 
+ * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ * 
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution%CS.CMU.EDU@localhost
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie the
+ * rights to redistribute these changes.
+ */
+
+#include <sys/param.h>
+#include <sys/systm.h>
+#include <sys/device.h>
+#include <sys/reboot.h>
+
+#include <pica/pica/picatype.h>
+#include <machine/autoconf.h>
+
+struct mainbus_softc {
+       struct  device sc_dv;
+       struct  abus sc_bus;
+};
+
+/* Definition of the mainbus driver. */
+static int     mbmatch __P((struct device *, void *, void *));
+static void    mbattach __P((struct device *, struct device *, void *));
+static int     mbprint __P((void *, const char *));
+
+struct cfattach mainbus_ca = {
+       sizeof(struct mainbus_softc), mbmatch, mbattach
+};
+
+void   mb_intr_establish __P((struct confargs *, int (*)(void *), void *));
+void   mb_intr_disestablish __P((struct confargs *));
+caddr_t        mb_cvtaddr __P((struct confargs *));
+int    mb_matchname __P((struct confargs *, char *));
+
+static int
+mbmatch(parent, cfdata, aux)
+       struct device *parent;
+       void *cfdata;
+       void *aux;
+{
+       struct cfdata *cf = cfdata;
+
+       /*
+        * Only one mainbus, but some people are stupid...
+        */     
+       if (cf->cf_unit > 0)
+               return(0);
+
+       /*
+        * That one mainbus is always here.
+        */
+       return(1);
+}
+
+static void
+mbattach(parent, self, aux)
+       struct device *parent;
+       struct device *self;
+       void *aux;
+{
+       struct mainbus_softc *sc = (struct mainbus_softc *)self;
+       struct confargs nca;
+       extern int cputype, ncpus;
+
+       printf("\n");
+
+       sc->sc_bus.ab_dv = (struct device *)sc;
+       sc->sc_bus.ab_type = BUS_MAIN;
+       sc->sc_bus.ab_intr_establish = mb_intr_establish;
+       sc->sc_bus.ab_intr_disestablish = mb_intr_disestablish;
+       sc->sc_bus.ab_cvtaddr = mb_cvtaddr;
+       sc->sc_bus.ab_matchname = mb_matchname;
+
+       /*
+        * Try to find and attach all of the CPUs in the machine.
+        * ( Right now only one CPU so code is simple )
+        */
+
+       nca.ca_name = "cpu";
+       nca.ca_slot = 0;
+       nca.ca_offset = 0;
+       nca.ca_bus = &sc->sc_bus;
+       config_found(self, &nca, mbprint);
+
+       if (cputype == ACER_PICA_61) {
+               /* we have a PICA bus! */
+               nca.ca_name = "pica";
+               nca.ca_slot = 0;
+               nca.ca_offset = 0;
+               nca.ca_bus = &sc->sc_bus;
+               config_found(self, &nca, mbprint);
+       }
+       if (cputype == ACER_PICA_61) {
+               /* we have an ISA bus! */
+               nca.ca_name = "isa";
+               nca.ca_slot = 0;
+               nca.ca_offset = 0;
+               nca.ca_bus = &sc->sc_bus;
+               config_found(self, &nca, mbprint);
+       }
+}
+
+static int
+mbprint(aux, pnp)
+       void *aux;
+       const char *pnp;
+{
+
+       if (pnp)
+               return (QUIET);
+       return (UNCONF);
+}
+
+void
+mb_intr_establish(ca, handler, val)
+       struct confargs *ca;
+       int (*handler) __P((void *));
+       void *val;
+{
+
+       panic("can never mb_intr_establish");
+}
+
+void
+mb_intr_disestablish(ca)
+       struct confargs *ca;
+{
+
+       panic("can never mb_intr_disestablish");
+}
+
+caddr_t
+mb_cvtaddr(ca)
+       struct confargs *ca;
+{
+
+       return (NULL);
+}
+
+int
+mb_matchname(ca, name)
+       struct confargs *ca;
+       char *name;
+{
+
+       return (strcmp(name, ca->ca_name) == 0);
+}



Home | Main Index | Thread Index | Old Index