[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
MS View on multifunctions
- To: Mailing List Recipients <pci-sig-request@znyx.com>
- Subject: MS View on multifunctions
- From: Pierre-Yves Santerre <pierreys@MICROSOFT.com>
- Date: Mon, 4 Nov 1996 16:30:58 -0800
- Encoding: 107 TEXT
- Resent-Date: Mon, 4 Nov 1996 16:30:58 -0800
- Resent-From: pci-sig-request@znyx.com
- Resent-Message-Id: <"LD3-r3.0.PQ3.yafVo"@dart>
- Resent-Sender: pci-sig-request@znyx.com
There are two options. You can either use multiple PCI functions or not.
The decision should be based on whether the device are thouroughly
independent or not. All the recent versions of the windows OS (both NT
and 9x) treat functions as independent devices. In order words, except
for PCI.SYS/VxD, no one knows the distinction between a card with a
bridge and two PCI device, or two PCI devices functions sharing the same
device number and bus number.
Golden win 95 always tags VGA resource to a video device (class 03xx or
0001). OSR2 and next releases tag VGA resource only to class 0300, 0301
or 0001 if the device is enabled (command register has either memory or
io bit enabled). There is also a flag to override this code.
The reason we do this should be obvious from the MS Hardware Newsletter:
we are doing multi-monitor support (which is a bad name if you ask me
because we are really doing multi-video-adapter with each adapter
enumerating one monitor).
So if you report two video devices, be advised that we will think you
have two video cards with independent LFB, independent video connector
and with either device capable of being disabled without affecting the
other. This last part also holds in the case of a video device and
something else (like an MPEG decoder): they must be independent with
respect to command registers or resource usage (ie no share BAR).
If the device are not independent (as a normal rule, you are really in
trouble right there), you should really either use the multi-function
support with CONFIGMG as the enumerator/devloader trick, or do your own
monolithic driver. Otherwise, you will have to write a lot of code to
handle the fact that the rest of the system, including the UI, will
allow changing the resources/disabling a device without notifying the
other.
The problem with the Cirrus 1013/1100 device is that it declares itself
as a multifunction device, but does not decode the function portion. As
a result, a normal OS would display 8 instances of that device. However,
all versions of win 95 do handle this via a flag in machine.inf that
tells us to ignore the other functions on that device.
Pierre-Yves Santerre
Win9x PnP dude
>----------
>From: sas@corp.cirrus.com[SMTP:sas@corp.cirrus.com]
>Sent: Monday, November 04, 1996 9:33 AM
>To: Mailing List Recipients
>Subject: Re: Multifunction Graphics Adapters
>
>
>> From pci-sig-request@znyx.com Mon Nov 4 09:20:38 1996
>> Return-Path: <pci-sig-request@znyx.com>
>> Resent-From: pci-sig-request@znyx.com
>> Resent-Date: Mon, 4 Nov 96 11:16:14 -0500
>> In-Reply-To: <640D7E32019C1400>
>> Sender: "Bender, Bernhard" <br@elsa.de>
>> Organization: ELSA GmbH
>> Subject: Re: Multifunction Graphics Adapters
>> Mime-Version: 1.0
>> Content-Type> : > text/plain> ; > charset="US-ASCII">
>> Content-Transfer-Encoding: 7BIT
>> X-Mailer: Connect2-SMTP 4.00 MHS to SMTP Gateway
>> Resent-Message-Id: <"QrKue.0.lO.H6ZVo"@dart>
>> X-Mailing-List: <pci-sig@znyx.com> archive/latest/3872
>> X-Loop: pci-sig@znyx.com
>> Precedence: list
>> Resent-Sender: pci-sig-request@znyx.com
>> To: Mailing List Recipients <pci-sig-request@znyx.com>
>> Content-Length: 883
>> X-Lines: 26
>>
>> Rudy,
>>
>> If all of the functionality is inside one chip, I would strongly
>> recommend to use only one PCI config header.
>
>This is not the way to go. When we did the first PCI based PCMCIA
>controller we used only one config space. Now everyone has to special
>case this '94 vintage part 'cause it is not right. Get the software
>fixed and don't break the part, 'cause it will be a long time causing
>problems if you do it wrong.
>
>SA Smith
>
>>
>> Our experience shows that using two functions that both identify
>> themselves as display devices in their class codes cause huge problems
>> unter Win95. You'll get resource conflicts (that are not physically real,
>> but Win95 creates them for you) and installation of drivers will be
>> troublesome (exactly the opposite of PnP).
>>
>> The least you should do is to give the second functions unit any
>> reasonable class code other than display.
>>
>> But, why don't you simple add the second function's resources (BARs) to
>> the first (VGA)?
>>
>> Bernhard Bender
>> ---
>> Group Manager Core Technology ELSA Computer Graphics
>>
>> ELSA GmbH Email: br@elsa.de
>> Sonnenweg 11 Fax : +49 (2405) 450 100
>> D-52 070 Aachen, Germany WWW : http://www.elsa.de
>>
>>
>>
>
>
î ,