[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
DeviceID in a multi-function device.
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.