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