[ipxe-devel] [PATCH 1/1] [efi] Run at TPL_CALLBACK to protect against UEFI timers

Heinrich Schuchardt xypron.glpk at gmx.de
Mon Mar 26 18:10:23 UTC 2018


On 03/26/2018 02:29 PM, Michael Brown wrote:
> On 25/03/18 13:24, Michael Brown wrote:
>> Unfortunately, good coding practice dictates completely ignoring the
>> UEFI specification as far as is possible, since it is full of
>> poorly-designed garbage such as EFI_HII_CONFIG_ROUTING_PROTOCOL,
>> EFI_USB_IO_PROTOCOL, the EFI UNDI API, etc.  iPXE is not a UEFI-only
>> application and I really don't want to pollute the codebase with
>> thousands of acquire/release calls simply to placate the moronic way
>> that the UEFI specification chooses to handle interrupts.
>>
>> I suspect the problem may be caused by a missing call to
>> efi_snp_release() in efi_block_boot().  I haven't had a chance to test
>> the attached patch yet, but you can give it a go.
> 
> I've pushed two TPL-related fixes:
> 
>   http://git.ipxe.org/ipxe.git/commitdiff/331ac451e
>   http://git.ipxe.org/ipxe.git/commitdiff/4f362a032
> 
> After these fixes, I am able to perform a SAN boot into the UEFI shell,
> and I am also able to complete a successful UEFI installation of Fedora
> 27 to an iSCSI target.
> 
> Heinrich: Could you please test and let me know if this fixes iSCSI
> booting within U-Boot?
> 
> Thanks,
> 
> Michael
> 

Thank you for your swift response.

The essential patch on the U-Boot side is
https://lists.denx.de/pipermail/u-boot/2018-March/323678.html
efi_loader: RestoreTPL should execute queued events

With this patch no change in iPXE is required.

Best regards

Heinrich Schuchardt



More information about the ipxe-devel mailing list