Merge patch series "spl: fix error handling in spl_fit_get_image_name()"

Heinrich Schuchardt <heinrich.schuchardt@canonical.com> says:

spl_fit_get_image_name() used to lack a detection of malformed image name
properties in FIT images. The change in commit 3704b888a4ca ("common/spl:
fix potential out of buffer access in spl_fit_get_image_name function")
tried to fix this  but led to function spl_fit_get_image_name() no longer
detecting if a property at index > 1 does not exist.

This patch is reverted.

An explicit check for malformed image name properties is introduced.

Link: https://lore.kernel.org/u-boot/38f5d078-3328-4bdb-9c95-4fb5fe89ddc2@gmx.de/T/#u
Link: https://lore.kernel.org/r/20250624153431.46986-1-heinrich.schuchardt@canonical.com
diff --git a/Makefile b/Makefile
index 451d896..6eb76d7 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,7 @@
 VERSION = 2025
 PATCHLEVEL = 07
 SUBLEVEL =
-EXTRAVERSION = -rc4
+EXTRAVERSION = -rc5
 NAME =
 
 # *DOCUMENTATION*
diff --git a/arch/arm/mach-airoha/an7581/init.c b/arch/arm/mach-airoha/an7581/init.c
index cefe9c6..d149e0e 100644
--- a/arch/arm/mach-airoha/an7581/init.c
+++ b/arch/arm/mach-airoha/an7581/init.c
@@ -2,6 +2,7 @@
 
 #include <fdtdec.h>
 #include <init.h>
+#include <sysreset.h>
 #include <asm/armv8/mmu.h>
 #include <asm/system.h>
 
@@ -21,7 +22,7 @@
 	return fdtdec_setup_memory_banksize();
 }
 
-void reset_cpu(ulong addr)
+void reset_cpu(void)
 {
 	psci_system_reset();
 }
diff --git a/board/raidsonic/ib62x0/MAINTAINERS b/board/raidsonic/ib62x0/MAINTAINERS
index 423aa0c..2822eb0 100644
--- a/board/raidsonic/ib62x0/MAINTAINERS
+++ b/board/raidsonic/ib62x0/MAINTAINERS
@@ -1,5 +1,5 @@
 IB62X0 BOARD
-M:	Luka Perkov <luka@openwrt.org>
+M:	Tony Dinh <mibodhi@gmail.com>
 S:	Maintained
 F:	board/raidsonic/ib62x0/
 F:	include/configs/ib62x0.h
diff --git a/board/samsung/e850-96/e850-96.c b/board/samsung/e850-96/e850-96.c
index 0bef68d..3bbd952 100644
--- a/board/samsung/e850-96/e850-96.c
+++ b/board/samsung/e850-96/e850-96.c
@@ -19,8 +19,17 @@
 
 int board_init(void)
 {
+	return 0;
+}
+
+int board_late_init(void)
+{
 	int err;
 
+	/*
+	 * Do this in board_late_init() to make sure MMC is not probed before
+	 * efi_init_early().
+	 */
 	err = load_ldfw();
 	if (err)
 		printf("ERROR: LDFW loading failed (%d)\n", err);
diff --git a/cmd/Kconfig b/cmd/Kconfig
index f21d27c..057f091 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -153,6 +153,7 @@
 	bool "config"
 	default SANDBOX
 	select BUILD_BIN2C
+	select GZIP
 	help
 	  Print ".config" contents.
 
diff --git a/common/Makefile b/common/Makefile
index 3599156..e589f30 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -19,6 +19,10 @@
 # # boards
 obj-y += board_f.o
 obj-y += board_r.o
+ifdef CONFIG_$(PHASE_)SYS_THUMB_BUILD
+CFLAGS_REMOVE_board_f.o := $(LTO_CFLAGS)
+CFLAGS_REMOVE_board_r.o := $(LTO_CFLAGS)
+endif
 obj-$(CONFIG_DISPLAY_BOARDINFO) += board_info.o
 obj-$(CONFIG_DISPLAY_BOARDINFO_LATE) += board_info.o
 
diff --git a/configs/e850-96_defconfig b/configs/e850-96_defconfig
index 5facd41..e4c6aa2 100644
--- a/configs/e850-96_defconfig
+++ b/configs/e850-96_defconfig
@@ -19,6 +19,7 @@
 CONFIG_BOOTSTD_FULL=y
 CONFIG_DEFAULT_FDT_FILE="exynos850-e850-96.dtb"
 # CONFIG_DISPLAY_CPUINFO is not set
+CONFIG_BOARD_LATE_INIT=y
 CONFIG_CMD_BOOTEFI_SELFTEST=y
 CONFIG_CMD_ABOOTIMG=y
 CONFIG_CMD_NVEDIT_EFI=y
diff --git a/configs/r8a779g0_whitehawk_defconfig b/configs/r8a779g0_whitehawk_defconfig
index 8dcf8e3..5d9cfc9 100644
--- a/configs/r8a779g0_whitehawk_defconfig
+++ b/configs/r8a779g0_whitehawk_defconfig
@@ -26,7 +26,9 @@
 CONFIG_RENESAS_RAVB=y
 CONFIG_BAUDRATE=921600
 
-CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xeb300000
+# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
+CONFIG_SPL_HAVE_INIT_STACK=y
+CONFIG_SPL_STACK=0xe6400000
 CONFIG_SPL_DM_SPI=y
 CONFIG_SPL_TEXT_BASE=0xeb210000
 CONFIG_SPL_STACK_R_ADDR=0x44000000
diff --git a/configs/r8a779g3_sparrowhawk_defconfig b/configs/r8a779g3_sparrowhawk_defconfig
index 47fc536..7202828 100644
--- a/configs/r8a779g3_sparrowhawk_defconfig
+++ b/configs/r8a779g3_sparrowhawk_defconfig
@@ -29,7 +29,9 @@
 CONFIG_PHY_MICREL_KSZ90X1=y
 CONFIG_RENESAS_RAVB=y
 
-CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0xeb300000
+# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
+CONFIG_SPL_HAVE_INIT_STACK=y
+CONFIG_SPL_STACK=0xe6400000
 CONFIG_SPL_DM_SPI=y
 CONFIG_SPL_TEXT_BASE=0xeb210000
 CONFIG_SPL_STACK_R_ADDR=0x44000000
diff --git a/doc/develop/release_cycle.rst b/doc/develop/release_cycle.rst
index fee7cca..408820e 100644
--- a/doc/develop/release_cycle.rst
+++ b/doc/develop/release_cycle.rst
@@ -79,7 +79,7 @@
 
 * U-Boot |next_ver|-rc4 was released on Mon 09 June 2025.
 
-.. * U-Boot |next_ver|-rc5 was released on Mon 23 June 2025.
+* U-Boot |next_ver|-rc5 was released on Mon 23 June 2025.
 
 Please note that the following dates are planned only and may be deviated from
 as needed.
diff --git a/doc/usage/cmd/gpt.rst b/doc/usage/cmd/gpt.rst
index 8534f78..13e8783 100644
--- a/doc/usage/cmd/gpt.rst
+++ b/doc/usage/cmd/gpt.rst
@@ -54,7 +54,7 @@
 
     * name=<NAME> - The partition name, required
     * start=<BYTES> - The partition start offset in bytes, required
-    * size=<BYTES> - The partition size in bytes or "-" to expand it to the whole free area
+    * size=<BYTES> - The partition size in bytes or "-" for the last partition to expand it to the whole free area
     * bootable - Set the legacy bootable flag
     * uuid=<UUID> - The partition UUID, optional if CONFIG_RANDOM_UUID=y is enabled
     * type=<UUID> - The partition type GUID, requires CONFIG_PARTITION_TYPE_GUID=y
@@ -63,6 +63,23 @@
     If 'uuid' is not specified, but CONFIG_RANDOM_UUID is enabled, a random UUID
     will be generated for the partition
 
+    If 'type' is not specified or without CONFIG_PARTITION_TYPE_GUID=y,
+    the used partition type GUID is PARTITION_BASIC_DATA_GUID.
+
+    Some strings can be also used at the place of the known partition type GUID:
+	* "mbr" = LEGACY_MBR_PARTITION_GUID (024DEE41-33E7-11D3-9D69-0008C781F39F)
+	* "msft" = PARTITION_MSFT_RESERVED_GUID (E3C9E316-0B5C-4DB8-817D-F92DF00215AE)
+	* "data" = PARTITION_BASIC_DATA_GUID (EBD0A0A2-B9E5-4433-87C0-68B6B72699C7)
+	* "linux" = PARTITION_LINUX_FILE_SYSTEM_DATA_GUID (0FC63DAF-8483-4772-8E79-3D69D8477DE4)
+	* "raid" = PARTITION_LINUX_RAID_GUID (A19D880F-05FC-4D3B-A006-743F0F84911E)
+	* "swap" = PARTITION_LINUX_SWAP_GUID (0657FD6D-A4AB-43C4-84E5-0933C84B4F4F)
+	* "lvm" = PARTITION_LINUX_LVM_GUID (E6D6D379-F507-44C2-A23C-238F2A3DF928)
+	* "u-boot-env" = PARTITION_U_BOOT_ENVIRONMENT(3DE21764-95BD-54BD-A5C3-4ABE786F38A8)
+	* "system" = PARTITION_SYSTEM_GUID (C12A7328-F81F-11D2-BA4B-00A0C93EC93B)
+
+    The GPT partitions layout and associated 'type' are also printed with the
+    :doc:`part command <part>` command by typing "part list".
+
 gpt enumerate
 ~~~~~~~~~~~~~
 
@@ -162,16 +179,17 @@
 
 Create 6 partitions on a disk::
 
-    => setenv gpt_parts 'uuid_disk=bec9fc2a-86c1-483d-8a0e-0109732277d7;
-        name=boot,start=4M,size=128M,bootable,type=ebd0a0a2-b9e5-4433-87c0-68b6b72699c7,
-        name=rootfs,size=3072M,type=0fc63daf-8483-4772-8e79-3d69d8477de4;
-        name=system-data,size=512M,type=0fc63daf-8483-4772-8e79-3d69d8477de4;
-        name=[ext],size=-,type=0fc63daf-8483-4772-8e79-3d69d8477de4;
-        name=user,size=-,type=0fc63daf-8483-4772-8e79-3d69d8477de4;
-        name=modules,size=100M,type=0fc63daf-8483-4772-8e79-3d69d8477de4;
-        name=ramdisk,size=8M,type=0fc63daf-8483-4772-8e79-3d69d8477de4
+    => setenv gpt_parts 'uuid_disk=bec9fc2a-86c1-483d-8a0e-0109732277d7;\
+    name=boot,start=4M,size=128M,bootable,type=ebd0a0a2-b9e5-4433-87c0-68b6b72699c7;\
+    name=rootfs,size=3072M,type=0fc63daf-8483-4772-8e79-3d69d8477de4;\
+    name=system-data,size=512M,type=0fc63daf-8483-4772-8e79-3d69d8477de4;\
+    name=user,size=512M,type=0fc63daf-8483-4772-8e79-3d69d8477de4;\
+    name=modules,size=100M,type=0fc63daf-8483-4772-8e79-3d69d8477de4;\
+    name=ramdisk,size=8M,type=0fc63daf-8483-4772-8e79-3d69d8477de4;\
+    name=[ext],size=-,type=0fc63daf-8483-4772-8e79-3d69d8477de4'
     => gpt write mmc 0 $gpt_parts
 
+Last partition "[ext]" with '-' is extended up to the end of the disk
 
 Verify that the device matches the partition layout described in the variable
 $gpt_parts::
@@ -228,3 +246,60 @@
     => gpt setenv mmc 0 boot
     => echo ${gpt_partition_entry}
     2
+
+Other example: a disk with known partition types::
+
+    => setenv gpt_parts 'name=u-boot,size=32M,type=data;\
+    name=env,size=1M,type=u-boot-env;
+    name=ESP,size=128M,type=system;
+    name=rootfs,size=3072M,type=linux;
+    name=swap,size=100M,type=swap;
+    name=user,size=-,type=linux'
+    => gpt write mmc 0 $gpt_parts
+
+    => part list mmc 0
+    Partition Map for mmc device 0  --   Partition Type: EFI
+    Part	Start LBA	End LBA		Name
+    	Attributes
+    	Type GUID
+    	Partition GUID
+    1	0x00000022	0x00010021	"u-boot"
+    	attrs:	0x0000000000000000
+    	type:	ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
+    		(data)
+    	guid:	502d48f6-81c0-488f-bdc0-ad602498f3ce
+      2	0x00010022	0x00010821	"env"
+    	attrs:	0x0000000000000000
+    	type:	3de21764-95bd-54bd-a5c3-4abe786f38a8
+    		(u-boot-env)
+    	guid:	9dc62338-459a-485e-bd8f-b3fbf728d9c0
+      3	0x00010822	0x00050821	"ESP"
+    	attrs:	0x0000000000000000
+    	type:	c12a7328-f81f-11d2-ba4b-00a0c93ec93b
+    		(EFI System Partition)
+    	guid:	8a3a1168-6af8-4ba7-a95d-9cd0d14e1b3d
+      4	0x00050822	0x00650821	"rootfs"
+    	attrs:	0x0000000000000000
+    	type:	0fc63daf-8483-4772-8e79-3d69d8477de4
+    		(linux)
+    	guid:	411ffebc-8a19-469d-99a9-0982409a6851
+      5	0x00650822	0x00682821	"swap"
+    	attrs:	0x0000000000000000
+    	type:	0657fd6d-a4ab-43c4-84e5-0933c84b4f4f
+    		(swap)
+    	guid:	f8ec0410-95ec-4e3e-8b98-fb8cf271a201
+      6	0x00682822	0x01dacbde	"user"
+    	attrs:	0x0000000000000000
+    	type:	0fc63daf-8483-4772-8e79-3d69d8477de4
+    		(linux)
+    	guid:	c5543e1c-566d-4502-99ad-20545007e673
+
+Modifying GPT partition layout from U-Boot::
+
+    => gpt read mmc 0 current_partitions
+    => env edit current_partitions
+        edit: uuid_disk=[...];name=part1,start=0x4000,size=0x4000,uuid=[...];
+        name=part2,start=0xc000,size=0xc000,uuid=[...];[ . . . ]
+
+    => gpt write mmc 0 $current_partitions
+    => gpt verify mmc 0 $current_partitions
diff --git a/doc/usage/cmd/wget.rst b/doc/usage/cmd/wget.rst
index 44033aa..06df284 100644
--- a/doc/usage/cmd/wget.rst
+++ b/doc/usage/cmd/wget.rst
@@ -185,13 +185,6 @@
 CONFIG_PROT_TCP_SACK=y. This will improve the download speed. Selective
 Acknowledgments are enabled by default with lwIP.
 
-.. note::
-
-    U-Boot currently has no way to verify certificates for HTTPS.
-    A place to store the root CA certificates is needed, and then MBed TLS would
-    need to walk the entire chain. Therefore, man-in-the middle attacks are
-    possible and HTTPS should not be relied upon for payload authentication.
-
 Return value
 ------------
 
diff --git a/drivers/i2c/muxes/i2c-mux-uclass.c b/drivers/i2c/muxes/i2c-mux-uclass.c
index d1999d2..012881d 100644
--- a/drivers/i2c/muxes/i2c-mux-uclass.c
+++ b/drivers/i2c/muxes/i2c-mux-uclass.c
@@ -40,6 +40,11 @@
 	struct i2c_mux_bus *plat = dev_get_parent_plat(dev);
 	int channel;
 
+	ofnode node = dev_ofnode(dev);
+
+	if (!ofnode_has_property(node, "reg"))
+		return 0;
+
 	channel = dev_read_u32_default(dev, "reg", -1);
 	if (channel < 0)
 		return -EINVAL;
diff --git a/drivers/net/designware.c b/drivers/net/designware.c
index 0f93c25..fce3ef9 100644
--- a/drivers/net/designware.c
+++ b/drivers/net/designware.c
@@ -716,7 +716,7 @@
 	ulong desc_start = (ulong)desc_p;
 	ulong desc_end = desc_start +
 		roundup(sizeof(*desc_p), ARCH_DMA_MINALIGN);
-	ulong data_start = desc_p->dmamac_addr;
+	ulong data_start = dev_bus_to_phys(priv->dev, desc_p->dmamac_addr);
 	ulong data_end = data_start + roundup(CFG_ETH_BUFSIZE, ARCH_DMA_MINALIGN);
 
 	/* Invalidate the descriptor buffer data */
diff --git a/include/image.h b/include/image.h
index c1db838..5f4e23a 100644
--- a/include/image.h
+++ b/include/image.h
@@ -1688,7 +1688,7 @@
  */
 int image_pre_load(ulong addr);
 
-#if defined(USE_HOSTCC)
+#if defined(USE_HOSTCC) && CONFIG_IS_ENABLED(LIBCRYPTO)
 /**
  * rsa_verify_openssl() - Verify a signature against some data with openssl API
  *
diff --git a/include/log.h b/include/log.h
index dd44bad..59c66eb 100644
--- a/include/log.h
+++ b/include/log.h
@@ -176,7 +176,7 @@
 #define _LOG_MAX_LEVEL LOGL_INFO
 #endif
 
-#define log_emer(_fmt...)	log(LOG_CATEGORY, LOGL_EMERG, ##_fmt)
+#define log_emerg(_fmt...)	log(LOG_CATEGORY, LOGL_EMERG, ##_fmt)
 #define log_alert(_fmt...)	log(LOG_CATEGORY, LOGL_ALERT, ##_fmt)
 #define log_crit(_fmt...)	log(LOG_CATEGORY, LOGL_CRIT, ##_fmt)
 #define log_err(_fmt...)	log(LOG_CATEGORY, LOGL_ERR, ##_fmt)
diff --git a/lib/rsa/rsa-verify.c b/lib/rsa/rsa-verify.c
index 4a0418a..b65fbe4 100644
--- a/lib/rsa/rsa-verify.c
+++ b/lib/rsa/rsa-verify.c
@@ -570,7 +570,7 @@
 	uint8_t hash[info->crypto->key_len];
 	int ret;
 
-#ifdef USE_HOSTCC
+#if defined(USE_HOSTCC) && CONFIG_IS_ENABLED(LIBCRYPTO)
 	if (!info->fdt_blob)
 		return rsa_verify_openssl(info, region, region_count, sig, sig_len);
 #endif
diff --git a/lib/uuid.c b/lib/uuid.c
index 6abbcf2..a1c88b9 100644
--- a/lib/uuid.c
+++ b/lib/uuid.c
@@ -62,184 +62,197 @@
 	return 1;
 }
 
+/*
+ * Array of string (short and long) for known GUID of GPT partition type
+ * at least one string must be present, @type or @description
+ *
+ * @type        : short name for the parameter 'type' of gpt command (max size UUID_STR_LEN = 36,
+ *                no space), also used as fallback description when the next field is absent
+ * @description : long description associated to type GUID, used for %pUs
+ * @guid        : known type GUID value
+ */
 static const struct {
-	const char *string;
+	const char *type;
+	const char *description;
 	efi_guid_t guid;
 } list_guid[] = {
 #ifndef USE_HOSTCC
-#if defined(CONFIG_PARTITION_TYPE_GUID) || defined(CONFIG_CMD_EFIDEBUG) || \
-	defined(CONFIG_EFI)
-	{"EFI System Partition", PARTITION_SYSTEM_GUID},
-#endif
-#ifdef CONFIG_PARTITION_TYPE_GUID
-	{"mbr",		LEGACY_MBR_PARTITION_GUID},
-	{"msft",	PARTITION_MSFT_RESERVED_GUID},
-	{"data",	PARTITION_BASIC_DATA_GUID},
-	{"linux",	PARTITION_LINUX_FILE_SYSTEM_DATA_GUID},
-	{"raid",	PARTITION_LINUX_RAID_GUID},
-	{"swap",	PARTITION_LINUX_SWAP_GUID},
-	{"lvm",		PARTITION_LINUX_LVM_GUID},
-	{"u-boot-env",	PARTITION_U_BOOT_ENVIRONMENT},
-	{"cros-kern",	PARTITION_CROS_KERNEL},
-	{"cros-root",	PARTITION_CROS_ROOT},
-	{"cros-fw",	PARTITION_CROS_FIRMWARE},
-	{"cros-rsrv",	PARTITION_CROS_RESERVED},
-#endif
+#if CONFIG_IS_ENABLED(EFI_PARTITION)
+	{"mbr",		NULL,	LEGACY_MBR_PARTITION_GUID},
+	{"msft",	NULL,	PARTITION_MSFT_RESERVED_GUID},
+	{"data",	NULL,	PARTITION_BASIC_DATA_GUID},
+	{"linux",	NULL,	PARTITION_LINUX_FILE_SYSTEM_DATA_GUID},
+	{"raid",	NULL,	PARTITION_LINUX_RAID_GUID},
+	{"swap",	NULL,	PARTITION_LINUX_SWAP_GUID},
+	{"lvm",		NULL,	PARTITION_LINUX_LVM_GUID},
+	{"u-boot-env",	NULL,	PARTITION_U_BOOT_ENVIRONMENT},
+	{"cros-kern",	NULL,	PARTITION_CROS_KERNEL},
+	{"cros-root",	NULL,	PARTITION_CROS_ROOT},
+	{"cros-fw",	NULL,	PARTITION_CROS_FIRMWARE},
+	{"cros-rsrv",	NULL,	PARTITION_CROS_RESERVED},
+	{
+		"system", "EFI System Partition",
+		PARTITION_SYSTEM_GUID,
+	},
 #if defined(CONFIG_CMD_EFIDEBUG) || defined(CONFIG_EFI)
 	{
-		"Device Path",
+		NULL, "Device Path",
+		PARTITION_SYSTEM_GUID,
+	},
+	{
+		NULL, "Device Path",
 		EFI_DEVICE_PATH_PROTOCOL_GUID,
 	},
 	{
-		"Device Path To Text",
+		NULL, "Device Path To Text",
 		EFI_DEVICE_PATH_TO_TEXT_PROTOCOL_GUID,
 	},
 	{
-		"Device Path Utilities",
+		NULL, "Device Path Utilities",
 		EFI_DEVICE_PATH_UTILITIES_PROTOCOL_GUID,
 	},
 	{
-		"Unicode Collation 2",
+		NULL, "Unicode Collation 2",
 		EFI_UNICODE_COLLATION_PROTOCOL2_GUID,
 	},
 	{
-		"Driver Binding",
+		NULL, "Driver Binding",
 		EFI_DRIVER_BINDING_PROTOCOL_GUID,
 	},
 	{
-		"Simple Text Input",
+		NULL, "Simple Text Input",
 		EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID,
 	},
 	{
-		"Simple Text Input Ex",
+		NULL, "Simple Text Input Ex",
 		EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID,
 	},
 	{
-		"Simple Text Output",
+		NULL, "Simple Text Output",
 		EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL_GUID,
 	},
 	{
-		"Block IO",
+		NULL, "Block IO",
 		EFI_BLOCK_IO_PROTOCOL_GUID,
 	},
 	{
-		"Disk IO",
+		NULL, "Disk IO",
 		EFI_DISK_IO_PROTOCOL_GUID,
 	},
 	{
-		"Simple File System",
+		NULL, "Simple File System",
 		EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID,
 	},
 	{
-		"Loaded Image",
+		NULL, "Loaded Image",
 		EFI_LOADED_IMAGE_PROTOCOL_GUID,
 	},
 	{
-		"Loaded Image Device Path",
+		NULL, "Loaded Image Device Path",
 		EFI_LOADED_IMAGE_DEVICE_PATH_PROTOCOL_GUID,
 	},
 	{
-		"Graphics Output",
+		NULL, "Graphics Output",
 		EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID,
 	},
 	{
-		"HII String",
+		NULL, "HII String",
 		EFI_HII_STRING_PROTOCOL_GUID,
 	},
 	{
-		"HII Database",
+		NULL, "HII Database",
 		EFI_HII_DATABASE_PROTOCOL_GUID,
 	},
 	{
-		"HII Config Access",
+		NULL, "HII Config Access",
 		EFI_HII_CONFIG_ACCESS_PROTOCOL_GUID,
 	},
 	{
-		"HII Config Routing",
+		NULL, "HII Config Routing",
 		EFI_HII_CONFIG_ROUTING_PROTOCOL_GUID,
 	},
 	{
-		"Load File",
+		NULL, "Load File",
 		EFI_LOAD_FILE_PROTOCOL_GUID,
 	},
 	{
-		"Load File2",
+		NULL, "Load File2",
 		EFI_LOAD_FILE2_PROTOCOL_GUID,
 	},
 	{
-		"Random Number Generator",
+		NULL, "Random Number Generator",
 		EFI_RNG_PROTOCOL_GUID,
 	},
 	{
-		"Simple Network",
+		NULL, "Simple Network",
 		EFI_SIMPLE_NETWORK_PROTOCOL_GUID,
 	},
 	{
-		"PXE Base Code",
+		NULL, "PXE Base Code",
 		EFI_PXE_BASE_CODE_PROTOCOL_GUID,
 	},
 	{
-		"Device-Tree Fixup",
+		NULL, "Device-Tree Fixup",
 		EFI_DT_FIXUP_PROTOCOL_GUID,
 	},
 	{
-		"TCG2",
+		NULL, "TCG2",
 		EFI_TCG2_PROTOCOL_GUID,
 	},
 	{
-		"Firmware Management",
+		NULL, "Firmware Management",
 		EFI_FIRMWARE_MANAGEMENT_PROTOCOL_GUID
 	},
 #if IS_ENABLED(CONFIG_EFI_HTTP_PROTOCOL)
 	{
-		"HTTP",
+		NULL, "HTTP",
 		EFI_HTTP_PROTOCOL_GUID,
 	},
 	{
-		"HTTP Service Binding",
+		NULL, "HTTP Service Binding",
 		EFI_HTTP_SERVICE_BINDING_PROTOCOL_GUID,
 	},
 	{
-		"IPv4 Config2",
+		NULL, "IPv4 Config2",
 		EFI_IP4_CONFIG2_PROTOCOL_GUID,
 	},
 #endif
 	/* Configuration table GUIDs */
 	{
-		"ACPI table",
+		NULL, "ACPI table",
 		EFI_ACPI_TABLE_GUID,
 	},
 	{
-		"EFI System Resource Table",
+		NULL, "EFI System Resource Table",
 		EFI_SYSTEM_RESOURCE_TABLE_GUID,
 	},
 	{
-		"device tree",
+		NULL, "device tree",
 		EFI_FDT_GUID,
 	},
 	{
-		"SMBIOS table",
+		NULL, "SMBIOS table",
 		SMBIOS_TABLE_GUID,
 	},
 	{
-		"SMBIOS3 table",
+		NULL, "SMBIOS3 table",
 		SMBIOS3_TABLE_GUID,
 	},
 	{
-		"Runtime properties",
+		NULL, "Runtime properties",
 		EFI_RT_PROPERTIES_TABLE_GUID,
 	},
 	{
-		"TCG2 Final Events Table",
+		NULL, "TCG2 Final Events Table",
 		EFI_TCG2_FINAL_EVENTS_TABLE_GUID,
 	},
 	{
-		"EFI Conformance Profiles Table",
+		NULL, "EFI Conformance Profiles Table",
 		EFI_CONFORMANCE_PROFILES_TABLE_GUID,
 	},
 #ifdef CONFIG_EFI_RISCV_BOOT_PROTOCOL
 	{
-		"RISC-V Boot",
+		NULL, "RISC-V Boot",
 		RISCV_EFI_BOOT_PROTOCOL_GUID,
 	},
 #endif
@@ -247,35 +260,36 @@
 #ifdef CONFIG_CMD_NVEDIT_EFI
 	/* signature database */
 	{
-		"EFI_GLOBAL_VARIABLE_GUID",
+		"EFI_GLOBAL_VARIABLE_GUID", NULL,
 		EFI_GLOBAL_VARIABLE_GUID,
 	},
 	{
-		"EFI_IMAGE_SECURITY_DATABASE_GUID",
+		"EFI_IMAGE_SECURITY_DATABASE_GUID", NULL,
 		EFI_IMAGE_SECURITY_DATABASE_GUID,
 	},
 	/* certificate types */
 	{
-		"EFI_CERT_SHA256_GUID",
+		"EFI_CERT_SHA256_GUID", NULL,
 		EFI_CERT_SHA256_GUID,
 	},
 	{
-		"EFI_CERT_X509_GUID",
+		"EFI_CERT_X509_GUID", NULL,
 		EFI_CERT_X509_GUID,
 	},
 	{
-		"EFI_CERT_TYPE_PKCS7_GUID",
+		"EFI_CERT_TYPE_PKCS7_GUID", NULL,
 		EFI_CERT_TYPE_PKCS7_GUID,
 	},
 #endif
 #if defined(CONFIG_CMD_EFIDEBUG) || defined(CONFIG_EFI)
-	{ "EFI_LZMA_COMPRESSED", EFI_LZMA_COMPRESSED },
-	{ "EFI_DXE_SERVICES", EFI_DXE_SERVICES },
-	{ "EFI_HOB_LIST", EFI_HOB_LIST },
-	{ "EFI_MEMORY_TYPE", EFI_MEMORY_TYPE },
-	{ "EFI_MEM_STATUS_CODE_REC", EFI_MEM_STATUS_CODE_REC },
-	{ "EFI_GUID_EFI_ACPI1", EFI_GUID_EFI_ACPI1 },
+	{ "EFI_LZMA_COMPRESSED", NULL, EFI_LZMA_COMPRESSED },
+	{ "EFI_DXE_SERVICES", NULL, EFI_DXE_SERVICES },
+	{ "EFI_HOB_LIST", NULL, EFI_HOB_LIST },
+	{ "EFI_MEMORY_TYPE", NULL, EFI_MEMORY_TYPE },
+	{ "EFI_MEM_STATUS_CODE_REC", NULL, EFI_MEM_STATUS_CODE_REC },
+	{ "EFI_GUID_EFI_ACPI1", NULL, EFI_GUID_EFI_ACPI1 },
 #endif
+#endif /* EFI_PARTITION */
 #endif /* !USE_HOSTCC */
 };
 
@@ -284,7 +298,8 @@
 	int i;
 
 	for (i = 0; i < ARRAY_SIZE(list_guid); i++) {
-		if (!strcmp(list_guid[i].string, guid_str)) {
+		if (list_guid[i].type &&
+		    !strcmp(list_guid[i].type, guid_str)) {
 			memcpy(guid_bin, &list_guid[i].guid, 16);
 			return 0;
 		}
@@ -298,7 +313,9 @@
 
 	for (i = 0; i < ARRAY_SIZE(list_guid); i++) {
 		if (!memcmp(list_guid[i].guid.b, guid_bin, 16)) {
-			return list_guid[i].string;
+			if (list_guid[i].description)
+				return list_guid[i].description;
+			return list_guid[i].type;
 		}
 	}
 	return NULL;
@@ -312,10 +329,9 @@
 	uint64_t tmp64;
 
 	if (!uuid_str_valid(uuid_str)) {
-#ifdef CONFIG_PARTITION_TYPE_GUID
-		if (!uuid_guid_get_bin(uuid_str, uuid_bin))
+		if (IS_ENABLED(CONFIG_PARTITION_TYPE_GUID) &&
+		    !uuid_guid_get_bin(uuid_str, uuid_bin))
 			return 0;
-#endif
 		return -EINVAL;
 	}
 
diff --git a/test/common/print.c b/test/common/print.c
index c48efc2..76ee851 100644
--- a/test/common/print.c
+++ b/test/common/print.c
@@ -45,8 +45,7 @@
 	sprintf(str, "%pUL", guid);
 	ut_asserteq_str("04030201-0605-0807-090A-0B0C0D0E0F10", str);
 	sprintf(str, "%pUs", guid_esp);
-	if (IS_ENABLED(CONFIG_PARTITION_TYPE_GUID) ||
-	    IS_ENABLED(CONFIG_CMD_EFIDEBUG) || IS_ENABLED(CONFIG_EFI))
+	if (IS_ENABLED(CONFIG_EFI_PARTITION))
 		ut_asserteq_str("EFI System Partition", str);
 	else
 		ut_asserteq_str("c12a7328-f81f-11d2-ba4b-00a0c93ec93b", str);
diff --git a/test/py/tests/test_gpt.py b/test/py/tests/test_gpt.py
index cfc8f13..e6d8792 100644
--- a/test/py/tests/test_gpt.py
+++ b/test/py/tests/test_gpt.py
@@ -330,6 +330,33 @@
     output = ubman.run_command('gpt guid host 0')
     assert '375a56f7-d6c9-4e81-b5f0-09d41ca89efe' in output
 
+@pytest.mark.boardspec('sandbox')
+@pytest.mark.buildconfigspec('cmd_gpt')
+@pytest.mark.buildconfigspec('cmd_part')
+@pytest.mark.buildconfigspec('partition_type_guid')
+@pytest.mark.requiredtool('sgdisk')
+def test_gpt_write_part_type(state_disk_image, ubman):
+    """Test the gpt command with part type uuid."""
+
+    output = ubman.run_command('gpt write host 0 "name=part1,type=data,size=1M;name=part2,size=512K,type=system;name=part3,size=65536,type=u-boot-env;name=part4,size=65536,type=375a56f7-d6c9-4e81-b5f0-09d41ca89efe;name=part5,size=-,type=linux"')
+    assert 'Writing GPT: success!' in output
+    output = ubman.run_command('part list host 0')
+    assert '1\t0x00000022\t0x00000821\t"part1"' in output
+    assert 'ebd0a0a2-b9e5-4433-87c0-68b6b72699c7' in output
+    assert '(data)' in output
+    assert '2\t0x00000822\t0x00000c21\t"part2"' in output
+    assert 'c12a7328-f81f-11d2-ba4b-00a0c93ec93b' in output
+    assert '(EFI System Partition)' in output
+    assert '3\t0x00000c22\t0x00000ca1\t"part3"' in output
+    assert '3de21764-95bd-54bd-a5c3-4abe786f38a8' in output
+    assert '(u-boot-env)' in output
+    assert '4\t0x00000ca2\t0x00000d21\t"part4"' in output
+    assert 'ebd0a0a2-b9e5-4433-87c0-68b6b72699c7' in output
+    assert '(375a56f7-d6c9-4e81-b5f0-09d41ca89efe)' in output
+    assert '5\t0x00000d22\t0x00001fde\t"part5"' in output
+    assert '0fc63daf-8483-4772-8e79-3d69d8477de4' in output
+    assert '(linux)' in output
+
 @pytest.mark.buildconfigspec('cmd_gpt')
 @pytest.mark.buildconfigspec('cmd_gpt_rename')
 @pytest.mark.buildconfigspec('cmd_part')
diff --git a/tools/Makefile b/tools/Makefile
index 97ce1db..02297e8 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -63,7 +63,8 @@
 hostprogs-y += mkenvimage
 mkenvimage-objs := mkenvimage.o os_support.o generated/lib/crc32.o
 
-hostprogs-y += dumpimage mkimage fit_info fit_check_sign
+hostprogs-y += dumpimage mkimage fit_info
+hostprogs-$(CONFIG_FIT_SIGNATURE) += fit_check_sign
 hostprogs-$(CONFIG_TOOLS_LIBCRYPTO) += fdt_add_pubkey
 hostprogs-$(CONFIG_TOOLS_LIBCRYPTO) += preload_check_sign
 
diff --git a/tools/image-host.c b/tools/image-host.c
index a9b8690..21dd7f2 100644
--- a/tools/image-host.c
+++ b/tools/image-host.c
@@ -19,7 +19,7 @@
 #include <openssl/evp.h>
 #endif
 
-#if CONFIG_IS_ENABLED(IMAGE_PRE_LOAD)
+#if CONFIG_IS_ENABLED(IMAGE_PRE_LOAD) && CONFIG_IS_ENABLED(LIBCRYPTO)
 #include <openssl/rsa.h>
 #include <openssl/err.h>
 #endif
@@ -1416,7 +1416,7 @@
 }
 #endif
 
-#if CONFIG_IS_ENABLED(IMAGE_PRE_LOAD)
+#if CONFIG_IS_ENABLED(IMAGE_PRE_LOAD) && CONFIG_IS_ENABLED(LIBCRYPTO)
 /**
  * rsa_verify_openssl() - Verify a signature against some data with openssl API
  *
diff --git a/tools/imx8image.c b/tools/imx8image.c
index a333ded..cad55fd 100644
--- a/tools/imx8image.c
+++ b/tools/imx8image.c
@@ -1146,7 +1146,7 @@
 	fprintf(stdout, "CONTAINER SW VERSION:\t0x%04x\n", sw_version);
 
 	build_container(soc, sector_size, emmc_fastboot,
-			img_sp, false, fuse_version, sw_version, outfd);
+			img_sp, dcd_skip, fuse_version, sw_version, outfd);
 
 	return 0;
 }