Matrox Parhelia XFree86 Busmastering kernel module?

Daniel Lang dl at leo.org
Tue Oct 21 07:09:54 PDT 2003


Hi,

sorry for coming back so late, but here are more details
to the Matrox problem:

Eric Anholt wrote on Sat, Oct 11, 2003 at 08:44:51PM -0700:
> > AFAIK, you can enable bus mastering using pciconf(8) by setting appropriate registers.
> > Why do you need any additional kernel module? Or I'm completely missing the point?
> > 
> > -ip
> 
> Busmastering is not an important part of kernel modules used for aiding
> accelerating graphics, if it is at all.  Notably, XFree86 enables
> busmastering itself for all the cards it supports that need it (radeon,
> r128, mga, i8x0, etc.).  What that module is more likely for is doing
> things that require kernel support, such as handling of interrupts to
> efficiently use the card's DMA support and sharing of resources between
> various competing direct-rendering clients.
[..]

Ok, I quote from the XFree86 startup log:

[..]
XFree86 Version 4.3.0
Release Date: 27 February 2003
X Protocol Version 11, Revision 0, Release 6.6
Build Operating System: FreeBSD 4.8 i386 [ELF] 
Build Date: 01 July 2003
        Before reporting problems, check http://www.XFree86.Org/
        to make sure that you have the latest version.
Module Loader present
Markers: (--) probed, (**) from config file, (==) default setting,
         (++) from command line, (!!) notice, (II) informational,
         (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/XFree86.0.log", Time: Tue Oct 21 13:02:37 2003
(==) Using config file: "/etc/X11/XF86Config"
(==) ServerLayout "Multihead"
(**) |-->Screen "Merged" (0)
(**) |   |-->Monitor "suntft1"
(**) |   |-->Device "p650-1"
(**) |-->Input Device "Mouse1"
(**) |-->Input Device "Keyboard1"
(**) Option "AutoRepeat" "500 30"
(**) Option "XkbRules" "xfree86"
(**) XKB: rules: "xfree86"
(**) Option "XkbModel" "pc104"
(**) XKB: model: "pc104"
(**) Option "XkbLayout" "us"
(**) XKB: layout: "us"
[..]
(--) PCI:*(1:0:0) Matrox Graphics, Inc. unknown chipset (0x2537) rev 2, Mem @ 0xf4000000/26, 0xf3000000/13, BIOS @ 0xf3fe0000/17
[..]
(II) LoadModule: "mtx"
(II) Loading /usr/X11R6/lib/modules/drivers/mtx_drv.o
(II) Module mtx: vendor="Matrox Graphics Inc."
        compiled for 4.2.1, module version = 0.2.1
        Module class: XFree86 Video Driver
        ABI class: XFree86 Video Driver, version 0.5
(II) Loading extension MTXGamma
[..]
(II) MTX: driver for Matrox chipsets: Parhelia(C), Parhelia(D),
        Parhelia(X)
(II) Primary Device is: PCI 01:00:0
(--) Chipset Parhelia(X) found
[..]
(**) MTX(0): Option "HWcursor" "off"
(**) MTX(0): Option "accel" "no"
(**) MTX(0): Option "Busmastering" "on"
(**) MTX(0): Option "MergedFB"
(**) MTX(0): Option "Monitor2HSync" "30.0 - 164.0"
(**) MTX(0): Option "Monitor2VRefresh" "58.0 - 75.0"
(**) MTX(0): Option "Monitor2Position" "RightOf"
(**) MTX(0): Option "MetaModes" "1280x1024-1280x1024"
(**) MTX(0): Option "DigitalScreen1" "on"
(**) MTX(0): Option "DigitalScreen2" "on"
(**) MTX(0): Option "OffScreen" "2"
(==) MTX(0): Using gamma correction (1.0, 1.0, 1.0)
(**) MTX(0): Acceleration disabled
(II) MTX(0): Forcing Digital Mode [1]
(II) MTX(0): Forcing Digital Mode [2]
[..]
(==) MTX(0): Write-combining range (0xf3000000,0x2000) was already clear
(==) MTX(0): Write-combining range (0xf4000000,0x4000000)
(II) MTX(0): vgaHWGetIOBase: hwp->IOBase is 0x03d0, hwp->PIOOffset is 0x0000
(==) MTX(0): Write-combining range (0xa0000,0x10000) was already clear
(WW) MTX(0): Cannot use Parhelia module for acceleration, device failed to open with error code 3.
(II) MTX(0): Using Digital Output [1] 
(II) MTX(0): Using Digital Output [2]
(WW) MTX(0): WARNING: Busmastering cannot be initialized at the request of the
         user or due to previous errors, falling back to safe mode.
         Note that many features are not supported in safe mode, 
         such as OpenGL rendering. Please read carefully the Matrox
         drivers README file for troubleshooting.
[..]

And from the Linux-Driver README:

[..]
Enabling bus mastering
======================

The driver can run with bus mastering On or Off. Having bus mastering On generally 
gives better performances. To run with bus mastering a kernel driver, mtx.o, 
must be compiled. On most configurations the installation script will seamlessly take
care of the kernel driver compilation.

In order to use bus mastering, the following modules must be loaded:

  (1) mtx.o: Parhelia kernel module

      The kernel module must be compiled for your system. The script
      file "install.sh" will attempt to compile the module. If it does not
      succeed, you can compile it manually by entering the following:

[ compile instructions for linux kernel module omitted ]

The "make install" command installs the kernel module in the proper
location. The X server should load the kernel module automatically. If not,
typing "insmod mtx" in the installed location will load the module. 

[..]

To enable or disable bus mastering, add the following to the XF86Config-4
file:

  Option "Busmastering" "on"

  or

  Option "Busmastering" "off" 

Note that busmastering will always be assumed to be on if the busmastering
option isn't set in your X config file.
[..]

So currently Busmastering cannot be enabled, since the additional
kernel-module is not available. Since it seems strange that
Busmastering requires a kernel module, maybe FreeBSD could
somehow enable Busmastering anyway and trick the module 
not to require the kernel module?

Btw, I could increase 2D-Performance to a bearable state
by increasing off-screen memory.

Best regards,
 Daniel
-- 
IRCnet: Mr-Spock  
 Daniel Lang * dl at leo.org * +49 89 289 18532 * http://www.leo.org/~dl/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 6020 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20031021/72b46cf3/smime.bin


More information about the freebsd-hackers mailing list