On 25/01/18 19:06, lynn.heinem...@dell.com wrote:
We compiled with the debug flags you provided and induced a failure.  This 
doesn't occur on every boot but currently on approximately 1 out of every 10 
attempts.
>
> <snip>
>
EFIDRV PciRoot(0x1)/Pci(0x2,0x0)/Pci(0x0,0x0)/MAC(246E96925728,0x1) has driver 
"SNP"
EFIDRV PciRoot(0x1)/Pci(0x2,0x0)/Pci(0x0,0x0)/MAC(246E96925728,0x1) 
disconnecting existing drivers
ASSERT u:\MdePkg\Library\UefiMemoryAllocationLib\MemoryAllocationLib.c(819): 
!EFI_ERROR (Status)

The error is happening during the call to the UEFI boot services DisconnectController() function. The error is entirely outside the scope of iPXE; it is a memory allocation (or corruption) bug somewhere in the platform firmware.

To debug this any further, you'll need to be able to rebuild the platform firmware and add some additional debug code to MdePkg\Library\UefiMemoryAllocationLib\MemoryAllocationLib.c.

If this isn't possible, then you could plausibly patch the UEFI system table from within iPXE to put a debug wrapper around the UEFI boot services FreePool() call, since this is the call that is failing and triggering the assertion. The code in interface/efi/efi_wrap.c (which basically implements strace for UEFI) does similar things and may serve as useful inspiration.

Good luck!

Michael
_______________________________________________
ipxe-devel mailing list
ipxe-devel@lists.ipxe.org
https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel

Reply via email to