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

Reply via email to