[OpenBIOS] sorry to ask this again

David Christensen dchrist at home.com
Tue Apr 4 21:15:35 CEST 2000


The order that video cards get initialized is based on the bus they are
operating on (PCI or ISA), the PCI bus scanning order (lowest to highest
device or highest to lowest device) and BIOS setup options (AGP over PCI or
PCI over AGP).  An ISA video should be initialized first.  If no ISA then
generally the PCI device closest to the host-PCI bridge and with the lowest
device number (swapping two VGA cards between two slots should give an
indication of which PCI slot is the lower device number).  Some BIOS have
settings to allow an AGP device to be initialized first (AGP is usually on
PCI bus 1, many PCI VGA cards will be located on PCI bus 0, though some
systems may also have a PCI-PCI bridge and this wouldn't be true).  Of
course, vendors are free to make exceptions to this and may have other
criteria of making the decision (a VGA card with the OPROM disabled like
some Matrox cards probably won't be initialized as the boot video device).

The VGA card is identified by its class code in PCI configuration space.


-----Original Message-----
From: owner-openbios at elvis.informatik.uni-freiburg.de
[mailto:owner-openbios at elvis.informatik.uni-freiburg.de]On Behalf Of
Matthew Sullivan
Sent: Tuesday, April 04, 2000 4:16 PM
To: Jeff Garzik
Cc: OpenBIOS
Subject: Re: [OpenBIOS] sorry to ask this again


Actually you answered the problem....

Jeff Garzik wrote:

> Can you turn on word wrap in your mailer, Matthew?

I have but it's set to a high figure to stop it screwing with my mails...
Doh! :-)

> Matthew Sullivan wrote:
> > The only thing I haven't worked out is if you have a card not located in
the usual position most BIOS's will still boot it... but none of the BIOS's
seem to want to init any second card.... (That includes the second VGA port
on a couple of twin TVGA 9000 series cards I had to work on a while ago...)
> By virtue of the fact that two cards cannot share a single VGA region,
> you can only init a single card.  So that makes perfect sense.  The
> standard BIOS reaction to multiple video cards is to -not- execute the
> BIOS init sequence for secondary/tertiary cards, but to instead disable
> their MMIO and PIO decoding altogether.

Which answers it...

>  This is why XFree86 must map
> and execute the video BIOS for a secondary card, before it can be used
> as a secondary head.
> > My conclusion to this is there must be a global identifier to indicate
the card is a display card... and the current BIOS's look for this so that
they can determine, 1/ There is a display card in the system, and 2/ where
it is ... I say this because last time I put 2 PCI VGA cards in a machine
(not the same type) no matter what addresses I set them to and which slot
they physically located, the same card booted each time...!?! This may be
worth investigating further....
> Now -that- is strange.  If there is no video BIOS in the standard
> location, it would seem logical to initialize the first
> PCI_CLASS_DISPLAY card found...  or maybe PCI_CLASS_DISPLAY_VGA.

However cards/the bus seem to have 'priority' between cards (I do _not_ know
PCI bus operation) two different cards would work in different ways and have
a different priority as to what memory areas they get....  As the card is
not in the 'default video' location it's getting picked up on and by the PCI
bus/PCI controller/PCI software and then being initallized...

First one started on the bus reset gets initiallized...? ...The answer...?



You are validating my inherent mistrust of strangers.

To unsubscribe: send mail to majordomo at freiburg.linux.de
with 'unsubscribe openbios' in the body of the message

More information about the openbios mailing list