summaryrefslogtreecommitdiff
path: root/README
blob: 7a75c38fc6cb601da47cd031b5ff3c04ae344d62 (plain)
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
xf86-video-cyrix -- Cyric Geode graphics driver for X.org
=========================================================
README last updated: 2009-09-09

GIT repository:
        git://anongit.freedesktop.org/git/xorg/driver/xf86-video-cyrix

Gitweb browser:
        http://cgit.freedesktop.org/xorg/driver/xf86-video-cyrix

Project homepage:
        http://www.x.org/wiki/GeodeDriver

Please note that this driver is seriously deprecated and X.org developers
cannot guarantee that it will be supported in upcoming X.org releases.

Support for Cyrix and NSC Geodes shall be merged into xf86-video-geode, 
after which xf86-video-cyrix and xf86-video-nsc will be retired. Please
contact the X.org Geode mailing list (see subscription instructions on 
the project homepage) if you can contribute towards reaching this goal.

Until then, the current situation for Geode coverage is as follow:

xf86-video-geode
 * AMD Geode LX (a.k.a. GX3) PCI ID 0x1022:0x2081
 * AMD Geode GX (a.k.a. GX2) PCI ID 0x100B:0x0030

xf86-video-nsc
 * NSC Geode GX (a.k.a. GX2) PCI ID 0x100B:0x0030
 * NSC Geode SC (a.k.a. GX1) PCI ID 0x100B:0x0504

xf86-video-cyrix
 * Cyrix Geode  (a.k.a. GX1) PCI ID 0x1078:0x0104

Please note that both NSC and GEODE support GX2. This is indeed correct.
However, only GEODE has up-to-date code, while NSC is deprecated.

= FAQ =

Q: How do I produce useful information whenever submiting a bug report?

A: See http://www.x.org/wiki/Development/Documentation/ServerDebugging
   and follow the instructions.

Q: How do I test development snapshots from the upstream GIT repository?

A: Run the following commands from a command line interpreter shell...
   1. git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-cyrix
   2. Debian/Ubuntu:  apt-get install autoconf automake libtool xutils-dev
                      apt-get install build-dep xserver-xorg-video-cyrix
     Fedora/Red Hat:  yum install autoconf automake libtool xorg-x11-util-macros
                      yum-builddep xorg-x11-drv-cyrix
   3. cd xf86-video-cyrix
   4. ./autogen.sh
   5. make distcheck
   ...then install the driver manually.

Q: What is the preferred method for submitting patches to this driver?

A: See http://www.x.org/wiki/Development/Documentation/SubmittingPatches
   and submit the patches as attachments to the Geode X.org mailing list
   or to the X.org Bugzilla against component "Driver/cyrix".

MediaGX Fun
-----------

This tries to document the "gotcha's" associated with the Cyrix
hardware and also the SoftVGA (SMM BIOS emulation of video) implementation. 

o	Palette Handling

	In theory 8bit modes can use the VGA colour control. In practice
	this doesn't work at least on some 5530 based systems with LCD
	displays.

	Some 5510 based systems need special handling for external LCD
	RAMDAC. We don't currently do this.

o	Mode Switches

	If you load unsuitable data into the Soft VGA mode switching
	registers or forgot to set the ModeSwitch disable before you
	load the registers up mode switches may fail. In a few cases
	you get bogus illegal instructions reported

o	BIOS Versions

	The VSA1/VSA2 firmware that does all the magic on the Cyrix
	processors is an SMM mode software block in the BIOS. This means
	the Cyrix is one system where different BIOSes have different bugs
	instead of just having to fight the hardware

	The BIOS is just plain unusable in a few systems. Code exists to
	do some mode switches the hard way without VSA getting involved.

o	Compression Buffer

	To cut down on the memory usage the display scan checks dirty
	bits on each scan line (per frame in some situations) and if the
	line is dirty it scans it from the original buffer and writes back
	a compressed line if it can do so. If it does this it clears the
	dirty bit. We have to handle dirty bits ourselves and getting it
	wrong produces interesting visuals.

o	Memory Layout

	When you use VSA to do mode set up it makes certain assumptions 
	about memory layout. Typically it lays out the frame buffer
	with the compression buffer at the end. When there is enough
	space between the lines (the chip only handles 1024/2048 bytes
	stride) it will hide them in the gaps

To Do
-----
-	Add bare-metal setup option for the BIOS afflicted
-	Add 5510 external ics5432 RAMDAC support
-	Restore hardware cursor support
-	DDC/EDID and friends
-	RandR would be nice for the tablet pc systems

= EOF =