cmd: bootefi: restore ability to boot arbitrary blob
Up until commit 5f59518a ("efi_loader: setting boot device"), we could boot an arbitrary blob with bootefi. Indeed, efi_run_image() even has a special case for missing device paths indicating a payload that was directly loaded via JTAG, for example. Restore the ability to inject a UEFI payload into memory and `bootefi` it. If the address passed isn't the last PE-COFF loaded, then we'll wipe out the pre-existing DP/Image information and let efi_run_image() synthesize a memory device path. An image size is required if we're booting an arbitrary payload, and the FDT argument has been changed to accept `-`. The size could be deduced from the image header, but it's required anyways as an explicit acknowledgment that one's trying to boot an arbitrary payload rather than accidentally using the wrong address in the single-addr form. Fixes: 5f59518a ("efi_loader: setting boot device") Signed-off-by: NKyle Evans <kevans@FreeBSD.org> Reviewed-by: NHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Showing
想要评论请 注册 或 登录