2 * PROJECT: ReactOS Boot Loader
3 * LICENSE: BSD - See COPYING.ARM in the top level directory
4 * FILE: drivers/video/miniport/vmx_svga/vmware.h
5 * PURPOSE: VMWARE SVGA-II Card Registers and Definitions
6 * PROGRAMMERS: ReactOS Portable Systems Group
10 // IT'S OVER 9000 THOUSAND!!!!!!!!!!
12 #define SVGA_MAGIC 0x900000
15 // Known VMWARE SVGA Versions
17 #define SVGA_VERSION_2 2
18 #define SVGA_VERSION_1 1
19 #define SVGA_VERSION_0 0
22 // Known VMWARE SVGA IDs
24 #define SVGA_MAKE_ID(x) (SVGA_MAGIC << 8 | (x))
25 #define SVGA_ID_2 SVGA_MAKE_ID(SVGA_VERSION_2)
26 #define SVGA_ID_1 SVGA_MAKE_ID(SVGA_VERSION_1)
27 #define SVGA_ID_0 SVGA_MAKE_ID(SVGA_VERSION_0)
28 #define SVGA_ID_INVALID 0xFFFFFFFF
33 #define SVGA_CAP_NONE 0x00000000
34 #define SVGA_CAP_RECT_FILL 0x00000001
35 #define SVGA_CAP_RECT_COPY 0x00000002
36 #define SVGA_CAP_RECT_PAT_FILL 0x00000004
37 #define SVGA_CAP_LEGACY_OFFSCREEN 0x00000008
38 #define SVGA_CAP_RASTER_OP 0x00000010
39 #define SVGA_CAP_CURSOR 0x00000020
40 #define SVGA_CAP_CURSOR_BYPASS 0x00000040
41 #define SVGA_CAP_CURSOR_BYPASS_2 0x00000080
42 #define SVGA_CAP_8BIT_EMULATION 0x00000100
43 #define SVGA_CAP_ALPHA_CURSOR 0x00000200
44 #define SVGA_CAP_GLYPH 0x00000400
45 #define SVGA_CAP_GLYPH_CLIPPING 0x00000800
46 #define SVGA_CAP_OFFSCREEN_1 0x00001000
47 #define SVGA_CAP_ALPHA_BLEND 0x00002000
48 #define SVGA_CAP_3D 0x00004000
49 #define SVGA_CAP_EXTENDED_FIFO 0x00008000
50 #define SVGA_CAP_MULTIMON 0x00010000
51 #define SVGA_CAP_PITCHLOCK 0x00020000
52 #define SVGA_CAP_IRQMASK 0x00040000
53 #define SVGA_CAP_DISPLAY_TOPOLOGY 0x00080000
56 // Port Offsets and Base in PCI Space
58 #define SVGA_LEGACY_BASE_PORT 0x4560
59 #define SVGA_INDEX_PORT 0x0
60 #define SVGA_VALUE_PORT 0x1
61 #define SVGA_BIOS_PORT 0x2
62 #define SVGA_NUM_PORTS 0x3
63 #define SVGA_IRQSTATUS_PORT 0x8
68 #define SVGA_INVALID_DISPLAY_ID 0xFFFFFFFF
73 #define SVGA_MAX_BITS_PER_PIXEL 32
74 #define SVGA_MAX_DEPTH 24
75 #define SVGA_MAX_DISPLAYS 10
76 #define SVGA_MAX_PSEUDOCOLOR_DEPTH 8
77 #define SVGA_MAX_PSEUDOCOLORS (1 << SVGA_MAX_PSEUDOCOLOR_DEPTH)
78 #define SVGA_NUM_PALETTE_REGS (3 * SVGA_MAX_PSEUDOCOLORS)
79 #define SVGA_FB_MAX_SIZE \
80 ((((SVGA_MAX_WIDTH * SVGA_MAX_HEIGHT * \
81 SVGA_MAX_BITS_PER_PIXEL / 8) >> PAGE_SHIFT) + 1) << PAGE_SHIFT)
86 typedef enum _VMX_SVGA_REGISTERS
95 SVGA_REG_BITS_PER_PIXEL
,
100 SVGA_REG_BYTES_PER_LINE
,
105 SVGA_REG_CAPABILITIES
,
108 SVGA_REG_CONFIG_DONE
,
116 SVGA_REG_HOST_BITS_PER_PIXEL
,
117 SVGA_REG_SCRATCH_SIZE
,
119 SVGA_REG_NUM_DISPLAYS
,
122 SVGA_REG_NUM_GUEST_DISPLAYS
,
124 SVGA_REG_DISPLAY_IS_PRIMARY
,
125 SVGA_REG_DISPLAY_POSITION_X
,
126 SVGA_REG_DISPLAY_POSITION_Y
,
127 SVGA_REG_DISPLAY_WIDTH
,
128 SVGA_REG_DISPLAY_HEIGHT
,
130 } VMX_SVGA_REGISTERS
;