1f29dbc25Smrgxf86-video-geode -- AMD Geode GX and LX graphics driver for X.org 2f29dbc25Smrg================================================================= 379d5fcd7SmrgREADME last updated: 2020-12-15 4f29dbc25Smrg 504007ebaSmrg1.INTRODUCTION 6f29dbc25Smrg 7f29dbc25SmrgThis is the X graphics driver for the AMD Geode GX and LX processors. 804007ebaSmrgThe GX component supports both XAA and EXA for graphics acceleration. 904007ebaSmrgThe LX component supports EXA, including compositing. Both support Xv 1004007ebaSmrgoverlay and dynamic rotation with XRandR. Additionally, a V4L2 driver 1104007ebaSmrgfor the LX's video input port (VIP) feature is provided as "ztv". 12f29dbc25Smrg 1304007ebaSmrg2.DEPENDENCIES 14f29dbc25Smrg 1504007ebaSmrgSince version 2.9.0, this driver depends on X server 1.3 or greater, 1604007ebaSmrgbecause it utilizes the new common DDC probing libraries from X.Org. 1704007ebaSmrg 1804007ebaSmrg3.ROADMAP 19f29dbc25Smrg 20f29dbc25SmrgSupport for old GX1 Geodes by Cyrix and NSC will be reintroduced soon, 21f29dbc25Smrgat which point xf86-video-cyrix and xf86-video-nsc will be retired. 22f29dbc25Smrg 23f29dbc25SmrgUntil then, the current situation for Geode coverage is as follow: 24f29dbc25Smrg 25f29dbc25Smrgxf86-video-geode 26f29dbc25Smrg * Geode LX (a.k.a. GX3) PCI ID 0x1022:0x2081 2704007ebaSmrg * Geode GX (a.k.a. GX2) PCI ID 0x100B:0x0030 (re-branded GX2) 28f29dbc25Smrg 29f29dbc25Smrgxf86-video-nsc 30f29dbc25Smrg * Geode GX2 (a.k.a. GX2) PCI ID 0x100B:0x0030 (a.k.a. "Red Cloud") 31f29dbc25Smrg * Geode SCx200 (a.k.a. GX1) PCI ID 0x100B:0x0504 32f29dbc25Smrg * Geode SC1400 (a.k.a. GX1) PCI ID 0x100B:0x0104 33f29dbc25Smrg 34f29dbc25Smrgxf86-video-cyrix 35f29dbc25Smrg * Geode MediaGX (a.k.a. GX1) PCI ID 0x1078:0x0104 36f29dbc25Smrg 37f29dbc25SmrgPlease note that both NSC and GEODE support GX2. This is indeed correct. 38f29dbc25SmrgHowever, only GEODE has up-to-date code, while NSC is deprecated. 39f29dbc25Smrg 4004007ebaSmrg4.MAXIMUM RESOLUTIONS 41f29dbc25Smrg 4204007ebaSmrgThe driver supports all maximum resolutions advertised by AMD, namely: 43f29dbc25Smrg 4404007ebaSmrgLX: 1920x1440 (CRT) and 1600x1200 (TFT) 4504007ebaSmrgGX: 1600x1200 (CRT) and 1280x1024 (TFT) 4604007ebaSmrgSC: 1280x1024 (CRT/TFT) *** Currently unsupported by this driver *** 47f29dbc25Smrg 4879d5fcd7SmrgAdditionally, on the LX, the driver can DCC probe the display and calculate 4979d5fcd7Smrgthe clockrate for the maximum resolution supported by the display. However, 5079d5fcd7Smrgthis won't work on LX platforms with GPIO configured for serial console. On 5179d5fcd7Smrgsuch hardware, the resolution must be specified in /etc/X11/xorg.conf. 5279d5fcd7Smrg 5304007ebaSmrg5.CONFIGURATION OPTIONS 54f29dbc25Smrg 5504007ebaSmrgYou can specify driver options in /etc/X11/xorg.conf in the usual fashion: 56f29dbc25Smrg 5704007ebaSmrgSection "Device" 5804007ebaSmrg Identifier "AMD Geode" 5904007ebaSmrg Driver "geode" 6004007ebaSmrg Option "OptionName" "value" 6104007ebaSmrg ... 6204007ebaSmrgEndSection 63f29dbc25Smrg 6404007ebaSmrgThe following options may be added to such a Device section: 65f29dbc25Smrg 6604007ebaSmrg5.1.COMMON OPTIONS 67f29dbc25Smrg 6804007ebaSmrgFBSize: Specify the size of the video space (in bytes) 6904007ebaSmrgNoAccel: Disable hardware assisted acceleration 7004007ebaSmrgNoCompression: Disable video bandwidth compression 7104007ebaSmrgNoPanel: Disable panel support 7204007ebaSmrgRotate: Select an initial orientation - LEFT, INVERT, CCW 7304007ebaSmrgSWCursor: Enable software cursors (essentially disabling HW cursor support) 74170d5fdcSmrg 7504007ebaSmrg5.2.GX-SPECIFIC OPTIONS 7604007ebaSmrg 7704007ebaSmrgAccelMethod: "XAA" (default) or "EXA" 7804007ebaSmrgPanelGeometry: Specify the geometry of the attached panel ("<width>x<height>") 7904007ebaSmrgOSMImageBuffers: Set the number of image buffers (XAA only) 8004007ebaSmrgOSMColorExpBuffers: Set the number of color expansion buffers (XAA only) 81170d5fdcSmrg 8204007ebaSmrg5.3.LX-SPECIFIC OPTIONS 8304007ebaSmrg 8404007ebaSmrgExaScratch: Specify the amount of extra EXA scratch buffer (in bytes) 8504007ebaSmrg 8604007ebaSmrg6.FREQUENTLY ASKED QUESTIONS (FAQ) 8704007ebaSmrg 8879d5fcd7SmrgQ: Why doesn't the GEODE driver work on recent Linux kernels? 8979d5fcd7Smrg 9079d5fcd7SmrgA: Since kernel 4.x Linux has strong memory protection. If the kernel is 9179d5fcd7Smrg booted with a frame buffer (e.g. vesafb) it reserves the video memory 9279d5fcd7Smrg for itself. Disabling this requires booting the kernel in non-graphic 9379d5fcd7Smrg mode. On GRUB, this is configured by this /etc/default/grub option: 9479d5fcd7Smrg 9579d5fcd7Smrg GRUB_GFXPAYLOAD_LINUX=text 9679d5fcd7Smrg 9779d5fcd7Smrg Alternately, adding iomem=relaxed to GRUB_CMDLINE_LINUX_DEFAULT will 9879d5fcd7Smrg allow the video memory to be accessed by vesafb and the GEODE driver. 9979d5fcd7Smrg 10079d5fcd7Smrg Once either option has been added and the GRUB configuration refreshed, 10179d5fcd7Smrg the GEODE driver will launch on recent kernels as previously. 10279d5fcd7Smrg 10304007ebaSmrgQ: Why doesn't the GEODE driver work at WXGA (wide screen) resolutions? 104f29dbc25Smrg 105f29dbc25SmrgA: Make sure that TFT Panel support is disabled in the BIOS settings, 106f29dbc25Smrg otherwise resolutions will be restricted to traditional VGA modes. 107f29dbc25Smrg The GEODE offers a choice between CRT-only, CRT+TFT, TFT-only for 108f29dbc25Smrg output device and selecting CRT-only removes the VGA restriction. 109f29dbc25Smrg 11004007ebaSmrgQ: How can these hardcoded modes be expanded to support a WXGA laptop? 11104007ebaSmrg 11204007ebaSmrgA: By adding the desired modes to /etc/X11/xorg.conf as follow: 11304007ebaSmrg 11404007ebaSmrg 1) Use either the "cvt" or "gtf" command to determine the modeline: 11504007ebaSmrg 11604007ebaSmrg cvt 1024 600 60 11704007ebaSmrg 11804007ebaSmrg Where 1024x600 is the resolution and 60 the refresh rate. 11904007ebaSmrg The resulting modeline using "gtf" is: 12004007ebaSmrg 12104007ebaSmrgModeline "1024x600" 48.96 1024 1064 1168 1312 600 601 604 622 -hsync +vsync 12204007ebaSmrg 12304007ebaSmrg 2) Add it to the bottom of the "Monitor" section in /etc/X11/xorg.conf. 12404007ebaSmrg In this example, we created entries for two modes and configured the 12504007ebaSmrg larger resolution to be our preferred choice. 12604007ebaSmrg 12704007ebaSmrg############################################################# 12804007ebaSmrg# /etc/X11/xorg.conf for 1024x600 and 800x480 laptop panels # 12904007ebaSmrg############################################################# 13004007ebaSmrg#### By J.KASPER and B.HIBRY #### for Hercules eCafe 800 #### 13104007ebaSmrg############################################################# 13204007ebaSmrgSection "Module" 13304007ebaSmrg Load "ztv" 13404007ebaSmrgEndSection 13504007ebaSmrgSection "Device" 13604007ebaSmrg Identifier "card0" 13704007ebaSmrg Driver "geode" 13804007ebaSmrg BusID "PCI:0:1:1" 13904007ebaSmrg Option "PanelMode" "33450 800 840 968 1056 480 490 492 525" 14004007ebaSmrgEndSection 14104007ebaSmrgSection "Monitor" 14204007ebaSmrg Identifier "monitor0" 14304007ebaSmrg Modeline "1024x768" 64.56 1024 1056 1296 1328 768 783 791 807 -hsync +vsync 14404007ebaSmrg Modeline "1024x600" 48.96 1024 1064 1168 1312 600 601 604 622 -hsync +vsync 14504007ebaSmrg Modeline "800x480" 33.45 800 840 968 1056 480 490 492 525 -hsync +vsync 14604007ebaSmrg Option "dpms" 14704007ebaSmrgEndSection 14804007ebaSmrgSection "Screen" 14904007ebaSmrg Identifier "Default Screen" 15004007ebaSmrg Monitor "monitor0" 15104007ebaSmrg Device "card0" 15204007ebaSmrg DefaultDepth 24 15304007ebaSmrg Subsection "Display" 15404007ebaSmrg Depth 24 15504007ebaSmrg Modes "1024x600" "1024x768" "800x480" 15604007ebaSmrg EndSubsection 15704007ebaSmrgEndSection 15804007ebaSmrg### EOF ### 15904007ebaSmrg 16004007ebaSmrgQ: Why doesn't screen rotation work? 16104007ebaSmrg 16204007ebaSmrgA: Make sure that a sufficient amount of video RAM is reserved in the BIOS, 16304007ebaSmrg otherwise rotation will fail and this error message appear in Xorg.log: 16404007ebaSmrg 16504007ebaSmrg Couldn't allocate the shadow memory for rotation 16604007ebaSmrg You need XX bytes, but only YY bytes are available 16704007ebaSmrg 16804007ebaSmrgQ: How do I produce useful information whenever submitting a bug report? 169f29dbc25Smrg 17005cf1079SmrgA: See https://www.x.org/wiki/Development/Documentation/ServerDebugging 17104007ebaSmrg and follow the instructions found there. 172f29dbc25Smrg 173f29dbc25SmrgQ: How do I test development snapshots from the upstream GIT repository? 174f29dbc25Smrg 17504007ebaSmrgA: Run the following commands from a command line interpreter shell: 176f29dbc25Smrg 1. git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-geode 177f29dbc25Smrg 2. Debian/Ubuntu: apt-get install autoconf automake libtool xutils-dev 178f29dbc25Smrg apt-get install build-dep xserver-xorg-video-geode 179f29dbc25Smrg Fedora/Red Hat: yum install autoconf automake libtool xorg-x11-util-macros 180f29dbc25Smrg yum-builddep xorg-x11-drv-geode 181f29dbc25Smrg 3. cd xf86-video-geode 182f29dbc25Smrg 4. ./autogen.sh 183f29dbc25Smrg 5. make distcheck 184f29dbc25Smrg ...then install the driver manually. 185f29dbc25Smrg 186f29dbc25SmrgQ: What is the preferred method for submitting patches to this driver? 187f29dbc25Smrg 18805cf1079SmrgA: See https://www.x.org/wiki/Development/Documentation/SubmittingPatches 18905cf1079Smrg and submit the patches to the Geode X.org mailing list or to gitlab 19005cf1079Smrg in the xf86-video-geode project. 191f29dbc25Smrg 19204007ebaSmrg7.PROJECT CONTACTS 193f29dbc25Smrg 19404007ebaSmrgProject homepage: 19505cf1079Smrghttps://www.x.org/wiki/GeodeDriver 196f29dbc25Smrg 19704007ebaSmrgMailing list: 19805cf1079Smrghttps://lists.x.org/mailman/listinfo/xorg-driver-geode 199f29dbc25Smrg 20004007ebaSmrgBug reports: 20105cf1079Smrghttps://gitlab.freedesktop.org/xorg/driver/xf86-video-geode/issues 202f29dbc25Smrg 20304007ebaSmrgCode repository: 20405cf1079Smrghttps://gitlab.freedesktop.org/xorg/driver/xf86-video-geode 205f29dbc25Smrg 20604007ebaSmrgIRC channel: 20704007ebaSmrg#geode on the Freenode network. 208f29dbc25Smrg 20904007ebaSmrg.EOF. 210