1xf86-video-geode -- AMD Geode GX and LX graphics driver for X.org
2=================================================================
3README last updated: 2020-12-15
4
51.INTRODUCTION
6
7This is the X graphics driver for the AMD Geode GX and LX processors.
8The GX component supports both XAA and EXA for graphics acceleration.
9The LX component supports EXA, including compositing. Both support Xv 
10overlay and dynamic rotation with XRandR. Additionally, a V4L2 driver
11for the LX's video input port (VIP) feature is provided as "ztv".
12
132.DEPENDENCIES
14
15Since version 2.9.0, this driver depends on X server 1.3 or greater,
16because it utilizes the new common DDC probing libraries from X.Org.
17
183.ROADMAP
19
20Support for old GX1 Geodes by Cyrix and NSC will be reintroduced soon,
21at which point xf86-video-cyrix and xf86-video-nsc will be retired.
22
23Until then, the current situation for Geode coverage is as follow:
24 
25xf86-video-geode
26 * Geode LX      (a.k.a. GX3) PCI ID 0x1022:0x2081
27 * Geode GX      (a.k.a. GX2) PCI ID 0x100B:0x0030 (re-branded GX2)
28
29xf86-video-nsc
30 * Geode GX2     (a.k.a. GX2) PCI ID 0x100B:0x0030 (a.k.a. "Red Cloud")
31 * Geode SCx200  (a.k.a. GX1) PCI ID 0x100B:0x0504 
32 * Geode SC1400  (a.k.a. GX1) PCI ID 0x100B:0x0104 
33
34xf86-video-cyrix
35 * Geode MediaGX (a.k.a. GX1) PCI ID 0x1078:0x0104 
36
37Please note that both NSC and GEODE support GX2. This is indeed correct.
38However, only GEODE has up-to-date code, while NSC is deprecated. 
39
404.MAXIMUM RESOLUTIONS
41
42The driver supports all maximum resolutions advertised by AMD, namely:
43
44LX: 1920x1440 (CRT) and 1600x1200 (TFT)
45GX: 1600x1200 (CRT) and 1280x1024 (TFT)
46SC: 1280x1024 (CRT/TFT) *** Currently unsupported by this driver ***
47
48Additionally, on the LX, the driver can DCC probe the display and calculate
49the clockrate for the maximum resolution supported by the display. However,
50this won't work on LX platforms with GPIO configured for serial console. On
51such hardware, the resolution must be specified in /etc/X11/xorg.conf.
52
535.CONFIGURATION OPTIONS
54
55You can specify driver options in /etc/X11/xorg.conf in the usual fashion:
56
57Section "Device"
58	Identifier "AMD Geode"
59	Driver "geode"
60	Option "OptionName" "value"
61	...
62EndSection
63
64The following options may be added to such a Device section:
65
665.1.COMMON OPTIONS
67
68FBSize: Specify the size of the video space (in bytes)
69NoAccel: Disable hardware assisted acceleration
70NoCompression: Disable video bandwidth compression
71NoPanel: Disable panel support
72Rotate: Select an initial orientation - LEFT, INVERT, CCW
73SWCursor: Enable software cursors (essentially disabling HW cursor support)
74
755.2.GX-SPECIFIC OPTIONS
76
77AccelMethod: "XAA" (default) or "EXA"
78PanelGeometry: Specify the geometry of the attached panel ("<width>x<height>")
79OSMImageBuffers: Set the number of image buffers (XAA only)
80OSMColorExpBuffers: Set the number of color expansion buffers (XAA only)
81
825.3.LX-SPECIFIC OPTIONS
83
84ExaScratch: Specify the amount of extra EXA scratch buffer (in bytes)
85
866.FREQUENTLY ASKED QUESTIONS (FAQ)
87
88Q: Why doesn't the GEODE driver work on recent Linux kernels?
89
90A: Since kernel 4.x Linux has strong memory protection. If the kernel is
91   booted with a frame buffer (e.g. vesafb) it reserves the video memory
92   for itself. Disabling this requires booting the kernel in non-graphic
93   mode. On GRUB, this is configured by this /etc/default/grub option:
94
95   GRUB_GFXPAYLOAD_LINUX=text
96
97   Alternately, adding iomem=relaxed to GRUB_CMDLINE_LINUX_DEFAULT will
98   allow the video memory to be accessed by vesafb and the GEODE driver.
99
100   Once either option has been added and the GRUB configuration refreshed,
101   the GEODE driver will launch on recent kernels as previously.
102
103Q: Why doesn't the GEODE driver work at WXGA (wide screen) resolutions?
104
105A: Make sure that TFT Panel support is disabled in the BIOS settings, 
106   otherwise resolutions will be restricted to traditional VGA modes. 
107   The GEODE offers a choice between CRT-only, CRT+TFT, TFT-only for
108   output device and selecting CRT-only removes the VGA restriction.
109
110Q: How can these hardcoded modes be expanded to support a WXGA laptop?
111
112A: By adding the desired modes to /etc/X11/xorg.conf as follow:
113
114   1) Use either the "cvt" or "gtf" command to determine the modeline:
115
116      cvt 1024 600 60
117
118      Where 1024x600 is the resolution and 60 the refresh rate. 
119      The resulting modeline using "gtf" is:
120
121Modeline "1024x600" 48.96 1024 1064 1168 1312 600 601 604 622 -hsync +vsync
122
123   2) Add it to the bottom of the "Monitor" section in /etc/X11/xorg.conf.
124      In this example, we created entries for two modes and configured the
125      larger resolution to be our preferred choice.
126
127#############################################################
128# /etc/X11/xorg.conf for 1024x600 and 800x480 laptop panels #
129#############################################################
130#### By J.KASPER and B.HIBRY #### for Hercules eCafe 800 ####
131#############################################################
132Section "Module"
133    Load  "ztv"
134EndSection
135Section "Device"
136    Identifier	"card0"
137    Driver	"geode"
138    BusID	"PCI:0:1:1"
139    Option	"PanelMode" "33450 800 840 968 1056 480 490 492 525"
140EndSection
141Section "Monitor"
142    Identifier	"monitor0"
143    Modeline  "1024x768" 64.56 1024 1056 1296 1328 768 783 791 807 -hsync +vsync
144    Modeline  "1024x600" 48.96 1024 1064 1168 1312 600 601 604 622 -hsync +vsync
145    Modeline   "800x480" 33.45  800  840  968 1056 480 490 492 525 -hsync +vsync
146    Option	"dpms"
147EndSection
148Section "Screen"
149    Identifier	"Default Screen"
150    Monitor	"monitor0"
151    Device	"card0"
152    DefaultDepth 24
153    Subsection "Display"
154        Depth 24
155        Modes "1024x600" "1024x768" "800x480"
156    EndSubsection        
157EndSection
158### EOF ###
159
160Q: Why doesn't screen rotation work?
161
162A: Make sure that a sufficient amount of video RAM is reserved in the BIOS,
163   otherwise rotation will fail and this error message appear in Xorg.log:
164
165      Couldn't allocate the shadow memory for rotation
166      You need XX bytes, but only YY bytes are available
167
168Q: How do I produce useful information whenever submitting a bug report?
169
170A: See https://www.x.org/wiki/Development/Documentation/ServerDebugging
171   and follow the instructions found there.
172
173Q: How do I test development snapshots from the upstream GIT repository?
174
175A: Run the following commands from a command line interpreter shell:
176   1. git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-geode 
177   2. Debian/Ubuntu:  apt-get install autoconf automake libtool xutils-dev
178                      apt-get install build-dep xserver-xorg-video-geode
179     Fedora/Red Hat:  yum install autoconf automake libtool xorg-x11-util-macros
180                      yum-builddep xorg-x11-drv-geode
181   3. cd xf86-video-geode
182   4. ./autogen.sh
183   5. make distcheck
184   ...then install the driver manually.
185
186Q: What is the preferred method for submitting patches to this driver?
187
188A: See https://www.x.org/wiki/Development/Documentation/SubmittingPatches
189   and submit the patches to the Geode X.org mailing list or to gitlab
190   in the xf86-video-geode project.
191
1927.PROJECT CONTACTS
193
194Project homepage:
195https://www.x.org/wiki/GeodeDriver
196
197Mailing list:
198https://lists.x.org/mailman/listinfo/xorg-driver-geode
199
200Bug reports:
201https://gitlab.freedesktop.org/xorg/driver/xf86-video-geode/issues
202
203Code repository:
204https://gitlab.freedesktop.org/xorg/driver/xf86-video-geode
205
206IRC channel:
207#geode on the Freenode network.
208
209.EOF.
210