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 <[email protected]>
---
  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
_______________________________________________
SeaBIOS mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to