1*f016e292Stsutsui /* $NetBSD: hpcvar.h,v 1.12 2011/01/25 12:21:04 tsutsui Exp $ */ 2c4173c40Sthorpej 3c4173c40Sthorpej /* 4c4173c40Sthorpej * Copyright (c) 2001 Rafal K. Boni 5c4173c40Sthorpej * All rights reserved. 6c4173c40Sthorpej * 7c4173c40Sthorpej * Redistribution and use in source and binary forms, with or without 8c4173c40Sthorpej * modification, are permitted provided that the following conditions 9c4173c40Sthorpej * are met: 10c4173c40Sthorpej * 1. Redistributions of source code must retain the above copyright 11c4173c40Sthorpej * notice, this list of conditions and the following disclaimer. 12c4173c40Sthorpej * 2. Redistributions in binary form must reproduce the above copyright 13c4173c40Sthorpej * notice, this list of conditions and the following disclaimer in the 14c4173c40Sthorpej * documentation and/or other materials provided with the distribution. 15c4173c40Sthorpej * 3. The name of the author may not be used to endorse or promote products 16c4173c40Sthorpej * derived from this software without specific prior written permission. 17c4173c40Sthorpej * 18c4173c40Sthorpej * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 19c4173c40Sthorpej * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 20c4173c40Sthorpej * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 21c4173c40Sthorpej * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 22c4173c40Sthorpej * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 23c4173c40Sthorpej * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24c4173c40Sthorpej * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25c4173c40Sthorpej * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26c4173c40Sthorpej * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27c4173c40Sthorpej * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28c4173c40Sthorpej */ 29c4173c40Sthorpej 30c4173c40Sthorpej #ifndef _ARCH_SGIMIPS_HPC_HPCVAR_H_ 31c4173c40Sthorpej #define _ARCH_SGIMIPS_HPC_HPCVAR_H_ 32c4173c40Sthorpej 338e5c74aaSsekiya #define HPCDEV_IP12 (1U << 0) /* Indigo R3k, 4D/3x */ 348e5c74aaSsekiya #define HPCDEV_IP20 (1U << 1) /* Indigo R4k */ 358e5c74aaSsekiya #define HPCDEV_IP22 (1U << 2) /* Indigo2 */ 368e5c74aaSsekiya #define HPCDEV_IP24 (1U << 3) /* Indy */ 378e5c74aaSsekiya 38af4ac18eSsekiya /* HPC 1.5/3 differ a bit, thus we need an abstraction layer */ 39af4ac18eSsekiya 40af4ac18eSsekiya struct hpc_values { 41af4ac18eSsekiya int revision; 42*f016e292Stsutsui uint32_t scsi0_regs; 43*f016e292Stsutsui uint32_t scsi0_regs_size; 44*f016e292Stsutsui uint32_t scsi0_cbp; 45*f016e292Stsutsui uint32_t scsi0_ndbp; 46*f016e292Stsutsui uint32_t scsi0_bc; 47*f016e292Stsutsui uint32_t scsi0_ctl; 48*f016e292Stsutsui uint32_t scsi0_gio; 49*f016e292Stsutsui uint32_t scsi0_dev; 50*f016e292Stsutsui uint32_t scsi0_dmacfg; 51*f016e292Stsutsui uint32_t scsi0_piocfg; 52*f016e292Stsutsui uint32_t scsi1_regs; 53*f016e292Stsutsui uint32_t scsi1_regs_size; 54*f016e292Stsutsui uint32_t scsi1_cbp; 55*f016e292Stsutsui uint32_t scsi1_ndbp; 56*f016e292Stsutsui uint32_t scsi1_bc; 57*f016e292Stsutsui uint32_t scsi1_ctl; 58*f016e292Stsutsui uint32_t scsi1_gio; 59*f016e292Stsutsui uint32_t scsi1_dev; 60*f016e292Stsutsui uint32_t scsi1_dmacfg; 61*f016e292Stsutsui uint32_t scsi1_piocfg; 62*f016e292Stsutsui uint32_t enet_regs; 63*f016e292Stsutsui uint32_t enet_regs_size; 64*f016e292Stsutsui uint32_t enet_intdelay; 65*f016e292Stsutsui uint32_t enet_intdelayval; 66*f016e292Stsutsui uint32_t enetr_cbp; 67*f016e292Stsutsui uint32_t enetr_ndbp; 68*f016e292Stsutsui uint32_t enetr_bc; 69*f016e292Stsutsui uint32_t enetr_ctl; 70*f016e292Stsutsui uint32_t enetr_ctl_active; 71*f016e292Stsutsui uint32_t enetr_reset; 72*f016e292Stsutsui uint32_t enetr_dmacfg; 73*f016e292Stsutsui uint32_t enetr_piocfg; 74*f016e292Stsutsui uint32_t enetx_cbp; 75*f016e292Stsutsui uint32_t enetx_ndbp; 76*f016e292Stsutsui uint32_t enetx_bc; 77*f016e292Stsutsui uint32_t enetx_ctl; 78*f016e292Stsutsui uint32_t enetx_ctl_active; 79*f016e292Stsutsui uint32_t enetx_dev; 80*f016e292Stsutsui uint32_t enetr_fifo; 81*f016e292Stsutsui uint32_t enetr_fifo_size; 82*f016e292Stsutsui uint32_t enetx_fifo; 83*f016e292Stsutsui uint32_t enetx_fifo_size; 84*f016e292Stsutsui uint32_t scsi0_devregs_size; 85*f016e292Stsutsui uint32_t scsi1_devregs_size; 86*f016e292Stsutsui uint32_t enet_devregs; 87*f016e292Stsutsui uint32_t enet_devregs_size; 88*f016e292Stsutsui uint32_t pbus_fifo; 89*f016e292Stsutsui uint32_t pbus_fifo_size; 90*f016e292Stsutsui uint32_t pbus_bbram; 91*f016e292Stsutsui uint32_t scsi_max_xfer; 92*f016e292Stsutsui uint32_t scsi_dma_segs; 93*f016e292Stsutsui uint32_t scsi_dma_segs_size; 94*f016e292Stsutsui uint32_t scsi_dma_datain_cmd; 95*f016e292Stsutsui uint32_t scsi_dma_dataout_cmd; 96*f016e292Stsutsui uint32_t scsi_dmactl_flush; 97*f016e292Stsutsui uint32_t scsi_dmactl_active; 98*f016e292Stsutsui uint32_t scsi_dmactl_reset; 99af4ac18eSsekiya }; 100af4ac18eSsekiya 101c4173c40Sthorpej struct hpc_attach_args { 102be010c72Sthorpej const char *ha_name; /* name of device */ 103be010c72Sthorpej bus_addr_t ha_devoff; /* offset of device */ 104be010c72Sthorpej bus_addr_t ha_dmaoff; /* offset of DMA regs */ 105be010c72Sthorpej int ha_irq; /* interrupt line */ 1060ac0d0d4Swdk 107be010c72Sthorpej bus_space_tag_t ha_st; /* HPC space tag */ 108be010c72Sthorpej bus_space_handle_t ha_sh; /* HPC space handle XXX */ 109be010c72Sthorpej bus_dma_tag_t ha_dmat; /* HPC DMA tag */ 110af4ac18eSsekiya 111af4ac18eSsekiya struct hpc_values *hpc_regs; /* HPC register definitions */ 112121e1e9bSrumble 113121e1e9bSrumble uint8_t hpc_eeprom[256];/* HPC eeprom contents */ 114c4173c40Sthorpej }; 115c4173c40Sthorpej 116c4173c40Sthorpej #endif /* _ARCH_SGIMIPS_HPC_HPCVAR_H_ */ 117