>On Thu, Dec 31, 2020 at 07:08:25PM -0800, Bin Gao wrote:
>> 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.
>>
>> Signed-off-by: Bin Gao <gao...@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();
>
>This looks like a hack.  I'm not sure what's being attempted, but a
>more scalable solution will be needed.

As the commit message described, the goal is to make sure all the pci devices
can be found in pci_probe_devices(). Due to the BIOS internal logic, some PCI
devices may not be visible yet when InitializeYourself() is called. Thus we 
wanted
to run pci_probe_devices() later, i.e. in PrepareToBoot() instead of in
InitializeYourself().

As Paul and Gerd suggested, I will remove CONFIG_QEMU_HARDWARE and let the code
be common for both qemu and bare metal.

>
>    -Kevin

_______________________________________________
SeaBIOS mailing list -- seabios@seabios.org
To unsubscribe send an email to seabios-le...@seabios.org

Reply via email to