Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Oct 1998 13:30:06 +1000
From:      David Dawes <dawes@rf900.physics.usyd.edu.au>
To:        Mike Smith <mike@smith.net.au>, Greg Lehey <grog@lemis.com>
Cc:        Jason Thorpe <thorpej@nas.nasa.gov>, Nick Hibma <nick.hibma@jrc.it>, FreeBSD hackers mailing list <hackers@FreeBSD.ORG>
Subject:   Re: multi-user: multiple consoles in FreeBSD
Message-ID:  <19981023133006.D20302@rf900.physics.usyd.edu.au>
In-Reply-To: <199810222335.QAA01865@dingo.cdrom.com>; from Mike Smith on Thu, Oct 22, 1998 at 04:35:05PM -0700
References:  <19981023085339.H28824@freebie.lemis.com> <199810222335.QAA01865@dingo.cdrom.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Oct 22, 1998 at 04:35:05PM -0700, Mike Smith wrote:
>> > Some display controllers (notably, 3D accellerators) have a jumper
>> > to disable VGA mode completely, but then you only get a memory
>> > mapped frame buffer (if you're lucky :-)
>> 
>> Hmm.  I think this is your proviso.  You specifically mean VGA
>> compatibility.  Well, yes, if you want a graphics board to conform to
>> a standard which only allows one board, then you can only use one
>> board.  But there's more than just a frame buffer if you disable this
>> feature.
>
>Jason's gripe was that you con't have more than one video card because
>the second wants its VGA-compatibility registers mapped in the same
>place as the first. Unless there's something really odd going on, it's
>relatively trivial to simply map the I/O ranges for display cards other
>than the first somewhere else; you just need the smarts in your system 
>to do this.
>
>Video chipsets not supporting this would be in violation of the PCI 
>spec.  I wouldn't expect this to be too common.

The PCI spec doesn't provide a device-independent way of remapping the
VGA compatibility resources.  They are not relocatable in the sense of
normal PCI resources defined through the base address registers.  In my
experience, most PCI BIOSs disable memory and I/O access for secondary
VGA-compatible cards by clearing the appropriate bits in the PCI command
register.

Multi-head friendly cards provide a (device-specific) way of disabling
and/or relocating the VGA-compatible resources.  When disabled (like the
case of the older Millennium cards that have a switch for this), the
PCI class setting may indicate Display/other rather than Display/VGA.

As Kazu mentioned in his reply, another important issue is initialising
secondary video cards.  Even setting up a standard video mode will in
general require more detailed knowledge of the hardware than just the
standard VGA regisers.

We (XFree86) are currently grappling with these issues for our multi-head
support in 4.0.  One thing we're hoping to do is multiplex access to
fixed resources like the VGA-compatiblity registers when needed and when
they can be disabled but not relocated.  If on some OSs the video BIOS
could be called by the X server, it may help with initialisation issues.
It might be even better of the OS took care of this at boot time.

David

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19981023133006.D20302>