Josh: I have CCed you explicitly because I think you had ideas on this some time ago.
The question of multiple PCI IDs for a single gPXE ROM came up recently on IRC. It can be useful to have a single gPXE ROM file that works on multiple PCI devices that have different IDs. I reviewed the PnP, BBS, and PCI 3.0 Firmware specifications to check whether it is possible or not. The constraints end up making general-purpose multiple PCI ID ROMs infeasible. I think it is not worth pursuing this unless these ROMs can be widely used. The approaches I found are: 1. PCI 3.0 device ID list. The PCI 3.0 Data Structure includes a Device List pointer allowing a ROM to advertise support for additional *device* IDs. Two limitations here: only additional device IDs may be used, not vendor IDs, and the BIOS needs to have PCI 3.0 Firmware support. 2. Using multiple ROM headers. This means providing multiple expansion ROM headers within the ROM so the BIOS can pick an applicable one. However, each header must start on a 512-byte boundary and I don't see a reasonable way to share the compressed gPXE image between multiple ROM headers. There will not be enough space to accommodate multiple (duplicate) images, and the alternative is a more complex loader that tries to fetch gPXE as a second stage payload from the PCI expansion ROM (which is known to be tricky). Thoughts? Stefan _______________________________________________ gPXE-devel mailing list gPXE-devel@etherboot.org http://etherboot.org/mailman/listinfo/gpxe-devel