> > > So while what you say is all technically true, I'm not sure this is > > > necessary. > > > > I agree. However, Lukas's comment made me wonder about the future: if > > we eventually need to preserve non-PCI devices (like a TPM), should we > > be designing a common identification mechanism for all buses now? Or > > should we settle on BDF for PCI and invent stable identifiers for > > other bus types as they become necessary? > > Well, at least PCI subsystem should use BDF..
BDF must be stable for PCI live update to work correctly. > You are probably right that the matching of preserved data to a struct > device should be more general though. Right, we need a mechanism to ensure early in boot that any preserved device does not auto-bind to a driver later in boot. Using the UEFI Device Path format seems like a good way not to re-invent something that already exists. For example, while a preserved PCI device looks like this: Acpi(PNP0A03,0)/Pci(1E|0)/Pci(0|0) (Luka's example) We can seamlessly support other device types later using their native paths without changing the identification schema: TPM: Acpi(PNP0C31,0) IPMI/BMC: Acpi(PNP0A03,0)/Pci(1F|0)/BMC(1,0xCA2) NVMe (PCI-attached): Acpi(PNP0A03,0)/Pci(1C|0)/Pci(0|0)/NVMe(1,00-00-...) etc... Pasha

