Stefan Reinauer stepan@coresystems.de writes:
Eric W. Biederman wrote:
coreboot tracker svn@coreboot.org writes:
#110 Allow for per-device subsystem IDs
What is the proper procedure for saying per-device subsystem IDs is a dumb idea.
The subsystem IDs roughly identify the PCB a component sits on. So unless you have multiple pluggable boards in a system there should only be one subsystem vendor and one subsystem device id.
Is this the official definition? Where does this originate from?
A Paraphrased version of the official definition. It comes from the PCI SIG as I recall. I haven't rechecked this since I added support years ago.
In practice the subsystem vendor IDs are quite arbitrary and definitely not the same for all PCI devices per mainboard on any of the mainboards we have here. In fact, what I have seen quite often is that every PCI device has it's device/vendor ID set as subsystem IDs.
Which is probably a default, giving you no board information. Quite likely a bug. The subsystem vendor is not supposed to be the ASIC vendor.
The subsystem information is used by lspci to correctly identify some devices.
Yes. You need to know which board they are on, to identify them.
Plus, more importantly, we use it in flashrom to identify mainboards. Using a unique device ID per board will require us to have two sets of information, one for legacy bios and one for coreboot.
That sounds weird.
While using per-board subsystem ids sounds the right thing as per your reasoning, I vote to not enforce that behavior, but make it configurable.
I can understand overriding it for compatibility, or in other weird cases. The default should still be global to the mainboard.
Eric