# multiple video card error

truename harry_hao at yeah.net
Fri Mar 12 17:54:01 PST 2010

There are four PCI video cards on the mainboard. They are the same with each other. I have
written the driver myself running in XFree86 4.2.0. The four video cards work fine in Redhat
7.0 when setting "xinerama" in the config file.
Then I upgrade the driver in order to run in Xorg 1.6.4. The new driver can only make the
primary video card work fine in Ubuntu 9.10(XServer version is 1.6.4) . But it cannot make
four video cards work fine at the same time when setting "xinerama" in the config file. In
the log I find that it can read rom of the primary video card. But it cannot read roms of
the other video cards. The Xserver reports an error:
Cannot read V_BIOS (3) Input/output error

I do some further work.

First I type the command "lspci -nv" and find the four video cards in pci address 03:01.0,
03:02.0, 03:03.0 and 03:04.0.
In "sys/bus/pci/devices/", there are four directories "0000:03:01.0\", "0000:03:02.0\",
"0000:03:03.0\", "0000:03:04.0\". And there is a file named rom in each of the four
directories.
In Xserver's log file, I find that information about video bios of the four video cards
are as follows.
Primary V_BIOS segment is: 0xc000   (the primary card)
Cannot read V_BIOS (3) Input/output error (the other cards)
Then I tracked into source code of XServer and libpciaccess. In function
xf86ExtendedInitInt10 in hw\xfree86\int10\generic.c, function pci_device_read_rom is called.
"0000:03:0x.0\rom". This is where the error occurs. An error returns when reading
"0000:03:02.0\rom" or "0000:03:03.0\rom" or "0000:03:04.0\rom". I wonder why it failed when
reading "0000:03:02.0\rom" or "0000:03:03.0\rom" or "0000:03:04.0\rom" while it succedded