1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
/* $NetBSD: sfbreg.h,v 1.3 2000/12/19 01:25:46 perseant Exp $ */
/*
* Copyright (c) 1996 Carnegie-Mellon University.
* All rights reserved.
*
* Author: Chris G. Demetriou
*
* Permission to use, copy, modify and distribute this software and
* its documentation is hereby granted, provided that both the copyright
* notice and this permission notice appear in all copies of the
* software, derivative works or modified versions, and any portions
* thereof, and that both notices appear in supporting documentation.
*
* CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
* CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
* FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
*
* Carnegie Mellon requests users of this software to return to
*
* Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
* School of Computer Science
* Carnegie Mellon University
* Pittsburgh PA 15213-3890
*
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*/
/*
* Smart ("CXTurbo") Frame Buffer definitions, from:
* ``DEC 3000 300/400/500/600/700/800/900 AXP Models System Prgrammer's Manual''
* (DEC order number EK-D3SYS-PM), section 6.
*
* All definitions are in "dense" TURBOchannel space.
*/
#ifndef _DEV_TC_SFBREG_H_
#define _DEV_TC_SFBREG_H_
/*
* Size of the SFB address space.
*/
#define SFB_SIZE 0x1000000
/*
* Offsets into slot space of each functional unit.
*/
#define SFB_ASIC_OFFSET 0x0100000 /* SFB ASIC Control Registers */
#define SFB_ASIC_SIZE 0x0020000
#define SFB_RAMDAC_OFFSET 0x01c0000 /* BrookTree RAMDAC */
#define SFB_RAMDAC_SIZE 0x0040000
#define SFB_FB_OFFSET 0x0200000 /* Frame buffer */
#define SFB_FB_SIZE 0x0200000
#define SFB_OSBM_OFFSET 0x0600000 /* Off-screen buffer memory */
#define SFB_OSBM_SIZE 0x0200000
/*
* SFB ASIC registers (offsets from SFB_ASIC_OFFSET).
*/
#define SFB_ASIC_COPYBUF_0 0x0000 /* Copy buffer register 0 (R/W) */
#define SFB_ASIC_COPYBUF_1 0x0004 /* Copy buffer register 1 (R/W) */
#define SFB_ASIC_COPYBUF_2 0x0008 /* Copy buffer register 2 (R/W) */
#define SFB_ASIC_COPYBUF_3 0x000c /* Copy buffer register 3 (R/W) */
#define SFB_ASIC_COPYBUF_4 0x0010 /* Copy buffer register 4 (R/W) */
#define SFB_ASIC_COPYBUF_5 0x0014 /* Copy buffer register 5 (R/W) */
#define SFB_ASIC_COPYBUF_6 0x0018 /* Copy buffer register 6 (R/W) */
#define SFB_ASIC_COPYBUF_7 0x001c /* Copy buffer register 7 (R/W) */
#define SFB_ASIC_FG 0x0020 /* Foreground (R/W) */
#define SFB_ASIC_BG 0x0024 /* Background (R/W) */
#define SFB_ASIC_PLANEMASK 0x0028 /* PlaneMask (R/W) */
#define SFB_ASIC_PIXELMASK 0x002c /* PixelMask (R/W) */
#define SFB_ASIC_MODE 0x0030 /* Mode (R/W) */
#define SFB_ASIC_ROP 0x0034 /* RasterOp (R/W) */
#define SFB_ASIC_PIXELSHIFT 0x0038 /* PixelShift (R/W) */
#define SFB_ASIC_ADDRESS 0x003c /* Address (R/W) */
#define SFB_ASIC_BRES1 0x0040 /* Bresenham register 1 (R/W) */
#define SFB_ASIC_BRES2 0x0044 /* Bresenham register 2 (R/W) */
#define SFB_ASIC_BRES3 0x0048 /* Bresenham register 3 (R/W) */
#define SFB_ASIC_BCONT 0x004c /* Bcont (W) */
#define SFB_ASIC_DEEP 0x0050 /* Deep (R/W) */
#define SFB_ASIC_START 0x0054 /* Start (W) */
#define SFB_ASIC_CLEAR_INTR 0x0058 /* Clear Interrupt (W) */
#define SFB_ASIC_VIDEO_REFRESH 0x0060 /* Video refresh counter (R/W) */
#define SFB_ASIC_VIDEO_HSETUP 0x0064 /* Video horizontal setup (R/W) */
#define SFB_ASIC_VIDEO_VSETUP 0x0068 /* Video vertical setup (R/W) */
#define SFB_ASIC_VIDEO_BASE 0x006c /* Video base address (R/W) */
#define SFB_ASIC_VIDEO_VALID 0x0070 /* Video valid (W) */
#define SFB_ASIC_ENABLE_INTR 0x0074 /* Enable/Disable Interrupts (W) */
#define SFB_ASIC_TCCLK 0x0078 /* TCCLK count (R/W) */
#define SFB_ASIC_VIDCLK 0x007c /* VIDCLK count (R/W) */
/*
* Same as above but in 32-bit units, and named like the corrseponding
* TGA registers, for easy comparison.
*/
typedef u_int32_t sfb_reg_t;
#define SFB_REG_GCBR0 0x000 /* Copy buffer 0 */
#define SFB_REG_GCBR1 0x001 /* Copy buffer 1 */
#define SFB_REG_GCBR2 0x002 /* Copy buffer 2 */
#define SFB_REG_GCBR3 0x003 /* Copy buffer 3 */
#define SFB_REG_GCBR4 0x004 /* Copy buffer 4 */
#define SFB_REG_GCBR5 0x005 /* Copy buffer 5 */
#define SFB_REG_GCBR6 0x006 /* Copy buffer 6 */
#define SFB_REG_GCBR7 0x007 /* Copy buffer 7 */
#define SFB_REG_GFGR 0x008 /* Foreground */
#define SFB_REG_GBGR 0x009 /* Background */
#define SFB_REG_GPMR 0x00a /* Plane Mask */
#define SFB_REG_GPXR_S 0x00b /* Pixel Mask (one-shot) */
#define SFB_REG_GMOR 0x00c /* Mode */
#define SFB_REG_GOPR 0x00d /* Raster Operation */
#define SFB_REG_GPSR 0x00e /* Pixel Shift */
#define SFB_REG_GADR 0x00f /* Address */
#define SFB_REG_GB1R 0x010 /* Bresenham 1 */
#define SFB_REG_GB2R 0x011 /* Bresenham 2 */
#define SFB_REG_GB3R 0x012 /* Bresenham 3 */
#define SFB_REG_GCTR 0x013 /* Continue */
#define SFB_REG_GDER 0x014 /* Deep */
#define SFB_REG_GREV 0x015 /* Start/Version on SFB,
* Revision on SFB2 */
#define SFB_REG_CINT 0x016 /* Clear Interrupt */
/* 0x017 - unused */
#define SFB_REG_VRFR 0x018 /* Video Refresh */
#define SFB_REG_VHCR 0x019 /* Horizontal Control */
#define SFB_REG_VVCR 0x01a /* Vertical Control */
#define SFB_REG_VVBR 0x01b /* Video Base Address */
#define SFB_REG_VVVR 0x01c /* Video Valid */
#define SFB_REG_SISR 0x01d /* Enable/Disable Interrupts */
#define SFB_REG_TCCLK 0x01e /* TCCLK count (R/W) */
#define SFB_REG_VIDCLK 0x01f /* VIDCLK count (R/W) */
#endif /* _DEV_TC_SFBREG_H_ */
|