Port-vax archive

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

11/730 patches for netbsd-5



Here's simple patches for netbsd-5 to make the 11/730 work.

Thanks to Matt Thomas for helping with the bus scan.

I'm assuming someone could/will pull from the netbsd-5 branch to the
trunk, but I can make patch for the trunk too if that is easier.

--- src/sys/arch/vax/uba/uba_ubi.cx     1969-12-31 19:00:00.000000000 -0500
+++ src/sys/arch/vax/uba/uba_ubi.c      2009-01-22 11:55:33.000000000 -0500
@@ -0,0 +1,175 @@
+/*     $NetBSD: uba_ubi.c,v 1.12 2003/08/07 16:30:14 agc Exp $    */
+/*
+ * Copyright (c) 1982, 1986 The Regents of the University of California.
+ * 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.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
+ *
+ *     @(#)uba.c       7.10 (Berkeley) 12/16/90
+ *     @(#)autoconf.c  7.20 (Berkeley) 5/9/91
+ */
+
+/*
+ * Copyright (c) 1996 Jonathan Stone.
+ * Copyright (c) 1994, 1996 Ludd, University of Lule}, Sweden.
+ *
+ * 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.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by the University of
+ *     California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
+ *
+ *     @(#)uba.c       7.10 (Berkeley) 12/16/90
+ *     @(#)autoconf.c  7.20 (Berkeley) 5/9/91
+ */
+
+#include <sys/cdefs.h>
+__KERNEL_RCSID(0, "$NetBSD: uba_ubi.c,v 1.12 2003/08/07 16:30:14 agc Exp $");
+
+#include <sys/param.h>
+#include <sys/device.h>
+#include <sys/systm.h>
+
+#define        _VAX_BUS_DMA_PRIVATE
+#include <machine/bus.h>
+#include <machine/mtpr.h>
+#include <machine/nexus.h>
+#include <machine/cpu.h>
+#include <machine/sgmap.h>
+
+#include <dev/qbus/ubavar.h>
+
+#include <vax/uba/uba_common.h>
+
+#include "locators.h"
+
+/* Some UBI-specific defines */
+#define        UBASIZE         ((UBAPAGES + UBAIOPAGES) * VAX_NBPG)
+#define UMEM730        (0xfc0000)
+#define        UIOPAGE         (UMEM730 + (UBAPAGES * VAX_NBPG))
+
+/*
+ * The DW780, DW750 and DW730 are quite similar to their function from
+ * a programmers point of view. Differencies are number of BDP's
+ * and bus status/command registers, the latter are (partly) IPR's
+ * on 750.
+ */
+static int     dw730_match(struct device *, struct cfdata *, void *);
+static void    dw730_attach(struct device *, struct device *, void *);
+static void    dw730_init(struct uba_softc*);
+#ifdef notyet
+static void    dw730_purge(struct uba_softc *, int);
+#endif
+
+CFATTACH_DECL_NEW(uba_ubi, sizeof(struct uba_vsoftc),
+    dw730_match, dw730_attach, NULL, NULL);
+
+extern struct vax_bus_space vax_mem_bus_space;
+
+int
+dw730_match(device_t parent, cfdata_t cf, void *aux)
+{
+       struct sbi_attach_args *sa = (struct sbi_attach_args *)aux;
+
+       if (cf->cf_loc[UBICF_TR] != sa->sa_nexnum &&
+           cf->cf_loc[UBICF_TR] != UBICF_TR_DEFAULT)
+               return 0;
+       /*
+        * The uba type is actually only telling where the uba
+        * space is in nexus space.
+        */
+       if ((sa->sa_type & ~3) != NEX_UBA0)
+               return 0;
+
+       return 1;
+}
+
+void
+dw730_attach(device_t parent, device_t self, void *aux)
+{
+       struct uba_vsoftc *sc = device_private(self);
+       struct sbi_attach_args *sa = aux;
+
+       printf(": DW730\n");
+
+       /*
+        * Fill in bus specific data.
+        */
+       sc->uv_sc.uh_dev = self;
+       sc->uv_sc.uh_ubainit = dw730_init;
+#ifdef notyet
+       sc->uv_sc.uh_ubapurge = dw730_purge;
+#endif
+       sc->uv_sc.uh_iot = &vax_mem_bus_space;
+       sc->uv_sc.uh_dmat = &sc->uv_dmat;
+       sc->uv_sc.uh_type = UBA_UBA;
+       sc->uv_sc.uh_nr = sa->sa_type == NEX_UBA1;
+
+       /*
+        * Fill in variables used by the sgmap system.
+        */
+       sc->uv_size = UBAPAGES * VAX_NBPG;
+       sc->uv_uba = (void *)sa->sa_ioh; /* Map registers is in adaptor */
+
+       uba_dma_init(sc);
+       uba_attach(&sc->uv_sc, UIOPAGE);
+}
+
+void
+dw730_init(struct uba_softc *sc)
+{
+       mtpr(0, PR_IUR);
+       DELAY(500000);
+}
+
+#ifdef notyet
+void
+dw730_purge(struct uba_softc sc, int bdp)
+{
+       sc->uh_uba->uba_dpr[bdp] |= UBADPR_PURGE | UBADPR_NXM | UBADPR_UCE;
+}
+#endif
--- src/sys/arch/vax/vax/ubi.cx 1969-12-31 19:00:00.000000000 -0500
+++ src/sys/arch/vax/vax/ubi.c  2009-01-22 11:51:18.000000000 -0500
@@ -0,0 +1,117 @@
+/*     $NetBSD: ubi.c,v 1.8 2003/07/15 02:15:03 lukem Exp $ */
+/*
+ * Copyright (c) 1999 Ludd, University of Lule}, Sweden.
+ * 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.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed at Ludd, University of 
+ *     Lule}, Sweden and its contributors.
+ * 4. 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 <sys/cdefs.h>
+__KERNEL_RCSID(0, "$NetBSD: ubi.c,v 1.8 2003/07/15 02:15:03 lukem Exp $");
+
+#include <sys/param.h>
+#include <sys/device.h>
+#include <sys/systm.h>
+
+#include <machine/bus.h>
+#include <machine/nexus.h>
+#include <machine/cpu.h>
+#include <machine/sid.h>
+#include <machine/ka730.h>
+
+static int ubi_print(void *, const char *);
+static int ubi_match(struct device *, struct cfdata *, void *);
+static void ubi_attach(struct device *, struct device *, void*);
+
+CFATTACH_DECL_NEW(ubi, sizeof(struct device),
+    ubi_match, ubi_attach, NULL, NULL);
+
+int
+ubi_print(void *aux, const char *name)
+{
+       struct sbi_attach_args *sa = (struct sbi_attach_args *)aux;
+
+       if (name)
+               aprint_normal("unknown device 0x%x at %s", sa->sa_type, name);
+
+       aprint_normal(" tr%d", sa->sa_nexnum);
+       return (UNCONF);
+}
+
+
+int
+ubi_match(struct device *parent, struct cfdata *cf, void *aux)
+{
+       if (vax_bustype == VAX_UNIBUS)
+               return 1;
+       return 0;
+}
+
+void
+ubi_attach(struct device *parent, struct device *self, void *aux)
+{
+       struct  sbi_attach_args sa;
+
+       printf("\n");
+
+#define NEXPAGES (sizeof(struct nexus) / VAX_NBPG)
+
+#if 0
+       /*
+        * Probe for memory, can be in the first 4 slots.
+        */
+
+       for (sa.sa_nexnum = 0; sa.sa_nexnum < 4; sa.sa_nexnum++) {
+               sa.sa_ioh = vax_map_physmem(NEX730 +
+                   sizeof(struct nexus) * sa.sa_nexnum, NEXPAGES);
+               if (badaddr((caddr_t)sa.sa_ioh, 4)) {
+                       vax_unmap_physmem((vaddr_t)sa.sa_ioh, NEXPAGES);
+               } else {
+                       sa.sa_type = NEX_MEM16;
+                       config_found(self, (void*)&sa, ubi_print);
+               }
+       }
+#endif
+
+       /* VAX 730 fixed configuration */
+
+       /* memory */
+       sa.sa_nexnum = 0;
+       sa.sa_ioh = vax_map_physmem((int)NEX730 +
+          sizeof(struct nexus) * sa.sa_nexnum, NEXPAGES);
+       sa.sa_type = NEX_MEM16;
+       config_found(self, (void*)&sa, ubi_print);
+
+       printf("\n");
+
+       /* generic UBA */
+       sa.sa_nexnum = 3;
+       sa.sa_ioh = vax_map_physmem((int)NEX730 +
+           sizeof(struct nexus) * sa.sa_nexnum, NEXPAGES);
+       sa.sa_type = NEX_UBA0;
+       config_found(self, (void*)&sa, ubi_print);
+}
--- src/sys/arch/vax/include/ka730.hx   1969-12-31 19:00:00.000000000 -0500
+++ src/sys/arch/vax/include/ka730.h    2009-01-12 14:34:44.000000000 -0500
@@ -0,0 +1,46 @@
+/*     $NetBSD: ka730.h,v 1.10 2002/12/01 21:21:45 matt Exp $  */
+
+/*
+ * Copyright (c) 1994 Ludd, University of Lule}, Sweden.
+ * 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.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed at Ludd, University of Lule}.
+ * 4. 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.
+ */
+
+#ifndef _VAX_KA730_H_
+#define _VAX_KA730_H_
+
+#include <machine/nexus.h>
+
+#define V730UCODE(x)    ((x>>8)&255)
+
+//#define NEX730               (0xf20000)
+#define        NEX730SZ        (NNEX730 * sizeof(struct nexus))
+
+/* 11/730 specific pages needed to be stolen when bootstrapping */
+#define        V730PGS 4
+
+#endif /* _VAX_KA730_H_ */
--- src/sys/arch/vax/vax/ka730.cx       1969-12-31 19:00:00.000000000 -0500
+++ src/sys/arch/vax/vax/ka730.c        2009-01-22 11:58:14.000000000 -0500
@@ -0,0 +1,205 @@
+/*     $NetBSD: ka730.c,v 1.36 2003/08/07 16:30:19 agc Exp $ */
+/*
+ * Copyright (c) 1982, 1986, 1988 The Regents of the University of California.
+ * 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.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
+ *
+ *     @(#)ka730.c     7.4 (Berkeley) 5/9/91
+ *     @(#)autoconf.c  7.20 (Berkeley) 5/9/91
+ */
+
+/*
+ * Copyright (c) 1994 Ludd, University of Lule}, Sweden.
+ * 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.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by the University of
+ *     California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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.
+ *
+ *     @(#)ka730.c     7.4 (Berkeley) 5/9/91
+ *     @(#)autoconf.c  7.20 (Berkeley) 5/9/91
+ */
+
+#include <sys/cdefs.h>
+__KERNEL_RCSID(0, "$NetBSD: ka730.c,v 1.36 2003/08/07 16:30:19 agc Exp $");
+
+#include <sys/param.h>
+#include <sys/device.h>
+#include <sys/systm.h>
+
+#include <machine/bus.h>
+#include <machine/ka730.h>
+#include <machine/mtpr.h>
+#include <machine/cpu.h>
+#include <machine/clock.h>
+#include <machine/sid.h>
+
+#include <vax/vax/gencons.h>
+
+#include "locators.h"
+
+void   ctuattach(void);
+static void ka730_clrf(void);
+static void ka730_conf(void);
+static void ka730_memerr(void);
+static int ka730_mchk(void *t);
+static void ka730_attach_cpu(device_t);
+
+static const char * const ka730_devs[] = { "cpu", "ubi", NULL };
+
+struct cpu_dep ka730_calls = {
+       .cpu_mchk       = ka730_mchk,
+       .cpu_memerr     = ka730_memerr,
+       .cpu_conf       = ka730_conf,
+       .cpu_gettime    = generic_gettime,
+       .cpu_settime    = generic_settime,
+       .cpu_vups       = 1,    /* ~VUPS */
+       .cpu_scbsz      = 4,    /* SCB pages */
+       .cpu_clrf       = ka730_clrf,
+       .cpu_devs       = ka730_devs,
+       .cpu_attach_cpu = ka730_attach_cpu,
+
+};
+
+void
+ka730_conf()
+{
+       /* Call ctuattach() here so it can setup its vectors. */
+       ctuattach();
+}
+
+void
+ka730_attach_cpu(device_t self)
+{
+       aprint_normal("KA730, ucode rev %d\n", V730UCODE(vax_cpudata));
+}
+
+static void ka730_memenable(struct device *, struct device *, void *);
+static int ka730_memmatch(struct device  *, struct cfdata *, void *);
+
+CFATTACH_DECL(mem_ubi, sizeof(struct device),
+    ka730_memmatch, ka730_memenable, NULL, NULL);
+
+int
+ka730_memmatch(struct device *parent, struct cfdata *cf, void *aux)
+{
+       struct  sbi_attach_args *sa = (struct sbi_attach_args *)aux;
+
+       if (cf->cf_loc[UBICF_TR] != sa->sa_nexnum &&
+           cf->cf_loc[UBICF_TR] > UBICF_TR_DEFAULT)
+               return 0;
+
+       if (sa->sa_type != NEX_MEM16)
+               return 0;
+
+       return 1;
+}
+
+struct mcr730 {
+       int     mc_addr;                /* address and syndrome */
+       int     mc_err;                 /* error bits */
+};
+
+/* enable crd interrupts */
+void
+ka730_memenable(struct device *parent, struct device *self, void *aux)
+{
+}
+
+/* log crd errors */
+void
+ka730_memerr()
+{
+}
+
+#define NMC730 12
+const char 
*mc730[]={"0","1","2","3","4","5","6","7","8","9","10","11","12","13",
+       "14","15"};
+
+struct mc730frame {
+       int     mc3_bcnt;               /* byte count == 0xc */
+       int     mc3_summary;            /* summary parameter (as above) */
+       int     mc3_parm[2];            /* parameters */
+       int     mc3_pc;                 /* trapped pc */
+       int     mc3_psl;                /* trapped psl */
+};
+
+int
+ka730_mchk(void *cmcf)
+{
+       register struct mc730frame *mcf = (struct mc730frame *)cmcf;
+       register int type = mcf->mc3_summary;
+
+       printf("machine check %x: %s\n",
+              type, type < NMC730 ? mc730[type] : "???");
+       printf("\tparams %x %x pc %x psl %x mcesr %x\n",
+              mcf->mc3_parm[0], mcf->mc3_parm[1],
+              mcf->mc3_pc, mcf->mc3_psl, mfpr(PR_MCESR));
+       mtpr(0xf, PR_MCESR);
+       return (MCHK_PANIC);
+}
+
+void
+ka730_clrf()
+{
+       int s = splhigh();
+
+#define WAIT   while ((mfpr(PR_TXCS) & GC_RDY) == 0) ;
+
+       WAIT;
+
+       mtpr(GC_CWFL|GC_CONS, PR_TXDB);
+
+       WAIT;
+       mtpr(GC_CCFL|GC_CONS, PR_TXDB);
+
+       WAIT;
+       splx(s);
+}
--- src/sys/arch/vax/conf/VAX780x       1969-12-31 19:00:00.000000000 -0500
+++ src/sys/arch/vax/conf/VAX780        2009-01-12 14:43:32.000000000 -0500
@@ -0,0 +1,344 @@
+# $NetBSD$
+#
+# 11/780,750,730 machine description file
+# 
+# This machine description file is used to generate a NetBSD for the
+# 11/780, 11/750 or 11/730 cpus.
+#
+# The machine description file can be customised for your specific
+# machine to reduce the kernel size and improve its performance.
+#
+# For further information on compiling NetBSD kernels, see the config(8)
+# man page.
+#
+# For further information on hardware support for this architecture, see
+# the intro(4) man page.  For further information about kernel options
+# for this architecture, see the options(4) man page.  For an explanation
+# of each device driver in this file see the section 4 man page for the
+# device.
+
+include                "arch/vax/conf/std.vax"
+
+options        INCLUDE_CONFIG_FILE     # embed config file in kernel binary
+
+#ident                 "VAX780"
+
+# Here are all different supported CPU types listed.
+options        VAX780
+options        VAX750
+options        VAX730
+
+# Max users on system; this is just a hint
+maxusers       8
+
+# Kernel compiled-in symbolic debugger & system call tracer
+makeoptions    DEBUG="-g"
+options        DDB
+#options       DDB_HISTORY_SIZE=100    # enable history editing in DDB
+options        KTRACE
+#options       DIAGNOSTIC
+#options       DEBUG
+#options       KMEMSTATS
+#options       PMAPDEBUG
+#options       TRAPDEBUG
+#options       LOCKDEBUG
+
+#options       SCSIVERBOSE             # Verbose SCSI errors
+
+# Networking options
+#options       GATEWAY         # packet forwarding
+#options       NTP             # NTP kernel support
+options        INET            # IP + ICMP + TCP + UDP
+#options       INET6           # IPV6
+#options       IPSEC           # IP security
+#options       IPSEC_ESP       # IP security (encryption part; define w/IPSEC)
+#options       IPSEC_NAT_T     # IPsec NAT traversal (NAT-T)
+#options       IPSEC_DEBUG     # debug for IP security
+#options       MROUTING        # IP multicast routing
+#options       PIM             # Protocol Independent Multicast
+#options       NS              # XNS
+#options       NSIP            # XNS tunneling over IP
+#options       ISO,TPIP        # OSI
+#options       EON             # OSI tunneling over IP
+#options       NETATALK        # AppleTalk networking protocols
+#options       PPP_BSDCOMP     # BSD-Compress compression support for PPP
+#options       PPP_DEFLATE     # Deflate compression support for PPP
+#options       PPP_FILTER      # Active filter support for PPP (requires bpf)
+#options       PFIL_HOOKS      # pfil(9) packet filter hooks
+#options       IPFILTER_LOG    # ipmon(8) log support
+#options       IPFILTER_LOOKUP # ippool(8) support
+#options       IPFILTER_DEFAULT_BLOCK  # block all packets by default
+
+#options       ALTQ            # Manipulate network interfaces' output queues
+#options       ALTQ_BLUE       # Stochastic Fair Blue
+#options       ALTQ_CBQ        # Class-Based Queueing
+#options       ALTQ_CDNR       # Diffserv Traffic Conditioner
+#options       ALTQ_FIFOQ      # First-In First-Out Queue
+#options       ALTQ_FLOWVALVE  # RED/flow-valve (red-penalty-box)
+#options       ALTQ_HFSC       # Hierarchical Fair Service Curve
+#options       ALTQ_LOCALQ     # Local queueing discipline
+#options       ALTQ_PRIQ       # Priority Queueing
+#options       ALTQ_RED        # Random Early Detection
+#options       ALTQ_RIO        # RED with IN/OUT
+#options       ALTQ_WFQ        # Weighted Fair Queueing
+
+# All supported filesystem types
+file-system    FFS
+#file-system   LFS
+file-system    MFS
+file-system    NFS
+file-system    FDESC
+file-system    KERNFS
+file-system    NULLFS
+#file-system   OVERLAY         # overlay file system
+file-system    PROCFS
+file-system    UMAPFS
+#file-system   UNION
+#file-system   CD9660
+file-system    PTYFS           # /dev/pts/N support
+#file-system   TMPFS           # Efficient memory file-system
+#file-system   UDF             # experimental - OSTA UDF CD/DVD file-system
+
+options        QUOTA
+#options       FFS_EI          # FFS Endian Independant support
+options        SOFTDEP         # FFS soft updates support.
+#options       WAPBL           # File system journaling support - Experimental
+#options       UFS_DIRHASH     # UFS Large Directory Hashing - Experimental
+#options       NFSSERVER
+options        NFS_BOOT_BOOTP,NFS_BOOT_DHCP    # Use bootp <> dhcp
+options        NFS_BOOT_BOOTPARAM      # Use the Sun way for netbooting.
+#options       FFS_NO_SNAPSHOT # No FFS snapshot support
+
+# WS console uses VT100 terminal emulation
+#options       WSEMUL_VT100
+#options       WSDISPLAY_DEFAULTSCREENS=8
+#options       FONT_QVSS8x15
+
+# System V shared memory & semaphores support.
+options        SYSVMSG
+options        SYSVSEM
+options        SYSVSHM
+options        P1003_1B_SEMAPHORE # p1003.1b semaphore support
+
+# Old compat stuff; needed to run 4.3BSD Reno programs.
+# Note that if COMPAT_ULTRIX is set, you lose compatibility with
+# 4.3BSD Reno programs and get Ultrix compatibility instead.
+# (They cannot coexist).
+options        COMPAT_VAX1K    # Must be present to run pre-1.4 binaries.
+options        COMPAT_43
+options        COMPAT_09
+options        COMPAT_10
+options        COMPAT_11
+options        COMPAT_12
+options        COMPAT_13
+options        COMPAT_14
+options        COMPAT_15
+options        COMPAT_16
+options        COMPAT_20
+options        COMPAT_30       # NetBSD 3.0 compatibility.
+options        COMPAT_40       # NetBSD 4.0 compatibility.
+options        COMPAT_ULTRIX
+#options       COMPAT_IBCS2    # DEC SVR.3 compatilibity
+#options       NO_INSN_EMULATE # CPU does not lack some hardware instructions.
+options                COMPAT_BSDPTY   # /dev/[pt]ty?? ptys.
+
+options        LKM
+
+options        USERCONF        # userconf(4) support
+#options       PIPE_SOCKETPAIR # smaller, but slower pipe(2)
+options        SYSCTL_INCLUDE_DESCR    # Include sysctl descriptions in kernel
+
+# Enable experimental buffer queue strategy for better responsiveness under 
+# high disk I/O load. Use it with caution - it's not proven to be stable yet.
+#options       BUFQ_READPRIO
+#options       BUFQ_PRIOCSCAN
+
+# Kernel(s) to compile
+config         netbsd root on ? type ?
+
+mainbus0       at root
+
+cpu*           at mainbus0
+
+# All buses; from the beginning attached to mainbus.
+sbi0           at mainbus0             # SBI, master bus on 11/780, 8600.
+cmi0           at mainbus0             # 11/750 internal bus.
+ubi0           at mainbus0             # 11/730 direct unibus
+#bi0           at mainbus0             # VAX 8200
+#vsbus0                at mainbus0             # All VAXstations
+#nmi0          at mainbus0             # VAX 8800
+#xmi0          at mainbus0             # VAX 6000
+#uba0          at mainbus0             # All MicroVAX
+#ze0           at mainbus0             # KA48, KA49, KA53
+#le0           at mainbus0             # LANCE ethernet (MV3400)
+#shac0         at mainbus0             # DSSI controller
+
+# NMI (internal bus) on VAX 88xx-series.
+#cpu*          at nmi0 slot?           # 1-4 KA88 CPUs
+#mem*          at nmi0 slot?
+#bi*           at nmi0 slot?           # BI bus adapters
+
+# XMI on VAX 6000 (and higher)
+#cpu*          at xmi? node?           # 1-? VAX 6000 CPUs
+#mem*          at xmi? node?
+#bi*           at xmi? node?           # XMI-BI adapter
+
+# Vsbus, the virtual VAXstation bus, and possible devices.
+#le0           at vsbus0 csr 0x200e0000 # LANCE ethernet
+#dz0           at vsbus0 csr 0x200a0000 # DC-367 DZ-11 lookalike ctlr
+#dz0           at vsbus0 csr 0x25000000 # VS4000/90 and 4000/10x serial line
+#si0           at vsbus0 csr 0x200c0080 # VS2000/3100 SCSI-ctlr
+#si1           at vsbus0 csr 0x200c0180 # VS2000/3100 SCSI-ctlr
+#asc0          at vsbus0 csr 0x200c0080 # VS4000/60 (or VLC) SCSI-ctlr
+#asc0          at vsbus0 csr 0x26000080 # VS4000/90 and 4000/10x SCSI-ctlr
+#smg0          at vsbus0 csr 0x200f0000 # Small monochrome display ctlr.
+#clr0          at vsbus0 csr 0x30000000 # 4- or 8-bitplans color graphics
+#spx0          at vsbus0 csr 0x38000000 # Low Cost SPX on VS4000/90.
+#lcg0          at vsbus0 csr 0x21801000 # VS4000/60 (or VLC) graphics
+#tc0           at vsbus0 csr 0x36000000 # VS4000/60 or 90 TC adapter
+#tcds*         at tc0 slot ? offset ?   # TC dual SCSI controller
+#asc*          at tcds? chip ?          # PMAZB/C
+#asc*          at tc? slot ? offset ?   # PMAZ 
+#fta*          at tc? slot ? offset ?   # TC FDDI controller
+
+#hdc0          at vsbus0 csr 0x200c0000 # HDC9224 MFM/floppy ctlr
+#rd*           at hdc0 drive?          # RD5x disks
+#ry*           at hdc0 drive?          # RX floppies
+
+
+# Devices connected at VAXBI
+#cpu*          at bi? node?            # KA820/KA825 CPU
+#mem*          at bi? node?            # Memory subsystems
+#uba*          at bi? node?            # DWBUA BI-Unibus adapter
+#ni*           at bi? node?            # DEBNA/DEBNT ethernet adapter
+#kdb*          at bi? node?            # KDB50 MSCP disk ctlr
+
+# CMI (VAX 11/750)
+mem*           at cmi? tr?             # Memory subsystems
+uba*           at cmi? tr?             # Unibus adapters
+mba*           at cmi? tr?             # Massbus adapters
+
+# UBI (VAX 11/730)
+mem*           at ubi? tr?             # Memory subsystems
+uba*           at ubi? tr?             # Unibus adapters
+
+# SBI (VAX 11/780, VAX 8600)
+mem*           at sbi? tr?             # Memory subsystems
+uba*           at sbi? tr?             # Unibus adapters
+mba*           at sbi? tr?             # Massbus adapters
+
+# Devices on Massbus adapters
+#hp*           at mba? drive?          # RM/RP disk drives
+
+# Devices on Unibus/Qbus adapters
+uda*           at uba? csr 0172150     # UDA50/RQDX?
+uda*           at uba? csr 0160334
+mtc*           at uba? csr 0174500     # Tape MSCP ctlr
+ts0            at uba? csr 0172520     # TS11/TSV05 tape.
+#qd0           at uba? csr 0177400     # 4- or 8-bitplans color graphics
+#qv0           at uba? csr 0177400     # Monochrome graphics
+de*            at uba? csr 0174510     # DELUA/DEUNA
+#qe*           at uba? csr 0174440     # DEQNA/DELQA
+#qe*           at uba? csr 0174460     # DEQNA/DELQA
+#qt*           at uba? csr 0174440     # DELQA-PLUS in Turbo mode
+#dhu*          at uba? csr 0160440     # DHU-11
+#dmf*          at uba? csr 0160340     # DMF-32
+#dz*           at uba? csr 0160100     # DZ-11
+#dl*           at uba? csr 0176500     # DL-11
+#rlc*          at uba? csr 0174400     # RL11/RLV11 controller
+#rl*           at rlc? drive?          # RL01/RL02 disk drive
+#rfc0          at uba? csr 0177170     # RX01/02 controller
+#rf*           at rfc? drive?          # RX01/RX02 floppy disk drive
+
+# MSCP devices
+mscpbus*       at uda?
+mscpbus*       at mtc?
+#mscpbus*      at kdb?
+
+ra*            at mscpbus? drive?      # MSCP disk
+rx*            at mscpbus? drive?      # MSCP floppy
+mt*            at mscpbus? drive?      # MSCP tape
+
+# SCSI devices
+#scsibus*      at scsi?
+
+#sd*           at scsibus? target? lun?
+#st*           at scsibus? target? lun?
+#cd*           at scsibus? target? lun?
+#ch*           at scsibus? target? lun?
+#ss*           at scsibus? target? lun?
+#uk*           at scsibus? target? lun?
+
+# VAXstation graphics support
+#wsdisplay*    at smg0
+#wsdisplay*    at spx0
+#wsdisplay*    at lcg0
+#wsdisplay*    at clr0
+#wsdisplay*    at qd0
+#wsdisplay*    at qv0
+#lkkbd0                at dz0 line 0
+#wskbd*                at lkkbd? console ?
+#lkms0         at dz0 line 1
+#wsmouse*      at lkms?
+
+#
+# accept filters
+#pseudo-device   accf_data             # "dataready" accept filter
+#pseudo-device   accf_http             # "httpready" accept filter
+
+pseudo-device  loop    1
+pseudo-device  pty                     # pseudo-terminals
+#pseudo-device bpfilter
+#pseudo-device carp                    # Common Address Redundancy Protocol
+#pseudo-device ipfilter                # IP filter (firewall) and NAT
+#pseudo-device sl      
+#pseudo-device ppp     
+#pseudo-device pppoe                   # PPP over Ethernet (RFC 2516)
+#pseudo-device tun     
+#pseudo-device tap                     # virtual Ethernet
+#pseudo-device gre                     # generic L3 over IP tunnel
+#pseudo-device gif                     # IPv[46] over IPv[46] tunnel (RFC1933)
+#pseudo-device faith                   # IPv[46] tcp relay translation i/f
+#pseudo-device stf                     # 6to4 IPv6 over IPv4 encapsulation
+#pseudo-device vlan                    # IEEE 802.1q encapsulation
+#pseudo-device bridge                  # simple inter-network bridging
+#options       BRIDGE_IPF              # bridge uses IP/IPv6 pfil hooks too
+#pseudo-device agr                     # IEEE 802.3ad link aggregation
+#pseudo-device vnd     
+#options       VND_COMPRESSION         # compressed vnd(4)
+#pseudo-device ccd     4
+#pseudo-device cgd     4               # cryptographic disk devices
+#pseudo-device raid    8               # RAIDframe disk driver
+#options       RAID_AUTOCONFIG         # auto-configuration of RAID components
+# Options to enable various other RAIDframe RAID types.
+# options      RF_INCLUDE_EVENODD=1
+# options      RF_INCLUDE_RAID5_RS=1
+# options      RF_INCLUDE_PARITYLOGGING=1
+# options      RF_INCLUDE_CHAINDECLUSTER=1
+# options      RF_INCLUDE_INTERDECLUSTER=1
+# options      RF_INCLUDE_PARITY_DECLUSTERING=1
+# options      RF_INCLUDE_PARITY_DECLUSTERING_DS=1
+#pseudo-device fss     4               # file system snapshot device
+pseudo-device  rnd                     # /dev/random and in-kernel generator
+#pseudo-device leds                    # control the leds on vaxstations.
+pseudo-device  clockctl                # user control of clock subsystem
+pseudo-device  ksyms                   # /dev/ksyms
+#pseudo-device wsmux                   # mouse & keyboard multiplexor
+#pseudo-device pf                      # PF packet filter
+#pseudo-device pflog                   # PF log if
+
+# Veriexec
+#
+# a pseudo device needed for veriexec
+#pseudo-device veriexec                1
+#
+# Uncomment the fingerprint methods below that are desired. Note that
+# removing fingerprint methods will have almost no impact on the kernel
+# code size.
+#
+#options VERIFIED_EXEC_FP_RMD160
+#options VERIFIED_EXEC_FP_SHA256
+#options VERIFIED_EXEC_FP_SHA384
+#options VERIFIED_EXEC_FP_SHA512
+#options VERIFIED_EXEC_FP_SHA1
+#options VERIFIED_EXEC_FP_MD5
--- src/sys/arch/vax/conf/files.vax.~1.112.~    2008-08-12 13:54:47.000000000 
-0400
+++ src/sys/arch/vax/conf/files.vax     2009-01-12 14:45:10.000000000 -0500
@@ -55,7 +55,15 @@
 
 attach mem at cmi with mem_cmi
 file   arch/vax/vax/ka750.c            vax750 | mem_cmi | vaxany
-file   arch/vax/vax/ctu.c              vax750 | mem_cmi | vaxany
+file   arch/vax/vax/ctu.c              vax750 | vax730 | mem_cmi | vaxany
+
+# Direct unibus interface
+device ubi { tr=-1 }
+attach ubi at mainbus
+file   arch/vax/vax/ubi.c              ubi
+
+attach mem at ubi with mem_ubi
+file   arch/vax/vax/ka730.c            vax730 | mem_ubi | vaxany
 
 device vsbus { csr }: bus
 attach vsbus at mainbus
@@ -108,6 +116,8 @@
 file   arch/vax/uba/uba_sbi.c          uba_sbi
 attach uba at cmi with uba_cmi
 file   arch/vax/uba/uba_cmi.c          uba_cmi
+attach uba at ubi with uba_ubi
+file   arch/vax/uba/uba_ubi.c          uba_ubi
 
 # BI bus definitions
 include "dev/bi/files.bi"
--- src/sys/arch/vax/vax/locore.c.~1.75.~       2008-03-11 01:34:03.000000000 
-0400
+++ src/sys/arch/vax/vax/locore.c       2009-01-12 14:38:19.000000000 -0500
@@ -70,6 +70,7 @@
  */
 extern const struct cpu_dep ka780_calls;
 extern const struct cpu_dep ka750_calls;
+extern const struct cpu_dep ka730_calls;
 extern const struct cpu_dep ka860_calls;
 extern const struct cpu_dep ka820_calls;
 extern const struct cpu_dep ka6400_calls;
@@ -125,6 +126,12 @@
                strcpy(cpu_model, "VAX 11/750");
                break;
 #endif
+#if VAX730 || VAXANY
+       case VAX_BTYP_730:
+               dep_call = &ka730_calls;
+               strcpy(cpu_model, "VAX 11/730");
+               break;
+#endif
 #if VAX8600 || VAXANY
        case VAX_BTYP_790:
                dep_call = &ka860_calls;
--- src/sys/dev/qbus/ts.c.~1.25.~       2008-04-05 15:16:49.000000000 -0400
+++ src/sys/dev/qbus/ts.c       2009-01-21 13:46:01.000000000 -0500
@@ -529,7 +529,7 @@
        TS_WCSR(TSSR, 0);       /* start initialization */
        while ((TS_RCSR(TSSR) & TS_SSR) == 0) {
                DELAY(10000);
-               if (timeout++ > 1000)
+               if (timeout++ > /*1000*/100)
                        return false;
        }
        return true;


Home | Main Index | Thread Index | Old Index