[PATCH 2/3] uefibootpath: add test for eMMC device path

Ivan Hu ivan.hu at canonical.com
Thu Sep 29 08:27:22 UTC 2016


Sync up with uefi spec. 2.6 for new messaging device path, eMMC device path

Signed-off-by: Ivan Hu <ivan.hu at canonical.com>
---
 src/lib/include/fwts_uefi.h          |  8 +++++++-
 src/uefi/uefibootpath/uefibootpath.c | 10 ++++++++++
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/src/lib/include/fwts_uefi.h b/src/lib/include/fwts_uefi.h
index 5c6ef1c..2ba4755 100644
--- a/src/lib/include/fwts_uefi.h
+++ b/src/lib/include/fwts_uefi.h
@@ -252,7 +252,8 @@ typedef enum {
 	FWTS_UEFI_UFS_DEVICE_PATH_SUBTYPE = 		(0x19),
 	FWTS_UEFI_SD_DEVICE_PATH_SUBTYPE = 		(0x1a),
 	FWTS_UEFI_BLUETOOTH_DEVICE_PATH_SUBTYPE = 	(0x1b),
-	FWTS_UEFI_WIRELESS_DEVICE_PATH_SUBTYPE = 	(0x1c)
+	FWTS_UEFI_WIRELESS_DEVICE_PATH_SUBTYPE = 	(0x1c),
+	FWTS_UEFI_EMMC_DEVICE_PATH_SUBTYPE =		(0x1d)
 } messaging_dev_path_subtypes;
 
 typedef enum {
@@ -552,6 +553,11 @@ typedef struct {
 
 typedef struct {
 	fwts_uefi_dev_path dev_path;
+	uint8_t slot_num;
+} __attribute__((packed)) fwts_uefi_emmc_dev_path;
+
+typedef struct {
+	fwts_uefi_dev_path dev_path;
 	uint32_t partition_number;
 	uint64_t partition_start;
 	uint64_t partition_size;
diff --git a/src/uefi/uefibootpath/uefibootpath.c b/src/uefi/uefibootpath/uefibootpath.c
index 48a57c8..e49885c 100644
--- a/src/uefi/uefibootpath/uefibootpath.c
+++ b/src/uefi/uefibootpath/uefibootpath.c
@@ -612,6 +612,16 @@ static int uefibootpath_check_dev_path(fwts_framework *fw, fwts_uefi_dev_path *d
 				errors++;
 			}
 			break;
+		case FWTS_UEFI_EMMC_DEVICE_PATH_SUBTYPE:
+			if (len != sizeof(fwts_uefi_emmc_dev_path)) {
+				fwts_failed(fw, LOG_LEVEL_MEDIUM, "UEFIEMMCDevPathLength",
+					"The length of eMMC device path is %" PRIu16 " bytes "
+					"and differs from UEFI specification defined %" PRIu16 " bytes.",
+					len,
+					(uint16_t)sizeof(fwts_uefi_emmc_dev_path));
+				errors++;
+			}
+			break;
 		default:
 			fwts_log_info_verbatim(fw, "Unknown subtype of Messaging Device Path.");
 			break;
-- 
1.9.1




More information about the fwts-devel mailing list