1*7a092e0dShans /* $NetBSD: uba_common.h,v 1.6 2008/11/19 15:39:10 hans Exp $ */ 251dd099eSragge /*- 351dd099eSragge * Copyright (c) 1982, 1986 The Regents of the University of California. 402637941Sragge * All rights reserved. 551dd099eSragge * (c) UNIX System Laboratories, Inc. 651dd099eSragge * All or some portions of this file are derived from material licensed 751dd099eSragge * to the University of California by American Telephone and Telegraph 851dd099eSragge * Co. or Unix System Laboratories, Inc. and are reproduced herein with 951dd099eSragge * the permission of UNIX System Laboratories, Inc. 1002637941Sragge * 1102637941Sragge * Redistribution and use in source and binary forms, with or without 1202637941Sragge * modification, are permitted provided that the following conditions 1302637941Sragge * are met: 1402637941Sragge * 1. Redistributions of source code must retain the above copyright 1502637941Sragge * notice, this list of conditions and the following disclaimer. 1602637941Sragge * 2. Redistributions in binary form must reproduce the above copyright 1702637941Sragge * notice, this list of conditions and the following disclaimer in the 1802637941Sragge * documentation and/or other materials provided with the distribution. 19aad01611Sagc * 3. Neither the name of the University nor the names of its contributors 2051dd099eSragge * may be used to endorse or promote products derived from this software 2151dd099eSragge * without specific prior written permission. 2202637941Sragge * 2351dd099eSragge * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 2451dd099eSragge * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2551dd099eSragge * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2651dd099eSragge * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 2751dd099eSragge * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2851dd099eSragge * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2951dd099eSragge * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 3051dd099eSragge * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 3151dd099eSragge * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 3251dd099eSragge * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3351dd099eSragge * SUCH DAMAGE. 3451dd099eSragge * 3551dd099eSragge * @(#)ubareg.h 7.8 (Berkeley) 5/9/91 3602637941Sragge */ 3702637941Sragge 3802637941Sragge /* 3902637941Sragge * VAX-specific parts of the Unibus softc. 4002637941Sragge */ 4151dd099eSragge struct uba_regs; 4202637941Sragge 4302637941Sragge struct uba_vsoftc { 4402637941Sragge struct uba_softc uv_sc;/* Common vars from dev/qbus/ubavar.h */ 4502637941Sragge struct vax_bus_dma_tag uv_dmat; 4602637941Sragge struct vax_sgmap uv_sgmap; 4702637941Sragge int uv_size; /* Size of UBA addressable memory */ 4802637941Sragge paddr_t uv_addr; /* Physical address of map registers */ 4951dd099eSragge struct uba_regs *uv_uba;/* Where applicable */ 5051dd099eSragge int uh_ibase; 5151dd099eSragge int uh_zvtime; 5251dd099eSragge int uh_zvtotal; 5351dd099eSragge int uh_zvcnt; 5451dd099eSragge }; 5551dd099eSragge 5651dd099eSragge /* 5751dd099eSragge * Size of unibus memory address space in pages 5851dd099eSragge * (also number of map registers). 5951dd099eSragge */ 6051dd099eSragge #define UBAPAGES 496 6151dd099eSragge #define UBAIOADDR 0760000 /* start of I/O page */ 6251dd099eSragge #define UBAIOPAGES 16 6351dd099eSragge 6451dd099eSragge /* 6551dd099eSragge * DW780/DW750 hardware registers 6651dd099eSragge */ 6751dd099eSragge struct uba_regs { 68*7a092e0dShans volatile int uba_cnfgr; /* configuration register */ 69*7a092e0dShans volatile int uba_cr; /* control register */ 70*7a092e0dShans volatile int uba_sr; /* status register */ 71*7a092e0dShans volatile int uba_dcr; /* diagnostic control register */ 72*7a092e0dShans volatile int uba_fmer; /* failed map entry register */ 73*7a092e0dShans volatile int uba_fubar; /* failed UNIBUS address register */ 7451dd099eSragge int pad1[2]; 75*7a092e0dShans volatile int uba_brsvr[4]; 76*7a092e0dShans volatile int uba_brrvr[4]; /* receive vector registers */ 77*7a092e0dShans volatile int uba_dpr[16]; /* buffered data path register */ 7851dd099eSragge int pad2[480]; 7951dd099eSragge struct pte uba_map[UBAPAGES]; /* unibus map register */ 8051dd099eSragge int pad3[UBAIOPAGES]; /* no maps for device address space */ 8102637941Sragge }; 8202637941Sragge 83dfba8166Smatt void uba_dma_init(struct uba_vsoftc *); 84