Dear Bin,
Thank you for your patches.
Am 01.01.21 um 04:08 schrieb Bin Gao:
On physical hardware, some PCI devices are not detectable when UEFI invokes our InitializeYourself() function.
It would be great, if you gave a concrete example of hardware (board, firmware version and PCI devices).
But they are guaranteed to be available before UEFI invokes our PreparToBoot() function.
Nit: Small typo (also in summary and comment below): Prepar*e*ToBoot.
Signed-off-by: Bin Gao gaobin@amazon.com
src/fw/csm.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/src/fw/csm.c b/src/fw/csm.c index f64bc73..1bd821e 100644 --- a/src/fw/csm.c +++ b/src/fw/csm.c @@ -64,7 +64,9 @@ static void csm_maininit(struct bregs *regs) { interface_init();
- pci_probe_devices();
if (CONFIG_CSM && CONFIG_QEMU_HARDWARE)
pci_probe_devices(); csm_compat_table.PnPInstallationCheckSegment = SEG_BIOS; csm_compat_table.PnPInstallationCheckOffset = get_pnp_offset();
@@ -144,6 +146,13 @@ handle_csm_0002(struct bregs *regs) return; }
// On physical hardware, some PCI devices are not detectable when
// UEFI invokes our InitializeYourself() function. But they
// are guaranteed to be available before UEFI invokes our
// PreparToBoot() function.
if (CONFIG_CSM && !CONFIG_QEMU_HARDWARE)
pci_probe_devices();
dprintf(3, "PrepareToBoot table %04x:%04x\n", regs->es, regs->bx); struct e820entry *p = (void *)csm_compat_table.E820Pointer;
Why don’t we want to do the same for QEMU?
Kind regards,
Paul