Zero partition_signature in the efi_device_path_hard_drive_path structure when signature_type is zero.
This is required so that efi_dp_match() will work as expected when doing memcmp() comparisons. Corrects a problem where the loaded image protocol would not return a device path with MEDIA_DEVICE causing the OpenBSD bootloader to fail on rpi_3 and other targets. Signed-off-by: Jonathan Gray <j...@jsg.id.au> --- lib/efi_loader/efi_device_path.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/efi_loader/efi_device_path.c b/lib/efi_loader/efi_device_path.c index f6e368e029..8045532a29 100644 --- a/lib/efi_loader/efi_device_path.c +++ b/lib/efi_loader/efi_device_path.c @@ -431,6 +431,9 @@ static void *dp_part_fill(void *buf, struct blk_desc *desc, int part) if (hddp->signature_type != 0) memcpy(hddp->partition_signature, &desc->guid_sig, sizeof(hddp->partition_signature)); + else + memset(hddp->partition_signature, 0, + sizeof(hddp->partition_signature)); buf = &hddp[1]; } -- 2.15.0 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot