Index: [thread] [date] [subject] [author]
  From: Bob Barry <bobb@adsme.co.za>
  To  : Geert Uytterhoeven <Geert.Uytterhoeven@cs.kuleuven.ac.be>
  Date: Thu, 6 May 1999 12:24:19 +0200

Multiple ATI Video Cards

I have installed two ATI Mach64 Rage II C video cards on a 686 machine
running Redhat Linux 5.2 with kernel 2.2.7.  The kernel was compiled with
framebuffer and ATI options enabled.  Video card 0 works fine and seems 
completely normal, but card 1 just shows a screen full of about 50 vertical
green lines.  I have swapped monitors, and swapped cards, and the anomoly
stays with card 1.  

=======================

Both cards are installed by pci - "cat /proc/pci" gives:

PCI devices found:
  Bus  0, device   0, function  0:
    Host bridge: Intel 440BX - 82443BX Host (rev 2).
      Medium devsel.  Master Capable.  Latency=64.  
      Prefetchable 32 bit memory at 0xe0000000 [0xe0000008].
  Bus  0, device   1, function  0:
    PCI bridge: Intel 440BX - 82443BX AGP (rev 2).
      Medium devsel.  Master Capable.  Latency=64.  Min Gnt=128.
  Bus  0, device   7, function  0:
    ISA bridge: Intel 82371AB PIIX4 ISA (rev 2).
      Medium devsel.  Fast back-to-back capable.  Master Capable.  No bursts.  
  Bus  0, device   7, function  1:
    IDE interface: Intel 82371AB PIIX4 IDE (rev 1).
      Medium devsel.  Fast back-to-back capable.  Master Capable.  Latency=64.  
      I/O at 0xf000 [0xf001].
  Bus  0, device   7, function  2:
    USB Controller: Intel 82371AB PIIX4 USB (rev 1).
      Medium devsel.  Fast back-to-back capable.  IRQ 11.  Master Capable.  Latency=64.  
      I/O at 0x6400 [0x6401].
  Bus  0, device   7, function  3:
    Bridge: Intel 82371AB PIIX4 ACPI (rev 2).
      Medium devsel.  Fast back-to-back capable.  
  Bus  0, device   9, function  0:
    Ethernet controller: 3Com 3C905B 100bTX (rev 48).
      Medium devsel.  IRQ 11.  Master Capable.  Latency=64.  Min Gnt=10.Max Lat=10.
      I/O at 0x6800 [0x6801].
      Non-prefetchable 32 bit memory at 0xe9002000 [0xe9002000].
  Bus  0, device  11, function  0:
    VGA compatible controller: ATI Unknown device (rev 122).
      Vendor id=1002. Device id=4756.
      Medium devsel.  Fast back-to-back capable.  IRQ 5.  Master Capable.  Latency=64.  Min Gnt=8.
      Prefetchable 32 bit memory at 0xe5000000 [0xe5000008].
      I/O at 0x6c00 [0x6c01].
      Non-prefetchable 32 bit memory at 0xe9000000 [0xe9000000].
  Bus  0, device  12, function  0:
    VGA compatible controller: ATI Unknown device (rev 122).
      Vendor id=1002. Device id=4756.
      Medium devsel.  Fast back-to-back capable.  IRQ 10.  Master Capable.  Latency=64.  Min Gnt=8.
      Prefetchable 32 bit memory at 0xe7000000 [0xe7000008].
      I/O at 0x7000 [0x7001].
      Non-prefetchable 32 bit memory at 0xe9001000 [0xe9001000].

=======================

Both cards are accessible with fbset, and show separate addresses:

=======================

"fbset -fb /dev/fb0 -s" gave:

mode "name"
    # D: 25.172 MHz, H: 31.466 kHz, V: 59.934 Hz
    geometry 640 480 640 3251 8
    timings 39726 48 16 33 10 96 2
endmode

=======================

"fbset -fb /dev/fb1 -s" gave:

mode "name"
    # D: 25.172 MHz, H: 31.466 kHz, V: 59.934 Hz
    geometry 640 480 640 793 8
    timings 39726 48 16 33 10 96 2
endmode

=======================

'fbset -fb /dev/fb0 -v "800x600-60"' gave:

Linux Frame Buffer Device Configuration Version 2.0-pre (28/10/1998)
(C) Copyright 1995-1998 by Geert Uytterhoeven

Opening frame buffer device `/dev/fb0'
Reading mode database from file `/etc/fb.modes'
Using video mode `800x600-60'
Setting video mode to `/dev/fb0'

=======================

'fbset -fb /dev/fb1 -v "800x600-60"' gave:

Linux Frame Buffer Device Configuration Version 2.0-pre (28/10/1998)
(C) Copyright 1995-1998 by Geert Uytterhoeven

Opening frame buffer device `/dev/fb1'
Reading mode database from file `/etc/fb.modes'
Using video mode `800x600-60'
Setting video mode to `/dev/fb1'

(And the number of vertical green lines increased, at smaller spacing.)

=======================

"fbset -fb /dev/fb0 -v -i" gave:

Linux Frame Buffer Device Configuration Version 2.0-pre (28/10/1998)
(C) Copyright 1995-1998 by Geert Uytterhoeven

Opening frame buffer device `/dev/fb0'
Using current video mode from `/dev/fb0'

mode "name"
    # D: 39.954 MHz, H: 37.835 kHz, V: 60.247 Hz
    geometry 800 600 800 600 8
    timings 25029 88 40 23 1 128 4
    hsync high
    vsync high
endmode

Getting further frame buffer information
Frame buffer device information:
    Name        : ATY Mach64
    Address     : 0xe5000000
    Size        : 2093056
    Type        : PACKED PIXELS
    Visual      : PSEUDOCOLOR
    XPanStep    : 8
    YPanStep    : 1
    YWrapStep   : 0
    LineLength  : 800
    MMIO Address: 0xe57ff800
    MMIO Size   : 2048
    Accelerator : ATI Mach64GT

=======================

with fb1 still at 800x600, "fbset -fb /dev/fb1 -v -i" gave:

Linux Frame Buffer Device Configuration Version 2.0-pre (28/10/1998)
(C) Copyright 1995-1998 by Geert Uytterhoeven

Opening frame buffer device `/dev/fb1'
Using current video mode from `/dev/fb1'

mode "name"
    # D: 25.172 MHz, H: 31.466 kHz, V: 59.934 Hz
    geometry 640 480 640 793 8
    timings 39726 48 16 33 10 96 2
endmode

Getting further frame buffer information
Frame buffer device information:
    Name        : ATY Mach64
    Address     : 0xe7000000
    Size        : 520192
    Type        : PACKED PIXELS
    Visual      : PSEUDOCOLOR
    XPanStep    : 8
    YPanStep    : 1
    YWrapStep   : 0
    LineLength  : 640
    MMIO Address: 0xe77ff800
    MMIO Size   : 2048
    Accelerator : ATI Mach64GT

NOTE that geometry read from fb1 is incorrect; I've tried this over
and over, and it stays at 640x480, although the screen displays the
800x600 pattern.

=======================

Using con2fbmap, several of the consoles were mapped to fb1; when the fb1
consoles are selected and text is entered, there is activity on the fb1
monitor, but no text.

=======================

GGI's demonstration programs run fine on fb0.  
With GGI_DISPLAY=fbdev:/dev/fb1, the GGI demos do not interefere at all
with the fb0 display, but their output on the fb1 monitor is barely
recognizeable.  Afterwards, the fb1 display returns to vertical green lines.

=======================

Is there some startup or reset or MMIO configuration utility I haven't found?
Can two ATI cards operate properly together under Linux 2.2.7?

Assistance or advice would be appreciated.

Bob Barry

Index: [thread] [date] [subject] [author]