On Thu, 23 Jan 2003, Wayne Whitney wrote:

> As far as I can tell, the "Cannot read V_BIOS" message is the problem,
> and it means that XFree86 can't find the Video BIOS on the PCI card to
> use to initialize the video card.  [...] I found that getValidBIOSBase()
> in xfree86/common/xf86pciBus.c is called repeatedly but that it always
> returns 0.

The following patch to getValidBIOSBase() makes things work for me,
although I don't really understand what it does, as I arrived at it by
brute force.  Any suggestions of what is going on or what the proper fix
is would be great.

The second part obviously just prints out the return value of
getValidBIOSBase() when it runs to completion (there are various "return
0" paths earlier in the function).  When I run X on the primary card, this
is never triggered.  When I run X on AGP card as the secondary card (which
works OK on stock 4.2.99.4), it prints out e8000000 once.  When I run X on
the PCI card as the secondary card, it triggers three times and prints 0,
0, e0000000.  Without the first part of the patch, it used to print 0, 0,
0, 0 in this situation and X wouldn't work.

Cheers, Wayne


--- xfree86/common/xf86pciBus.c.~3.66.~ 2003-01-23 19:54:11.000000000 -0800
+++ xfree86/common/xf86pciBus.c 2003-01-23 23:46:33.000000000 -0800
@@ -1617,18 +1617,24 @@
                break;
            }
            m = m->next;
        }
     } else {
-       if (!xf86IsSubsetOf(range, m) || 
+       if (
+#if 0
+           !xf86IsSubsetOf(range, m) || 
+#endif
            ChkConflict(&range, avoid, SETUP) 
            || (mem && ChkConflict(&range, mem, SETUP))) 
            ret = 0;
     }
 
     xf86FreeResList(avoid);
     xf86FreeResList(m);
+#ifdef DEBUG
+    xf86Msg(X_ERROR, "getValidBIOSBase: %x\n", ret);
+#endif
     return ret;
 }
 
 /*
  * xf86Bus.c interface

_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel

Reply via email to