--- 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 06:44:34.000000000 -0500 @@ -0,0 +1,173 @@ +/* $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 +__KERNEL_RCSID(0, "$NetBSD: uba_ubi.c,v 1.12 2003/08/07 16:30:14 agc Exp $"); + +#include +#include +#include + +#define _VAX_BUS_DMA_PRIVATE +#include +#include +#include +#include +#include + +#include + +#include + +#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(uba_ubi, sizeof(struct uba_vsoftc), + dw730_match, dw730_attach, NULL, NULL); + +extern struct vax_bus_space vax_mem_bus_space; + +int +dw730_match(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; + /* + * 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(struct device *parent, struct device *self, void *aux) +{ + struct uba_vsoftc *sc = (void *)self; + struct sbi_attach_args *sa = aux; + + printf(": DW730\n"); + /* + * Fill in bus specific data. + */ + 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 06:44:22.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 +__KERNEL_RCSID(0, "$NetBSD: ubi.c,v 1.8 2003/07/15 02:15:03 lukem Exp $"); + +#include +#include +#include + +#include +#include +#include +#include +#include + +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(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-22 06:44:02.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 + +#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 07:04:06.000000000 -0500 @@ -0,0 +1,199 @@ +/* $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 +__KERNEL_RCSID(0, "$NetBSD: ka730.c,v 1.36 2003/08/07 16:30:19 agc Exp $"); + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include + +#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(caddr_t); + + +struct cpu_dep ka730_calls = { + 0, + ka730_mchk, + ka730_memerr, + ka730_conf, + generic_gettime, + generic_settime, + 1, /* ~VUPS */ + 4, /* SCB pages */ + 0, /* halt call */ + 0, /* Reboot call */ + ka730_clrf, +}; + +void +ka730_conf() +{ + printf("cpu0: KA730, ucode rev %d\n", V730UCODE(vax_cpudata)); + + /* Call ctuattach() here so it can setup its vectors. */ + ctuattach(); +} + +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(caddr_t 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-22 07:01:15.000000000 -0500 @@ -0,0 +1,343 @@ +# $NetBSD: GENERIC,v 1.156.2.1 2007/06/05 20:50:02 bouyer Exp $ +# +# GENERIC machine description file +# +# This machine description file is used to generate the default NetBSD +# kernel. The generic kernel does not include all options, subsystems +# and device drivers, but should be useful for most applications. +# +# 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 SYSTRACE # system call vetting via systrace(1) +#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 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 SEMMNI=10 # number of semaphore identifiers +#options SEMMNS=60 # number of semaphores in system +#options SEMUME=10 # max number of undo entries per process +#options SEMMNU=30 # number of undo structures in system +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_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 + +# All buses; from the beginning attached to mainbus. +#abus0 at mainbus0 # Master bus on VAX 8600 +sbi0 at mainbus0 # SBI, master bus on 11/780. +cmi0 at mainbus0 # 11/750 internal bus. +ubi0 at mainbus0 # 11/730 direct unibus +#bi0 at mainbus0 # VAX 8200 +#vsbus0 at mainbus0 # All VAXstations +#ibus0 at mainbus0 # All MicroVAX +#nbi0 at mainbus0 # VAX 8800 +#xmi0 at mainbus0 # VAX 6000 + +# 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 +#ze0 at vsbus0 csr 0x20008000 # SGEC 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 +#lcspx0 at vsbus0 csr 0x38000000 # Low Cost SPX on VS4000/90. +#lcg0 at vsbus0 csr 0x21801000 # VS4000/60 (or VLC) graphics + +#hdc0 at vsbus0 csr 0x200c0000 # HDC9224 MFM/floppy ctlr +#rd* at hdc0 drive? # RD5x disks +#ry* at hdc0 drive? # RX floppies + +# Ibus, the internal bus on most Microvaxen +#uba0 at ibus0 # Qbus adapter +#ze0 at ibus0 # SGEC on-board ethernet +#le0 at ibus0 # LANCE ethernet (MV3400) +#shac0 at ibus0 # DSSI controller + +# 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) +#sbi* at abus0 # VAX 8600 can have up to 4 SBI's. + +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 asc? +#scsibus* at si? + +#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 +#wsdisplay0 at smg0 +#wsdisplay0 at lcspx0 +#wsdisplay0 at lcg0 +#wsdisplay0 at clr0 +#wsdisplay0 at qd0 +#wsdisplay0 at qv0 +#lkkbd0 at dz0 line 0 +#wskbd* at lkkbd? console ? +#lkms0 at dz0 line 1 +#wsmouse* at lkms? + +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.104.~ 2006-07-29 15:10:56.000000000 -0400 +++ src/sys/arch/vax/conf/files.vax 2009-01-22 06:59:59.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 } attach vsbus at mainbus @@ -112,6 +120,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" @@ -312,9 +322,9 @@ file arch/vax/vax/locore.c file arch/vax/vax/mem.c file arch/vax/vax/clock.c -file arch/vax/vax/gencons.c vax8600 | vax780 | vax750 | vax630 | +file arch/vax/vax/gencons.c vax8600 | vax780 | vax750 | vax730 | vax8200 | vax680 | vax650 | vax660 | - vax670 | vaxany + vax670 | vax630 | vaxany file arch/vax/vax/pmap.c file arch/vax/vax/machdep.c file arch/vax/vax/ka820.c vax8200 | vaxany --- src/sys/arch/vax/vax/locore.c.~1.71.~ 2005-12-24 17:45:40.000000000 -0500 +++ src/sys/arch/vax/vax/locore.c 2009-01-22 06:45:05.000000000 -0500 @@ -70,6 +70,7 @@ */ extern struct cpu_dep ka780_calls; extern struct cpu_dep ka750_calls; +extern struct cpu_dep ka730_calls; extern struct cpu_dep ka860_calls; extern struct cpu_dep ka820_calls; extern 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/arch/vax/vax/sbi.c.~1.31.~ 2005-12-11 07:19:36.000000000 -0500 +++ src/sys/arch/vax/vax/sbi.c 2009-01-22 06:46:39.000000000 -0500 @@ -93,25 +93,30 @@ void sbi_attach(struct device *parent, struct device *self, void *aux) { - struct bp_conf *bp = aux; u_int nexnum, minnex = 0; /* default only one SBI, as on 780 */ struct sbi_attach_args sa; + paddr_t nexbase; printf("\n"); #define NEXPAGES (sizeof(struct nexus) / VAX_NBPG) if (vax_boardtype == VAX_BTYP_780) { sa.sa_sbinum = 0; + nexbase = (paddr_t)NEX780; } +#ifdef NEXA8600 if (vax_boardtype == VAX_BTYP_790) { + struct bp_conf *bp = aux; minnex = bp->num * NNEXSBI; sa.sa_sbinum = bp->num; + nexbase = (paddr_t)NEXA8600; } +#endif for (nexnum = minnex; nexnum < minnex + NNEXSBI; nexnum++) { struct nexus *nexusP = 0; volatile int tmp; - nexusP = (struct nexus *)vax_map_physmem((paddr_t)NEXA8600 + + nexusP = (struct nexus *)vax_map_physmem(nexbase + sizeof(struct nexus) * nexnum, NEXPAGES); if (badaddr((caddr_t)nexusP, 4)) { vax_unmap_physmem((vaddr_t)nexusP, NEXPAGES);