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