On Thu, Dec 19, 2019 at 04:31:23PM -0800, Bin Gao wrote:
On Thu, Dec 19, 2019 at 09:11:22AM +0100, Gerd Hoffmann wrote:
On Wed, Dec 18, 2019 at 11:04:26AM -0800, Bin Gao wrote:
On physical hardware, some PCI devices are not detectable when UEFI BIOS invokes our InitializeYourself() function. But they are guaranteed to be available before UEFI invokes our PreparToBoot() function. So in the case of running CSM on physical hardware, we execute pci_probe_devices() at PrepareToBoot() stage.
Hmm, I'm wondering whenever we can just move the pci_probe_devices() call unconditionally (i.e. do it for qemu too).
In QEMU/OVMF case, all PCI devices are already available before the first call InitializeYourself() comes from BIOS. So I think there is no need to apply this change to QEMU.
Yes, it is not required. But I'd prefer to have both qemu and !qemu case run the same code paths if possible, so the question is whenever there are any bad side effects if we just move the call unconditionally ...
Given that this works fine on your physical hardware and all hardware initialization happens in the prepareforboot callback too I'd expect this should be ok, I can't see anything which depends on pci devices being initialized early in initializeyourself.
cheers, Gerd