--- 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-07 11:47:22.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-07 11:52:37.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-07 19:11:22.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-07 19:14:03.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_clkread, + generic_clkwrite, + 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 +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-07 11:56:53.000000000 -0500 @@ -0,0 +1,275 @@ +# $NetBSD: GENERIC,v 1.118 2004/03/19 20:21:08 mhitch Exp $ +# VAX 11/780 +# + +include "arch/vax/conf/std.vax" + +options INCLUDE_CONFIG_FILE # embed config file in kernel binary + +#ident "VAX730" + +# 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,KMEMSTATS,PMAPDEBUG,TRAPDEBUG,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_DEBUG # debug for IP security +#options MROUTING # IP multicast routing +#options NS # XNS +#options NSIP # XNS tunneling over IP +#options ISO,TPIP # OSI +#options EON # OSI tunneling over IP +#options CCITT,LLC,HDLC # X.25 +#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_DEFAULT_BLOCK # block all packets by default + +# 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 + +options QUOTA +#options FFS_EI # FFS Endian Independant support +options SOFTDEP # FFS soft updates support. +#options NFSSERVER +options NFS_BOOT_BOOTP,NFS_BOOT_DHCP # Use bootp <> dhcp +options NFS_BOOT_BOOTPARAM # Use the Sun way for netbooting. + +# 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 + +# 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_ULTRIX +#options COMPAT_IBCS2 # DEC SVR.3 compatilibity +#options NO_INSN_EMULATE # CPU does not lack some hardware instructions. + +options LKM + +options USERCONF # userconf(4) support +#options PIPE_SOCKETPAIR # smaller, but slower pipe(2) + +# 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 NEW_BUFQ_STRATEGY + +# 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 +#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 8 # Not supported by de yet. +#pseudo-device ipfilter # IP filter (firewall) and NAT +#pseudo-device sl 2 +#pseudo-device ppp 2 +#pseudo-device pppoe # PPP over Ethernet (RFC 2516) +#pseudo-device tun 2 +#pseudo-device gre 2 # generic L3 over IP tunnel +#pseudo-device gif 4 # IPv[46] over IPv[46] tunnel (RFC1933) +#pseudo-device faith 1 # IPv[46] tcp relay translation i/f +#pseudo-device stf 1 # 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 tb 1 +#pseudo-device 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 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 --- src/sys/arch/vax/conf/files.vax.~1.101.~ 2003-10-19 11:03:25.000000000 -0400 +++ src/sys/arch/vax/conf/files.vax 2009-01-07 12:02:42.000000000 -0500 @@ -53,9 +53,17 @@ attach cmi at mainbus file arch/vax/vax/cmi.c cmi +# Direct unibus interface +device ubi { tr=-1 } +attach ubi at mainbus +file arch/vax/vax/ubi.c ubi + 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 + +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 | - vax8200 | vax680 | vax650 | vax660 | - vax670 | vaxany +file arch/vax/vax/gencons.c vax8600 | vax780 | vax750 | vax730 | + vax630 | vax8200 | vax680 | vax650 | + vax660 | vax670 | 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.68.~ 2004-02-13 06:36:20.000000000 -0500 +++ src/sys/arch/vax/vax/locore.c 2009-01-07 12:11:00.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; @@ -300,6 +307,15 @@ asm("halt"); } +#ifdef VAX730 + /* debug */ + { + extern void early_consinit(void); + early_consinit(); + printf("kernel alive\n"); + } +#endif + /* * Machines older than MicroVAX II have their boot blocks * loaded directly or the boot program loaded from console --- src/sys/arch/vax/vax/sbi.c.~1.30.~ 2003-11-05 19:33:36.000000000 -0500 +++ src/sys/arch/vax/vax/sbi.c 2009-01-06 20:43:34.000000000 -0500 @@ -93,25 +93,32 @@ 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; +#define NEXPAGES (sizeof(struct nexus) / VAX_NBPG) printf("\n"); -#define NEXPAGES (sizeof(struct nexus) / VAX_NBPG) if (vax_boardtype == VAX_BTYP_780) { sa.sa_sbinum = 0; + nexbase = (paddr_t)NEX780; } if (vax_boardtype == VAX_BTYP_790) { +#ifdef NEXA8600 + struct bp_conf *bp = aux; minnex = bp->num * NNEXSBI; sa.sa_sbinum = bp->num; + nexbase = (paddr_t)NEXA8600; +#else + return; +#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); --- src/sys/arch/vax/vax/conf.c.~1.64.~ 2004-03-19 15:15:21.000000000 -0500 +++ src/sys/arch/vax/vax/conf.c 2009-01-21 12:10:09.000000000 -0500 @@ -102,8 +102,8 @@ #include "qd.h" struct consdev constab[]={ -#if VAX8600 || VAX8200 || VAX780 || VAX750 || VAX650 || VAX630 || VAX660 || \ - VAX670 || VAX680 || VAX8800 || VAXANY +#if VAX8600 || VAX8200 || VAX780 || VAX750 || VAX730 || \ + VAX650 || VAX630 || VAX660 || VAX670 || VAX680 || VAX8800 || VAXANY cons_init(gen), /* Generic console type; mtpr/mfpr */ #endif #if VAX410 || VAX43 || VAX46 || VAX48 || VAX49 || VAX53 || VAXANY --- src/sys/dev/qbus/ts.c.~1.11.~ 2003-08-07 12:31:17.000000000 -0400 +++ src/sys/dev/qbus/ts.c 2009-01-21 09:28:41.000000000 -0500 @@ -202,6 +202,7 @@ struct uba_attach_args *ua = aux; int i; +printf("tsmatch\n"); sc->sc_iot = ua->ua_iot; sc->sc_ioh = ua->ua_ioh; sc->sc_mapped = 0; @@ -209,19 +210,23 @@ strcpy(XNAME, "ts"); /* Try to reset the device */ - for (i = 0; i < 3; i++) + for (i = 0; i < 3; i++) { +printf("tsmatch; reset %d\n", i); if (tsreset(sc) == 1) break; - + } if (i == 3) return 0; +printf("tsmatch; i %d\n", i); tsinit(sc); tswchar(sc); /* write charact. to enable interrupts */ /* completion of this will raise the intr. */ +printf("tsmatch; delay\n", i); DELAY(1000000); /* Wait for interrupt */ ubmemfree((void *)parent, &sc->sc_ui); +printf("ts match done\n"); return 1; } @@ -375,10 +380,8 @@ struct buf *bp; int cmd; - if (TAILQ_EMPTY(&sc->sc_bufq.bq_head)) + if ((bp = BUFQ_PEEK(&sc->sc_bufq)) == NULL) return 0; - - bp = BUFQ_PEEK(&sc->sc_bufq); #ifdef TSDEBUG printf("buf: %p bcount %ld blkno %d\n", bp, bp->b_bcount, bp->b_blkno); #endif @@ -517,7 +520,7 @@ TS_WCSR(TSSR, 0); /* start initialization */ while ((TS_RCSR(TSSR) & TS_SSR) == 0) { DELAY(10000); - if (timeout++ > 1000) + if (timeout++ > /*1000*/100) return 0; } return 1;