[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: DeviceID in a multi-function device.



I've never seen a multi-function device where
all the functions had the same device ID.  (Not
that it couldn't be done, but there are usually
different IDs for the different functions of
the device.)  Examine the northbridge/southbridge
of your PC's chipset.  There are several different
devices, each with its own device ID, in those
two chips.

Vendor ID is a different story.  While, as you
say, there is no requirement for it to be identical,
in practice, all the functions within the chip
are built by the same vendor.  FPGAs may well change
this, as smaller companies develop the ability to
aggregate IP, and want to keep the vendor/device
IDs identical to preexisting standalone parts, to
keep from having to modify driver code.

Regards,
Pat


Richard Walter wrote:
> 
> Folks,
> 
> I've got a question for the PCI community at large:  In a multi-function device, does the DeviceID field need to be the same in all functions?
> 
> At first thought, my initial answer was "yes".  Afterall, the DeviceID is a "Device" ID, and in the hierarchy of "Bus, Device, Function", the Device field is the same for all functions in the device.
> 
> However, from the logical standpoint of functionality, the fact that two functions are sharing the same silicon doesn't mean that they are related at all.  Therefore,  the answer could be "no", that the DeviceID doesn't need to be the same for all functions in a multi-function device.
> 
> Suppose my Vendor ID was xxxx and I had made two chips, device ID's 0001 & 0002.  And my software would therefore use FIND_PCI_DEVICE with VID/DID of xxxx/0001 & xxxx/0002 to find those devices.  Now, if I then take those same functions and make a single multi-function device out of them AND the multi-function device keeps DeviceID of 0001 for function 0 and DeviceID of 0002 for function 1, then my existing software doesn't have to change at all and will still work, which is a good thing.
> 
> Actually, as I was typing this up, I realized that the Vendor ID doesn't really need to be the same for all functions in a multi-function device either.  If I buy IP for a function from Vendor yyyy and buy IP for another function from Vendor zzzz and put them into a multi-function device, is there any reason that I couldn't leave their VID/DID's in the config space of the respective functions?
> 
> Does anyone have thoughts on this?
> 
> -Richard Walter
> Hardware Engineer
> Brocade Communications Systems
> rwalter@brocade.com
> Note: I speak for myself, not for Brocade.

-- 
Patrick Maupin
5216 Crooked Oak Cove
Austin, Texas 78749
512 891 6037