From: Heinrich Schuchardt <xypron.glpk@gmx.de>
Date: Wed, 3 Feb 2021 17:46:07 +0000 (+0100)
Subject: efi_loader: VenMedia device path node
X-Git-Tag: v2025.01-rc5-pxa1908~2025^2~3
X-Git-Url: http://git.dujemihanovic.xyz/img/%22http:/www.sics.se/static/git-favicon.png?a=commitdiff_plain;h=02fc018a35c6f25d779ea86c735d266a6b121201;p=u-boot.git

efi_loader: VenMedia device path node

The Load File2 protocol exposes a device path with a VenMedia() node. Hence
our implementation of the device path to text protocol should support this
node.

Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
---

diff --git a/lib/efi_loader/efi_device_path_to_text.c b/lib/efi_loader/efi_device_path_to_text.c
index 5ae4833fa7..1aaa9f94fa 100644
--- a/lib/efi_loader/efi_device_path_to_text.c
+++ b/lib/efi_loader/efi_device_path_to_text.c
@@ -244,6 +244,21 @@ static char *dp_media(char *s, struct efi_device_path *dp)
 			     cddp->partition_start, cddp->partition_size);
 		break;
 	}
+	case DEVICE_PATH_SUB_TYPE_VENDOR_PATH: {
+		int i, n;
+		struct efi_device_path_vendor *vdp =
+			(struct efi_device_path_vendor *)dp;
+
+		s += sprintf(s, "VenMedia(%pUl", &vdp->guid);
+		n = (int)vdp->dp.length - sizeof(struct efi_device_path_vendor);
+		if (n > 0) {
+			s += sprintf(s, ",");
+			for (i = 0; i < n; ++i)
+				s += sprintf(s, "%02x", vdp->vendor_data[i]);
+		}
+		s += sprintf(s, ")");
+		break;
+	}
 	case DEVICE_PATH_SUB_TYPE_FILE_PATH: {
 		struct efi_device_path_file_path *fp =
 			(struct efi_device_path_file_path *)dp;