ports/116851: Xorg 7.3 mga driver fails to read video BIOS (G450 dual-VGA)

Warren Block wblock at wonkity.com
Wed Oct 3 02:20:02 UTC 2007


>Number:         116851
>Category:       ports
>Synopsis:       Xorg 7.3 mga driver fails to read video BIOS (G450 dual-VGA)
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Oct 03 02:20:01 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator:     Warren Block
>Release:        6.2-STABLE
>Organization:
>Environment:
FreeBSD speedy.wonkity.com 6.2-STABLE FreeBSD 6.2-STABLE #0: Fri Sep 28 13:51:02 MDT 2007     root at speedy.wonkity.com:/usr/obj/usr/src/sys/SPEEDY  i386
>Description:
mga-1.4.7 fails to read the video BIOS of a Matrox G450 dual-VGA AGP card:

(--) MGA(0): Chipset: "mgag400" (G450)
(==) MGA(0): Depth 24, (==) framebuffer bpp 32
(==) MGA(0): RGB weight 888
(==) MGA(0): Using AGP 1x mode
(==) MGA(0): Using XAA acceleration
(--) MGA(0): Linear framebuffer at 0xDC000000
(==) MGA(0): MMIO registers at 0xDFEFC000
(--) MGA(0): Pseudo-DMA transfer window at 0xDF000000
(--) MGA(0): BIOS at 0xDFEC0000
Requesting insufficient memory window!: start: 0xdee00000 end: 0xdfefffff size 0x2000000
(EE) Cannot find empty range to map base to
(WW) MGA(0): Video BIOS info block not detected!

The driver still works, but without the BIOS, features of the card like more than one VGA port are not available.

The same computer running the 200709 snapshot of FreeBSD 7.0-CURRENT showed the same failure.

A Knoppix Linux liveCD with Xorg 7.2 on the same computer was able to read the BIOS:

(--) MGA(0): BIOS at 0xDFEC0000
(II) Attempted to read BIOS 64KB from /sys/bus/pci/devices/0000:01:00.0/rom: got 34KB
(--) MGA(0): Video BIOS info block at offset 0x07D00

>From crude testing, it appears that the problem may be in the xorg-server freebsdPci.c routine (xorg-server-1.4/hw/xfree86/os-support/bus/freebsdPci.c)

Further information:

Excerpt from 'pciconf -lv':

agp0 at pci0:0:0:  class=0x060000 card=0x00001106 chip=0x31891106 rev=0x80 hdr=0x00
    vendor     = 'VIA Technologies Inc'
    device     = 'VT8377 Apollo KT400/A/600 CPU to PCI Bridge'
    class      = bridge
    subclass   = HOST-PCI
pcib1 at pci0:1:0: class=0x060400 card=0x00000000 chip=0xb1981106 rev=0x00 hdr=0x01
    vendor     = 'VIA Technologies Inc'
    device     = 'ProSavageDDR P4X600 CPU to AGP Bridge'
    class      = bridge
    subclass   = PCI-PCI
drm0 at pci1:0:0:  class=0x030000 card=0x0641102b chip=0x0525102b rev=0x82 hdr=0x00
    vendor     = 'Matrox Electronic Systems Ltd.'
    device     = 'MGA G450 Dual Head Chip of G450 graphics card'
    class      = display
    subclass   = VGA

drm output on ttyv0:

drm0: <Matrox G400/G450 (AGP)> mem 0xdc000000-0xddffffff,0xdfefc000-0xdfefffff,0xdf000000-0xdf7fffff irq 16 at device 0.0 on pci1
info: [drm] AGP at 0xe0000000 128MB
info: [drm] Initialized mga 3.2.2 20060319
info: [drm] Initialized card for AGP DMA.

>How-To-Repeat:
Install Xorg 7.3 on FreeBSD computer with Matrox G450 card.
startx
Note 'Video BIOS info block not detected!' message in /var/log/Xorg.0.log.
>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list