1098ca2bdSWarner Losh /*- 2*718cf2ccSPedro F. Giffuni * SPDX-License-Identifier: BSD-4-Clause 3*718cf2ccSPedro F. Giffuni * 485737cb2SColeman Kane * Copyright (c) 2000-2001 by Coleman Kane <cokane@FreeBSD.org> 55b645087SColeman Kane * All rights reserved. 65b645087SColeman Kane * 75b645087SColeman Kane * Redistribution and use in source and binary forms, with or without 85b645087SColeman Kane * modification, are permitted provided that the following conditions 95b645087SColeman Kane * are met: 105b645087SColeman Kane * 1. Redistributions of source code must retain the above copyright 115b645087SColeman Kane * notice, this list of conditions and the following disclaimer. 125b645087SColeman Kane * 2. Redistributions in binary form must reproduce the above copyright 135b645087SColeman Kane * notice, this list of conditions and the following disclaimer in the 145b645087SColeman Kane * documentation and/or other materials provided with the distribution. 155b645087SColeman Kane * 3. All advertising materials mentioning features or use of this software 165b645087SColeman Kane * must display the following acknowledgement: 175b645087SColeman Kane * This product includes software developed by Gardner Buchanan. 185b645087SColeman Kane * 4. The name of Gardner Buchanan may not be used to endorse or promote 195b645087SColeman Kane * products derived from this software without specific prior written 205b645087SColeman Kane * permission. 215b645087SColeman Kane * 225b645087SColeman Kane * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 235b645087SColeman Kane * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 245b645087SColeman Kane * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 255b645087SColeman Kane * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 265b645087SColeman Kane * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 275b645087SColeman Kane * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 285b645087SColeman Kane * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 295b645087SColeman Kane * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 305b645087SColeman Kane * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 315b645087SColeman Kane * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 325b645087SColeman Kane */ 335b645087SColeman Kane 34f9c078dfSColeman Kane /* tdfx_vars.h -- constants and structs used in the tdfx driver 3585737cb2SColeman Kane Copyright (C) 2000-2001 by Coleman Kane <cokane@FreeBSD.org> 36f9c078dfSColeman Kane */ 37f9c078dfSColeman Kane #ifndef TDFX_VARS_H 38f9c078dfSColeman Kane #define TDFX_VARS_H 39f9c078dfSColeman Kane 40f9c078dfSColeman Kane #include <sys/memrange.h> 415b645087SColeman Kane #include <sys/param.h> 425b645087SColeman Kane #include <sys/bus.h> 435b645087SColeman Kane #include <sys/cdefs.h> 44f9c078dfSColeman Kane 45f9c078dfSColeman Kane #define PCI_DEVICE_ALLIANCE_AT3D 0x643d1142 4685737cb2SColeman Kane #define PCI_DEVICE_3DFX_VOODOO1 0x0001121a 47f9c078dfSColeman Kane #define PCI_DEVICE_3DFX_VOODOO2 0x0002121a 48f9c078dfSColeman Kane #define PCI_DEVICE_3DFX_BANSHEE 0x0003121a 49f9c078dfSColeman Kane #define PCI_DEVICE_3DFX_VOODOO3 0x0005121a 50f9c078dfSColeman Kane 51f9c078dfSColeman Kane #define PCI_VENDOR_ID_FREEBSD 0x0 52f9c078dfSColeman Kane #define PCI_DEVICE_ID_FREEBSD 0x2 53f9c078dfSColeman Kane #define PCI_COMMAND_FREEBSD 0x4 54f9c078dfSColeman Kane #define PCI_REVISION_ID_FREEBSD 0x8 55f9c078dfSColeman Kane #define PCI_BASE_ADDRESS_0_FREEBSD 0x10 56a436a797SColeman Kane #define PCI_BASE_ADDRESS_1_FREEBSD 0x14 57a436a797SColeman Kane #define PCI_PRIBUS_FREEBSD 0x18 58a436a797SColeman Kane #define PCI_IOBASE_0_FREEBSD 0x2c 59a436a797SColeman Kane #define PCI_IOLIMIT_0_FREEBSD 0x30 60f9c078dfSColeman Kane #define SST1_PCI_SPECIAL1_FREEBSD 0x40 61f9c078dfSColeman Kane #define SST1_PCI_SPECIAL2_FREEBSD 0x44 62f9c078dfSColeman Kane #define SST1_PCI_SPECIAL3_FREEBSD 0x48 63f9c078dfSColeman Kane #define SST1_PCI_SPECIAL4_FREEBSD 0x54 64f9c078dfSColeman Kane 65f9c078dfSColeman Kane #define VGA_INPUT_STATUS_1C 0x3DA 66f9c078dfSColeman Kane #define VGA_MISC_OUTPUT_READ 0x3cc 67f9c078dfSColeman Kane #define VGA_MISC_OUTPUT_WRITE 0x3c2 68f9c078dfSColeman Kane #define SC_INDEX 0x3c4 69f9c078dfSColeman Kane #define SC_DATA 0x3c5 70f9c078dfSColeman Kane 71f9c078dfSColeman Kane #define PCI_MAP_REG_START 0x10 72f9c078dfSColeman Kane #define UNIT(m) (m & 0xf) 73f9c078dfSColeman Kane 74f9c078dfSColeman Kane /* IOCTL Calls */ 75f9c078dfSColeman Kane #define TDFX_IOC_TYPE_PIO 0 76f9c078dfSColeman Kane #define TDFX_IOC_TYPE_QUERY '3' 77f9c078dfSColeman Kane #define TDFX_IOC_QRY_BOARDS 2 78f9c078dfSColeman Kane #define TDFX_IOC_QRY_FETCH 3 79f9c078dfSColeman Kane #define TDFX_IOC_QRY_UPDATE 4 80f9c078dfSColeman Kane 81f9c078dfSColeman Kane struct tdfx_softc { 82f9c078dfSColeman Kane int cardno; 8348f6bffcSColeman Kane vm_offset_t addr, addr2; 8448f6bffcSColeman Kane struct resource *memrange, *memrange2, *piorange; 8548f6bffcSColeman Kane int memrid, memrid2, piorid; 86f9c078dfSColeman Kane long range; 87f9c078dfSColeman Kane int vendor; 88f9c078dfSColeman Kane int type; 8948f6bffcSColeman Kane int addr0, addr1; 90a436a797SColeman Kane short pio0, pio0max; 91f9c078dfSColeman Kane unsigned char bus; 92f9c078dfSColeman Kane unsigned char dv; 93f9c078dfSColeman Kane struct file *curFile; 94f9c078dfSColeman Kane device_t dev; 9589c9c53dSPoul-Henning Kamp struct cdev *devt; 96f9c078dfSColeman Kane struct mem_range_desc mrdesc; 97f9c078dfSColeman Kane int busy; 98f9c078dfSColeman Kane }; 99f9c078dfSColeman Kane 100f9c078dfSColeman Kane struct tdfx_pio_data { 101f9c078dfSColeman Kane short port; 102f9c078dfSColeman Kane short size; 103f9c078dfSColeman Kane int device; 104f9c078dfSColeman Kane void *value; 105f9c078dfSColeman Kane }; 106f9c078dfSColeman Kane 107f9c078dfSColeman Kane #endif /* TDFX_VARS_H */ 108