Hi, I have been playing with Alan Cox's version of the "xfree86/drivers/cyrix" (Geode) video driver on a NatSemi Centaurus reference platform (Geode GX1 cpu) running FreeBSD. The cyrix driver in the CVS tree at xfree86.org appears not to have been modified for some 9 months, except for makefile maintenance, and it does not detect the hardware in my Centaurus environment. Alan notes this driver ``had previously in part worked "by accident"'' and ``had some fairly incomplete looking areas''. See also (I got Alan's version from the redhat url):
----------------- From: "Mike A. Harris" <[EMAIL PROTECTED]> Subject: [Xpert]Re: Cyrix Geode/Kahlua problems... >Date: Tue, 10 Sep 2002 02:52:37 +0200 >From: Erich Schubert <[EMAIL PROTECTED]> >To: [EMAIL PROTECTED] >Subject: Cyrix Geode/Kahlua problems... > http://people.redhat.com/alan ------- From: Alex Pavloff <[EMAIL PROTECTED]> To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]> Subject: [Xpert]Re: Cyrix Geode/Kahlua problems... See also http://www.eason.com/linux, which contains my experiences with National's framebuffer drivers. Also present there are National's "official" XFree86 drivers. ----------------- I had to make the following patches to Alan's version of the driver: * To make "X -configure" not coredump: --- /usr/brucem/X_wrk/cyrix_redhat/cyrix_driver.c Wed Aug 28 09:07:23 2002 +++ cyrix_driver.c Tue Oct 15 12:11:17 2002 @@ -569,6 +569,11 @@ */ pCyrix = CYRIXPTR(pScrn); + pCyrix->pEnt = xf86GetEntityInfo(pScrn->entityList[0]); + + if (pCyrix->pEnt->location.type != BUS_PCI) + return FALSE; + if (flags & PROBE_DETECT) { CYRIXProbeDDC(pScrn, pCyrix->pEnt->index); return TRUE; Without this patch in "CYRIXPreInit(ScrnInfoPtr pScrn, int flags)" "X -configure" (PROBE_DETECT) will "always" coredump due to the uninitialized pEnt field. In my environment, ``Option "NoCompression"'' must be enabled (uncommented) in the "-configure" generated XF86Config file's ``Section "Device"''. I'm assuming this is because the Geode Display Controller Frame Buffer Start Offset register (DC_FB_ST_OFFSET, GX_BASE+8310), in my environment (likely initialized by the BIOS?), is nonzero (it is, I've checked). The Geode GX1 cpu manual doc for this register notes "When this register is programmed to a nonzero value, the compression logic should be disabled." The video hangs if compression is enabled, at least for me. One check to avoid hanging is this patch to check for a non-zero DC_FB_ST_OFFSET in "CyrixInit(ScrnInfoPtr pScrn, DisplayModePtr mode)", file "cyrix_helper.c": --- /usr/brucem/X_wrk/cyrix_redhat/cyrix_helper.c Tue Aug 27 09:43:01 2002 +++ cyrix_helper.c Tue Oct 15 12:54:50 2002 @@ -332,6 +332,7 @@ and line-dirty flagging seem to have been solved now. */ if (pCyrix->NoCompress == FALSE && + (0 == GX_REG(DC_FB_ST_OFFSET)) && mode->CrtcVDisplay == pScrn->virtualY && mode->CrtcHDisplay == pScrn->virtualX ) (DC_FB_ST_OFFSET isn't stored in CYRIXPrivate as far as I can see.) Should an error message be logged when the compression option is not enabled because of this situation? Disabling compression is a bit troublesome because the manual claims compression reduces display controller memory load by as much as 20:1... OTOH, why is my framebuffer at a non-zero offset? * Are Alan's changes (reasonably extensive) to be merged with the CVS? (if so the first patch above, at least, is likely required). This driver works on NatSemi's ref platform, while the cvs driver did not... * I'm assuming that the cyrix driver in the CVS tree is in routine use, however, I wonder if it works with National's BIOS (because it does not detect any devices on the NatSemi Centaurus). Is anybody else succesfully using the CVS cyrix driver code with the GX1 and the National BIOS? I'm not sure I understand all the BIOS dependency issues... * Is anyone working on the cyrix driver currently? What is the future of this driver, especially wrt to the "official" NatSemi drivers? * Can anyone interested in, or knowledgeble about, this driver, who has any insight or any advice regarding it, give a ping? Thanks! - bruce _______________________________________________ Xpert mailing list [EMAIL PROTECTED] http://XFree86.Org/mailman/listinfo/xpert
