xref: /freebsd/sys/dev/tdfx/tdfx_vars.h (revision 5b645087b888b0046649cbc5c6bf37d0505b827b)
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