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).
Will add this formation in my next revision.
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.
Will fix in next revision.
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?
This problem was only seen on physical hardware, so I wanted this fix to be applied only to physical hardware.
Kind regards,
Paul _______________________________________________ SeaBIOS mailing list -- seabios@seabios.org To unsubscribe send an email to seabios-leave@seabios.org