Merge branch 'next'
diff --git a/Makefile b/Makefile
index 07d7947..f5b2512 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,7 @@
 VERSION = 2024
 PATCHLEVEL = 07
 SUBLEVEL =
-EXTRAVERSION = -rc5
+EXTRAVERSION =
 NAME =
 
 # *DOCUMENTATION*
diff --git a/arch/arm/mach-mediatek/mt7622/init.c b/arch/arm/mach-mediatek/mt7622/init.c
index 6e970ac..368f291 100644
--- a/arch/arm/mach-mediatek/mt7622/init.c
+++ b/arch/arm/mach-mediatek/mt7622/init.c
@@ -27,7 +27,7 @@
 	if (ret)
 		return ret;
 
-	gd->ram_size = get_ram_size((void *)gd->ram_base, SZ_2G);
+	gd->ram_size = get_ram_size((void *)gd->ram_base, SZ_1G);
 
 	return 0;
 }
diff --git a/board/beagle/beagleplay/Kconfig b/board/beagle/beagleplay/Kconfig
index b0e67dc..592b53e 100644
--- a/board/beagle/beagleplay/Kconfig
+++ b/board/beagle/beagleplay/Kconfig
@@ -12,6 +12,7 @@
 	bool "BeagleBoard.org AM625 BeaglePlay running on A53"
 	select ARM64
 	select BINMAN
+	select OF_SYSTEM_SETUP
 
 config TARGET_AM625_R5_BEAGLEPLAY
 	bool "BeagleBoard.org AM625 BeaglePlay running on R5"
diff --git a/board/google/veyron/veyron.c b/board/google/veyron/veyron.c
index 53c3435..bd8ce63 100644
--- a/board/google/veyron/veyron.c
+++ b/board/google/veyron/veyron.c
@@ -28,44 +28,38 @@
 	int ret;
 
 	ret = regulator_get_by_platname("vdd_arm", &dev);
-	if (ret) {
-		debug("Cannot set regulator name\n");
-		return ret;
-	}
+	if (ret)
+		return log_msg_ret("vdd", ret);
 
 	/* Slowly raise to max CPU voltage to prevent overshoot */
 	ret = regulator_set_value(dev, 1200000);
 	if (ret)
-		return ret;
+		return log_msg_ret("s12", ret);
 	udelay(175); /* Must wait for voltage to stabilize, 2mV/us */
 	ret = regulator_set_value(dev, 1400000);
 	if (ret)
-		return ret;
+		return log_msg_ret("s14", ret);
 	udelay(100); /* Must wait for voltage to stabilize, 2mV/us */
 
 	ret = rockchip_get_clk(&clk.dev);
 	if (ret)
-		return ret;
+		return log_msg_ret("clk", ret);
 	clk.id = PLL_APLL;
 	ret = clk_set_rate(&clk, 1800000000);
 	if (IS_ERR_VALUE(ret))
-		return ret;
+		return log_msg_ret("s18", ret);
 
 	ret = regulator_get_by_platname("vcc33_sd", &dev);
-	if (ret) {
-		debug("Cannot get regulator name\n");
-		return ret;
-	}
+	if (ret)
+		return log_msg_ret("vcc", ret);
 
 	ret = regulator_set_value(dev, 3300000);
 	if (ret)
-		return ret;
+		return log_msg_ret("s33", ret);
 
 	ret = regulators_enable_boot_on(false);
-	if (ret) {
-		debug("%s: Cannot enable boot on regulators\n", __func__);
-		return ret;
-	}
+	if (ret)
+		return log_msg_ret("boo", ret);
 
 	return 0;
 }
@@ -80,7 +74,7 @@
 	if (!fdt_node_check_compatible(gd->fdt_blob, 0, "google,veyron")) {
 		ret = veyron_init();
 		if (ret)
-			return ret;
+			return log_msg_ret("vey", ret);
 	}
 #endif
 	/*
diff --git a/board/microchip/mpfs_icicle/MAINTAINERS b/board/microchip/mpfs_icicle/MAINTAINERS
index 22f3b97..d092b5a 100644
--- a/board/microchip/mpfs_icicle/MAINTAINERS
+++ b/board/microchip/mpfs_icicle/MAINTAINERS
@@ -1,5 +1,5 @@
 Microchip MPFS icicle
-M:	Padmarao Begari <padmarao.begari@microchip.com>
+M:	Conor Dooley <conor.dooley@microchip.com>
 M:	Cyril Jean <cyril.jean@microchip.com>
 S:	Maintained
 F:	board/microchip/mpfs_icicle/
diff --git a/board/ti/am335x/MAINTAINERS b/board/ti/am335x/MAINTAINERS
index 219c871..ed8800a 100644
--- a/board/ti/am335x/MAINTAINERS
+++ b/board/ti/am335x/MAINTAINERS
@@ -3,6 +3,5 @@
 S:	Maintained
 F:	board/ti/am335x/
 F:	include/configs/am335x_evm.h
-F:	configs/am335x_boneblack_vboot_defconfig
 F:	configs/am335x_evm_defconfig
 F:	configs/am335x_evm_spiboot_defconfig
diff --git a/common/spl/spl_atf.c b/common/spl/spl_atf.c
index 0b1c981..0397b86 100644
--- a/common/spl/spl_atf.c
+++ b/common/spl/spl_atf.c
@@ -203,7 +203,8 @@
 						       fdt_addr);
 
 	raw_write_daif(SPSR_EXCEPTION_MASK);
-	dcache_disable();
+	if (!CONFIG_IS_ENABLED(SYS_DCACHE_OFF))
+		dcache_disable();
 
 	atf_entry(bl31_params, (void *)fdt_addr);
 }
diff --git a/configs/am335x_boneblack_vboot_defconfig b/configs/am335x_boneblack_vboot_defconfig
deleted file mode 100644
index d473a1a..0000000
--- a/configs/am335x_boneblack_vboot_defconfig
+++ /dev/null
@@ -1,94 +0,0 @@
-CONFIG_ARM=y
-CONFIG_ARCH_CPU_INIT=y
-# CONFIG_SPL_USE_ARCH_MEMCPY is not set
-# CONFIG_SPL_USE_ARCH_MEMSET is not set
-CONFIG_ARCH_OMAP2PLUS=y
-CONFIG_TI_COMMON_CMD_OPTIONS=y
-CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
-CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x4030ff00
-CONFIG_SF_DEFAULT_SPEED=24000000
-CONFIG_DEFAULT_DEVICE_TREE="am335x-boneblack"
-CONFIG_AM33XX=y
-CONFIG_CLOCK_SYNTHESIZER=y
-CONFIG_SPL=y
-CONFIG_ENV_OFFSET_REDUND=0x280000
-CONFIG_TIMESTAMP=y
-CONFIG_FIT_SIGNATURE=y
-CONFIG_FIT_VERBOSE=y
-CONFIG_SYS_BOOTM_LEN=0x1000000
-CONFIG_DISTRO_DEFAULTS=y
-CONFIG_AUTOBOOT_KEYED=y
-CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
-CONFIG_AUTOBOOT_DELAY_STR="d"
-CONFIG_AUTOBOOT_STOP_STR=" "
-CONFIG_BOOTCOMMAND="run findfdt; run init_console; run finduuid; run distro_bootcmd"
-CONFIG_SYS_CONSOLE_INFO_QUIET=y
-CONFIG_ARCH_MISC_INIT=y
-CONFIG_SPL_SYS_MALLOC=y
-CONFIG_SPL_SYS_MALLOC_SIZE=0x800000
-CONFIG_SPL_MUSB_NEW=y
-# CONFIG_SPL_NAND_SUPPORT is not set
-CONFIG_SPL_NET=y
-CONFIG_SPL_NET_VCI_STRING="AM33xx U-Boot SPL"
-CONFIG_SPL_OS_BOOT=y
-CONFIG_SPL_FALCON_BOOT_MMCSD=y
-CONFIG_SYS_MMCSD_RAW_MODE_KERNEL_SECTOR=0x1700
-CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTOR=0x1500
-CONFIG_SYS_MMCSD_RAW_MODE_ARGS_SECTORS=0x200
-CONFIG_CMD_SPL=y
-CONFIG_SYS_I2C_EEPROM_ADDR_LEN=2
-# CONFIG_CMD_SETEXPR is not set
-CONFIG_BOOTP_DNS2=y
-CONFIG_OF_CONTROL=y
-CONFIG_SPL_OF_CONTROL=y
-CONFIG_ENV_OVERWRITE=y
-CONFIG_ENV_IS_IN_MMC=y
-CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
-CONFIG_SYS_RELOC_GD_ENV_ADDR=y
-CONFIG_SYS_MMC_ENV_DEV=1
-CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y
-CONFIG_VERSION_VARIABLE=y
-CONFIG_NET_RETRY_COUNT=10
-CONFIG_BOOTP_SEND_HOSTNAME=y
-# CONFIG_SPL_BLK is not set
-CONFIG_BOOTCOUNT_LIMIT=y
-CONFIG_SYS_BOOTCOUNT_BE=y
-CONFIG_DFU_MMC=y
-CONFIG_DFU_RAM=y
-CONFIG_USB_FUNCTION_FASTBOOT=y
-CONFIG_DM_I2C=y
-CONFIG_MISC=y
-CONFIG_SYS_I2C_EEPROM_ADDR=0x50
-# CONFIG_SPL_DM_MMC is not set
-CONFIG_MMC_OMAP_HS=y
-CONFIG_MTD=y
-CONFIG_DM_SPI_FLASH=y
-CONFIG_SPI_FLASH_WINBOND=y
-CONFIG_PHY_ATHEROS=y
-CONFIG_PHY_SMSC=y
-CONFIG_PHY_GIGE=y
-CONFIG_MII=y
-CONFIG_DRIVER_TI_CPSW=y
-CONFIG_DM_PMIC=y
-# CONFIG_SPL_DM_PMIC is not set
-CONFIG_PMIC_TPS65217=y
-CONFIG_SPL_POWER_TPS65910=y
-CONFIG_SPI=y
-CONFIG_DM_SPI=y
-CONFIG_OMAP3_SPI=y
-CONFIG_TIMER=y
-CONFIG_OMAP_TIMER=y
-CONFIG_USB=y
-CONFIG_DM_USB_GADGET=y
-CONFIG_SPL_DM_USB_GADGET=y
-CONFIG_USB_MUSB_HOST=y
-CONFIG_USB_MUSB_GADGET=y
-CONFIG_USB_MUSB_TI=y
-CONFIG_USB_GADGET=y
-CONFIG_SPL_USB_GADGET=y
-CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
-CONFIG_USB_GADGET_VENDOR_NUM=0x0451
-CONFIG_USB_GADGET_PRODUCT_NUM=0xd022
-CONFIG_USB_ETHER=y
-CONFIG_SPL_USB_ETHER=y
-CONFIG_LZO=y
diff --git a/configs/am335x_evm_defconfig b/configs/am335x_evm_defconfig
index d243cb1..cabc181 100644
--- a/configs/am335x_evm_defconfig
+++ b/configs/am335x_evm_defconfig
@@ -13,6 +13,8 @@
 CONFIG_AM335X_USB1=y
 CONFIG_SPL=y
 CONFIG_TIMESTAMP=y
+CONFIG_FIT_SIGNATURE=y
+CONFIG_FIT_VERBOSE=y
 CONFIG_SPL_LOAD_FIT=y
 CONFIG_SYS_BOOTM_LEN=0x1000000
 CONFIG_DISTRO_DEFAULTS=y
@@ -119,5 +121,4 @@
 CONFIG_WDT=y
 # CONFIG_SPL_WDT is not set
 CONFIG_DYNAMIC_CRC_TABLE=y
-CONFIG_RSA=y
 CONFIG_LZO=y
diff --git a/configs/am65x_evm_a53_defconfig b/configs/am65x_evm_a53_defconfig
index ee79ade..925a88e 100644
--- a/configs/am65x_evm_a53_defconfig
+++ b/configs/am65x_evm_a53_defconfig
@@ -16,7 +16,6 @@
 CONFIG_SPL_DM_SPI=y
 CONFIG_DEFAULT_DEVICE_TREE="k3-am654-base-board"
 CONFIG_SPL_TEXT_BASE=0x80080000
-CONFIG_OF_LIBFDT_OVERLAY=y
 CONFIG_DM_RESET=y
 CONFIG_SPL_MMC=y
 CONFIG_SPL_SERIAL=y
@@ -36,6 +35,7 @@
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
 CONFIG_SPL_LOAD_FIT=y
 CONFIG_SPL_LOAD_FIT_ADDRESS=0x81000000
+CONFIG_SPL_LOAD_FIT_APPLY_OVERLAY=y
 CONFIG_DISTRO_DEFAULTS=y
 CONFIG_OF_SYSTEM_SETUP=y
 CONFIG_BOOTCOMMAND="run findfdt; run distro_bootcmd; run init_${boot}; run boot_rprocs; if test ${boot_fit} -eq 1; then run get_fit_${boot}; run get_overlaystring; run run_fit; else; run get_kern_${boot}; run get_fdt_${boot}; run get_overlay_${boot}; run run_kern; fi;"
@@ -68,7 +68,6 @@
 CONFIG_CMD_MMC=y
 CONFIG_CMD_PCI=y
 CONFIG_CMD_REMOTEPROC=y
-CONFIG_SPL_LOAD_FIT_APPLY_OVERLAY=y
 CONFIG_CMD_USB=y
 CONFIG_CMD_TIME=y
 CONFIG_MTDIDS_DEFAULT="nor0=47040000.spi.0"
diff --git a/configs/chromebook_bob_defconfig b/configs/chromebook_bob_defconfig
index acfe393..b2ecfa6 100644
--- a/configs/chromebook_bob_defconfig
+++ b/configs/chromebook_bob_defconfig
@@ -1,5 +1,6 @@
 CONFIG_ARM=y
 CONFIG_SKIP_LOWLEVEL_INIT=y
+CONFIG_SPL_SYS_DCACHE_OFF=y
 CONFIG_COUNTER_FREQUENCY=24000000
 CONFIG_ARCH_ROCKCHIP=y
 CONFIG_TEXT_BASE=0x00200000
diff --git a/configs/chromebook_kevin_defconfig b/configs/chromebook_kevin_defconfig
index 95fdb41..0fba591 100644
--- a/configs/chromebook_kevin_defconfig
+++ b/configs/chromebook_kevin_defconfig
@@ -1,5 +1,6 @@
 CONFIG_ARM=y
 CONFIG_SKIP_LOWLEVEL_INIT=y
+CONFIG_SPL_SYS_DCACHE_OFF=y
 CONFIG_COUNTER_FREQUENCY=24000000
 CONFIG_ARCH_ROCKCHIP=y
 CONFIG_TEXT_BASE=0x00200000
diff --git a/configs/chromebook_link_defconfig b/configs/chromebook_link_defconfig
index a9f91dd..70c57ae 100644
--- a/configs/chromebook_link_defconfig
+++ b/configs/chromebook_link_defconfig
@@ -15,6 +15,8 @@
 CONFIG_HAVE_MRC=y
 CONFIG_SMP=y
 CONFIG_HAVE_VGA_BIOS=y
+CONFIG_HAS_BOARD_SIZE_LIMIT=y
+CONFIG_BOARD_SIZE_LIMIT=630000
 CONFIG_FIT=y
 CONFIG_BOOTSTAGE=y
 CONFIG_BOOTSTAGE_REPORT=y
@@ -78,5 +80,6 @@
 CONFIG_VIDEO_IVYBRIDGE_IGD=y
 CONFIG_CMD_DHRYSTONE=y
 CONFIG_TPM=y
+# CONFIG_SHA256 is not set
 # CONFIG_GZIP is not set
 # CONFIG_EFI_LOADER is not set
diff --git a/configs/hmibsc_defconfig b/configs/hmibsc_defconfig
index b924885..86ca4f8 100644
--- a/configs/hmibsc_defconfig
+++ b/configs/hmibsc_defconfig
@@ -10,44 +10,42 @@
 CONFIG_ENV_SIZE=0x2000
 CONFIG_ENV_OFFSET=0x0
 CONFIG_DEFAULT_DEVICE_TREE="apq8016-schneider-hmibsc"
-# CONFIG_OF_UPSTREAM is not set
 CONFIG_OF_LIBFDT_OVERLAY=y
 CONFIG_IDENT_STRING="\nSchneider Electric-HMIBSC"
 CONFIG_SYS_LOAD_ADDR=0x80080000
 CONFIG_REMAKE_ELF=y
 # CONFIG_ANDROID_BOOT_IMAGE is not set
 CONFIG_FIT=y
-CONFIG_HUSH_PARSER=y
 CONFIG_SYS_CBSIZE=2048
 # CONFIG_DISPLAY_CPUINFO is not set
 # CONFIG_DISPLAY_BOARDINFO is not set
+CONFIG_HUSH_PARSER=y
 CONFIG_SYS_PROMPT="hmibsc => "
-CONFIG_SYS_MAXARGS=64
-CONFIG_CMD_DHCP=y
-CONFIG_CMD_PING=y
-CONFIG_CMD_FS_GENERIC=y
 # CONFIG_CMD_IMI is not set
+CONFIG_CMD_ENV_FLAGS=y
+CONFIG_CMD_NVEDIT_INFO=y
 CONFIG_CMD_MD5SUM=y
 CONFIG_CMD_MEMINFO=y
-CONFIG_CMD_EXT2=y
-CONFIG_CMD_EXT4=y
-CONFIG_CMD_FAT=y
 CONFIG_CMD_GPIO=y
 CONFIG_CMD_GPT=y
 CONFIG_CMD_MMC=y
 CONFIG_CMD_PART=y
 CONFIG_CMD_USB=y
+CONFIG_CMD_DHCP=y
 CONFIG_BOOTP_BOOTFILESIZE=y
+CONFIG_CMD_PING=y
 CONFIG_CMD_CACHE=y
 CONFIG_CMD_TIMER=y
-CONFIG_CMD_ENV_FLAGS=y
-CONFIG_CMD_ENV_EXISTS=y
-CONFIG_CMD_NVEDIT_INFO=y
-CONFIG_ENV_WRITEABLE_LIST=y
-CONFIG_ENV_ACCESS_IGNORE_FORCE=y
+CONFIG_CMD_EXT2=y
+CONFIG_CMD_EXT4=y
+CONFIG_CMD_FAT=y
+CONFIG_CMD_FS_GENERIC=y
+# CONFIG_OF_UPSTREAM is not set
 CONFIG_ENV_IS_IN_MMC=y
 CONFIG_SYS_RELOC_GD_ENV_ADDR=y
 CONFIG_SYS_MMC_ENV_PART=2
+CONFIG_ENV_WRITEABLE_LIST=y
+CONFIG_ENV_ACCESS_IGNORE_FORCE=y
 CONFIG_BUTTON_QCOM_PMIC=y
 CONFIG_CLK=y
 CONFIG_CLK_QCOM_APQ8016=y
@@ -79,10 +77,9 @@
 CONFIG_USB_HOST_ETHER=y
 CONFIG_USB_ETHER_ASIX=y
 CONFIG_USB_ETHER_ASIX88179=y
+CONFIG_USB_ETHER_LAN75XX=y
 CONFIG_USB_ETHER_MCS7830=y
 CONFIG_USB_ETHER_SMSC95XX=y
-CONFIG_PHYLIB=y
-CONFIG_USB_ETHER_LAN75XX=y
 CONFIG_USB_GADGET=y
 CONFIG_USB_GADGET_VENDOR_NUM=0x18d1
 CONFIG_USB_GADGET_PRODUCT_NUM=0xd00d
diff --git a/configs/imx8mp_dhcom_pdk3_defconfig b/configs/imx8mp_dhcom_pdk3_defconfig
index 7b3dae5..5520a4d 100644
--- a/configs/imx8mp_dhcom_pdk3_defconfig
+++ b/configs/imx8mp_dhcom_pdk3_defconfig
@@ -160,8 +160,6 @@
 CONFIG_PROT_TCP_SACK=y
 CONFIG_IPV6=y
 CONFIG_SPL_DM=y
-CONFIG_REGMAP=y
-CONFIG_SYSCON=y
 CONFIG_BOOTCOUNT_LIMIT=y
 CONFIG_SYS_BOOTCOUNT_MAGIC=0xB0C40000
 CONFIG_SPL_CLK_COMPOSITE_CCF=y
@@ -232,7 +230,6 @@
 CONFIG_DM_PMIC=y
 CONFIG_DM_PMIC_PCA9450=y
 CONFIG_SPL_DM_PMIC_PCA9450=y
-CONFIG_DM_REGULATOR=y
 CONFIG_SPL_DM_REGULATOR=y
 CONFIG_DM_REGULATOR_PCA9450=y
 CONFIG_SPL_DM_REGULATOR_PCA9450=y
diff --git a/configs/milkv_duo_defconfig b/configs/milkv_duo_defconfig
index 0cb2922..d350ec1 100644
--- a/configs/milkv_duo_defconfig
+++ b/configs/milkv_duo_defconfig
@@ -32,11 +32,11 @@
 CONFIG_MMC_SDHCI=y
 CONFIG_MMC_SDHCI_ADMA=y
 CONFIG_MMC_SDHCI_CV1800B=y
+CONFIG_SPI_FLASH_MACRONIX=y
 CONFIG_ETH_DESIGNWARE=y
 CONFIG_SYS_NS16550=y
 CONFIG_SYS_NS16550_MEM32=y
-CONFIG_SYSRESET=y
-CONFIG_SYSRESET_CV1800B=y
-CONFIG_SPI_FLASH_MACRONIX=y
 CONFIG_SPI=y
 CONFIG_CV1800B_SPIF=y
+CONFIG_SYSRESET=y
+CONFIG_SYSRESET_CV1800B=y
diff --git a/configs/nyan-big_defconfig b/configs/nyan-big_defconfig
index 1483d17..6d43a25 100644
--- a/configs/nyan-big_defconfig
+++ b/configs/nyan-big_defconfig
@@ -11,13 +11,10 @@
 CONFIG_SPL_TEXT_BASE=0x80108000
 CONFIG_SPL_STACK=0x800ffffc
 CONFIG_BOOTSTAGE_STASH_ADDR=0x83000000
-CONFIG_DEBUG_UART_BASE=0x70006000
-CONFIG_DEBUG_UART_CLOCK=408000000
 CONFIG_TEGRA124=y
 CONFIG_TARGET_NYAN_BIG=y
 CONFIG_TEGRA_GPU=y
 CONFIG_SYS_LOAD_ADDR=0x82408000
-CONFIG_DEBUG_UART=y
 CONFIG_FIT=y
 CONFIG_FIT_BEST_MATCH=y
 CONFIG_BOOTSTAGE=y
@@ -76,7 +73,6 @@
 CONFIG_REGULATOR_AS3722=y
 CONFIG_DM_REGULATOR_FIXED=y
 CONFIG_PWM_TEGRA=y
-CONFIG_DEBUG_UART_SHIFT=2
 CONFIG_SYS_NS16550=y
 CONFIG_SOUND=y
 CONFIG_I2S=y
diff --git a/configs/phycore-imx8mp_defconfig b/configs/phycore-imx8mp_defconfig
index 7b16e8e..57e320a 100644
--- a/configs/phycore-imx8mp_defconfig
+++ b/configs/phycore-imx8mp_defconfig
@@ -5,6 +5,7 @@
 CONFIG_SPL_GPIO=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_PHYTEC_SOM_DETECTION=y
 CONFIG_ENV_SIZE=0x10000
 CONFIG_ENV_OFFSET=0x3C0000
 CONFIG_SYS_I2C_MXC_I2C1=y
@@ -12,7 +13,6 @@
 CONFIG_DEFAULT_DEVICE_TREE="freescale/imx8mp-phyboard-pollux-rdk"
 CONFIG_SPL_TEXT_BASE=0x920000
 CONFIG_TARGET_PHYCORE_IMX8MP=y
-CONFIG_PHYTEC_SOM_DETECTION=y
 CONFIG_SYS_MONITOR_LEN=524288
 CONFIG_SPL_MMC=y
 CONFIG_SPL_SERIAL=y
diff --git a/configs/qcom_defconfig b/configs/qcom_defconfig
index 80ad3b3..37966bf 100644
--- a/configs/qcom_defconfig
+++ b/configs/qcom_defconfig
@@ -1,16 +1,17 @@
 CONFIG_ARM=y
 CONFIG_SKIP_LOWLEVEL_INIT=y
 CONFIG_POSITION_INDEPENDENT=y
+CONFIG_SYS_INIT_SP_BSS_OFFSET=1572864
 CONFIG_ARCH_SNAPDRAGON=y
 CONFIG_DEFAULT_DEVICE_TREE="qcom/sdm845-db845c"
 CONFIG_SYS_LOAD_ADDR=0xA0000000
-CONFIG_SYS_INIT_SP_BSS_OFFSET=1572864
 CONFIG_BUTTON_CMD=y
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
 CONFIG_BOOTSTD_FULL=y
 # CONFIG_BOOTMETH_VBE is not set
 CONFIG_BOOTDELAY=1
+CONFIG_OF_BOARD_SETUP=y
 CONFIG_USE_PREBOOT=y
 CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR=y
 CONFIG_SYS_CBSIZE=512
@@ -34,7 +35,6 @@
 CONFIG_CMD_BMP=y
 CONFIG_CMD_LOG=y
 CONFIG_OF_LIVE=y
-CONFIG_OF_BOARD_SETUP=y
 CONFIG_BUTTON_QCOM_PMIC=y
 CONFIG_CLK=y
 CONFIG_CLK_QCOM_QCM2290=y
@@ -106,5 +106,4 @@
 CONFIG_NO_FB_CLEAR=y
 CONFIG_VIDEO_SIMPLE=y
 CONFIG_HEXDUMP=y
-CONFIG_GENERATE_SMBIOS_TABLE=y
 CONFIG_LMB_MAX_REGIONS=64
diff --git a/doc/develop/release_cycle.rst b/doc/develop/release_cycle.rst
index b392346..541ab0a 100644
--- a/doc/develop/release_cycle.rst
+++ b/doc/develop/release_cycle.rst
@@ -51,13 +51,14 @@
 Current Status
 --------------
 
-* U-Boot v2024.04 was released on Tue 02 April 2024.
+* U-Boot v2024.07 was released on Mon 01 July 2024.
 
-* The Merge Window for the next release (v2024.07) is **closed**.
+* The Merge Window for the next release (v2024.10) is **open** until the -rc1
+  release on Mon 22 July 2024.
 
-* The next branch is now **open**.
+* The next branch is now **closed**.
 
-* Release "v2024.07" is scheduled for 01 July 2024.
+* Release "v2024.10" is scheduled for 07 October 2024.
 
 Future Releases
 ---------------
@@ -65,29 +66,31 @@
 .. The following commented out dates are for when release candidates are
    planned to be tagged.
 
-For the next scheduled release, release candidates were made on::
+.. For the next scheduled release, release candidates were made on::
 
-* U-Boot v2024.07-rc1 was released on Mon 22 April 2024.
+.. * U-Boot v2024.10-rc1 was released on Mon 22 July 2024.
 
-* U-Boot v2024.07-rc2 was released on Mon 06 May 2024.
+.. * U-Boot v2024.10-rc2 was released on Mon 05 August 2024.
 
-* U-Boot v2024.07-rc3 was released on Mon 20 May 2024.
+.. * U-Boot v2024.10-rc3 was released on Mon 19 August 2024.
 
-* U-Boot v2024.07-rc4 was released on Mon 03 June 2024.
+.. * U-Boot v2024.10-rc4 was released on Mon 02 September 2024.
 
-* U-Boot v2024.07-rc5 was released on Mon 24 June 2024.
+.. * U-Boot v2024.10-rc5 was released on Mon 16 September 2024.
+
+.. * U-Boot v2024.10-rc6 was released on Mon 30 September 2024.
 
 Please note that the following dates are planned only and may be deviated from
 as needed.
 
-* "v2024.07": end of MW = Mon, Apr 22, 2024; release = Mon, Jul 01, 2024
-
 * "v2024.10": end of MW = Mon, Jul 22, 2024; release = Mon, Oct 07, 2024
 
 * "v2025.01": end of MW = Mon, Oct 21, 2024; release = Mon, Jan 06, 2025
 
 * "v2025.04": end of MW = Mon, Jan 27, 2025; release = Mon, Apr 07, 2025
 
+* "v2025.07": end of MW = Mon, Apr 21, 2025; release = Mon, Jul 07, 2025
+
 Previous Releases
 -----------------
 
@@ -95,6 +98,8 @@
 <https://source.denx.de/u-boot/gitdm>`_, which was originally created by
 Jonathan Corbet.
 
+* :doc:`statistics/u-boot-stats-v2024.07` which was released on 01 July 2024.
+
 * :doc:`statistics/u-boot-stats-v2024.04` which was released on 02 April 2024.
 
 * :doc:`statistics/u-boot-stats-v2024.01` which was released on 08 January 2024.
diff --git a/doc/develop/statistics/u-boot-stats-v2024.07.rst b/doc/develop/statistics/u-boot-stats-v2024.07.rst
new file mode 100644
index 0000000..b437e92
--- /dev/null
+++ b/doc/develop/statistics/u-boot-stats-v2024.07.rst
@@ -0,0 +1,890 @@
+:orphan:
+
+Release Statistics for U-Boot v2024.07
+======================================
+
+* Processed 1624 changesets from 191 developers
+
+* 28 employers found
+
+* A total of 2308875 lines added, 242831 removed (delta 2066044)
+
+.. table:: Developers with the most changesets
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   Tom Rini                              324 (20.0%)
+   Jonas Karlman                         155 (9.5%)
+   Caleb Connolly                        98 (6.0%)
+   Heinrich Schuchardt                   84 (5.2%)
+   Quentin Schulz                        59 (3.6%)
+   Marek Vasut                           52 (3.2%)
+   Simon Glass                           44 (2.7%)
+   Patrice Chotard                       32 (2.0%)
+   Sumit Garg                            31 (1.9%)
+   Svyatoslav Ryhel                      31 (1.9%)
+   Michal Simek                          26 (1.6%)
+   Ilias Apalodimas                      23 (1.4%)
+   Neil Armstrong                        23 (1.4%)
+   Jonathan Humphreys                    22 (1.4%)
+   Andrew Davis                          18 (1.1%)
+   Marek Behún                           18 (1.1%)
+   Jagan Teki                            17 (1.0%)
+   MD Danish Anwar                       15 (0.9%)
+   Kongyang Liu                          15 (0.9%)
+   Bryan Brattlof                        14 (0.9%)
+   Janne Grunau                          14 (0.9%)
+   Christophe Leroy                      13 (0.8%)
+   Tim Harvey                            13 (0.8%)
+   Apurva Nandan                         12 (0.7%)
+   Wadim Egorov                          11 (0.7%)
+   Andre Przywara                        11 (0.7%)
+   Peng Fan                              11 (0.7%)
+   Adam Ford                             10 (0.6%)
+   Sam Protsenko                         10 (0.6%)
+   Roger Quadros                         10 (0.6%)
+   Igor Opaniuk                          9 (0.6%)
+   Robert Marko                          9 (0.6%)
+   Jonas Schwöbel                        9 (0.6%)
+   Yang Xiwen                            9 (0.6%)
+   Eugene Uriev                          9 (0.6%)
+   Chris Morgan                          8 (0.5%)
+   Judith Mendez                         8 (0.5%)
+   Raymond Mao                           8 (0.5%)
+   Alexander Dahl                        7 (0.4%)
+   Fabio Estevam                         7 (0.4%)
+   Jim Liu                               7 (0.4%)
+   Venkatesh Yadav Abbarapu              7 (0.4%)
+   Mattijs Korpershoek                   6 (0.4%)
+   Daniel Schultz                        6 (0.4%)
+   Weizhao Ouyang                        6 (0.4%)
+   Ye Li                                 6 (0.4%)
+   Conor Dooley                          5 (0.3%)
+   Nishanth Menon                        5 (0.3%)
+   Leo Yu-Chi Liang                      5 (0.3%)
+   Bhargav Raviprakash                   5 (0.3%)
+   Masahisa Kojima                       5 (0.3%)
+   mwleeds@mailtundra.com                5 (0.3%)
+   Michał Barnaś                         5 (0.3%)
+   Leonard Anderweit                     5 (0.3%)
+   Chen-Yu Tsai                          5 (0.3%)
+   Javier Martinez Canillas              4 (0.2%)
+   Francesco Dolcini                     4 (0.2%)
+   Felipe Balbi                          4 (0.2%)
+   Aniket Limaye                         4 (0.2%)
+   Christopher Obbard                    4 (0.2%)
+   Mathieu Othacehe                      4 (0.2%)
+   Joao Paulo Goncalves                  4 (0.2%)
+   Sughosh Ganu                          4 (0.2%)
+   Volodymyr Babchuk                     4 (0.2%)
+   Lukasz Majewski                       4 (0.2%)
+   Jacky Chou                            4 (0.2%)
+   Dan Carpenter                         4 (0.2%)
+   Mihai Sain                            4 (0.2%)
+   Arseniy Krasnov                       3 (0.2%)
+   Fiona Klute                           3 (0.2%)
+   Hanyuan Zhao                          3 (0.2%)
+   Greg Malysa                           3 (0.2%)
+   Nathan Barrett-Morrison               3 (0.2%)
+   Peter Robinson                        3 (0.2%)
+   Lukas Funke                           3 (0.2%)
+   Yannic Moog                           3 (0.2%)
+   Udit Kumar                            3 (0.2%)
+   Michael Walle                         3 (0.2%)
+   Devarsh Thakkar                       3 (0.2%)
+   Christophe Kerello                    3 (0.2%)
+   Viacheslav Bocharov                   3 (0.2%)
+   Emanuele Ghidoli                      3 (0.2%)
+   Hari Nagalla                          3 (0.2%)
+   Love Kumar                            3 (0.2%)
+   Thomas Weißschuh                      3 (0.2%)
+   Weijie Gao                            3 (0.2%)
+   Dragan Simic                          2 (0.1%)
+   Michael Trimarchi                     2 (0.1%)
+   Patrick Delaunay                      2 (0.1%)
+   Tony Dinh                             2 (0.1%)
+   Sam Povilus                           2 (0.1%)
+   H Bell                                2 (0.1%)
+   Thinh Nguyen                          2 (0.1%)
+   Benjamin Hahn                         2 (0.1%)
+   Neha Malcom Francis                   2 (0.1%)
+   Ian Roberts                           2 (0.1%)
+   Sean Anderson                         2 (0.1%)
+   Kamlesh Gurudasani                    2 (0.1%)
+   Stefan Eichenberger                   2 (0.1%)
+   Parth Pancholi                        2 (0.1%)
+   Maksim Kiselev                        2 (0.1%)
+   Christophe Roullier                   2 (0.1%)
+   Hugo Dubois                           2 (0.1%)
+   CASAUBON Jean Michel                  2 (0.1%)
+   Ahelenia Ziemiańska                   2 (0.1%)
+   Yasuharu Shibata                      2 (0.1%)
+   Wan Yee Lau                           2 (0.1%)
+   Vincent Stehlé                        2 (0.1%)
+   Marcel Ziswiler                       2 (0.1%)
+   Maxim Moskalets                       2 (0.1%)
+   Sébastien Szymanski                   2 (0.1%)
+   Tejas Bhumkar                         2 (0.1%)
+   Bhupesh Sharma                        2 (0.1%)
+   Colin McAllister                      2 (0.1%)
+   Andy Yan                              2 (0.1%)
+   Dasnavis Sabiya                       2 (0.1%)
+   Stefan Bosch                          2 (0.1%)
+   Frank Wunderlich                      1 (0.1%)
+   Jiaxun Yang                           1 (0.1%)
+   Ravi Minnikanti                       1 (0.1%)
+   John Watts                            1 (0.1%)
+   Heiko Schocher                        1 (0.1%)
+   Thomas Perl                           1 (0.1%)
+   Kristian Amlie                        1 (0.1%)
+   Heiko Stuebner                        1 (0.1%)
+   Anand Moon                            1 (0.1%)
+   Alexander Sverdlin                    1 (0.1%)
+   Aswath Govindraju                     1 (0.1%)
+   Sam Day                               1 (0.1%)
+   Boon Khai Ng                          1 (0.1%)
+   William Zhang                         1 (0.1%)
+   Jaehoon Chung                         1 (0.1%)
+   Sam Edwards                           1 (0.1%)
+   Linus Walleij                         1 (0.1%)
+   Kishan Dudhatra                       1 (0.1%)
+   Yu Chien Peter Lin                    1 (0.1%)
+   Nitin Yadav                           1 (0.1%)
+   Andrea Calabrese                      1 (0.1%)
+   Lukasz Czechowski                     1 (0.1%)
+   Finley Xiao                           1 (0.1%)
+   Jason Zhu                             1 (0.1%)
+   Maximilian Brune                      1 (0.1%)
+   cmachida                              1 (0.1%)
+   Hector Martin                         1 (0.1%)
+   Anton Bambura                         1 (0.1%)
+   Khem Raj                              1 (0.1%)
+   Jianan Huang                          1 (0.1%)
+   Charles Hardin                        1 (0.1%)
+   Gireesh Hiremath                      1 (0.1%)
+   Alexey Romanov                        1 (0.1%)
+   Eugeniu Rosca                         1 (0.1%)
+   Bruce Suen                            1 (0.1%)
+   Kunihiko Hayashi                      1 (0.1%)
+   Hugo Cornelis                         1 (0.1%)
+   Vitor Soares                          1 (0.1%)
+   Martyn Welch                          1 (0.1%)
+   Manorit Chawdhry                      1 (0.1%)
+   Jixiong Hu                            1 (0.1%)
+   Pierre-Clément Tosi                   1 (0.1%)
+   Hiago De Franco                       1 (0.1%)
+   Petr Zejdl                            1 (0.1%)
+   Łukasz Stelmach                       1 (0.1%)
+   Ben Dooks                             1 (0.1%)
+   Javier Viguera                        1 (0.1%)
+   Josua Mayer                           1 (0.1%)
+   James Hilliard                        1 (0.1%)
+   Marjolaine Amate                      1 (0.1%)
+   Vishal Sagar                          1 (0.1%)
+   Manikanta Guntupalli                  1 (0.1%)
+   Shubhangi Shrikrushna Mahalle         1 (0.1%)
+   Piotr Wojtaszczyk                     1 (0.1%)
+   Kelly Hung                            1 (0.1%)
+   Leon M. Busch-George                  1 (0.1%)
+   Lukasz Wiecaszek                      1 (0.1%)
+   Jit Loon Lim                          1 (0.1%)
+   William Wu                            1 (0.1%)
+   Ben Wolsieffer                        1 (0.1%)
+   Elon Zhang                            1 (0.1%)
+   Vignesh Raghavendra                   1 (0.1%)
+   Maks Mishin                           1 (0.1%)
+   Bob Wolff                             1 (0.1%)
+   Romain Naour                          1 (0.1%)
+   Dmitry Baryshkov                      1 (0.1%)
+   Vishal Mahaveer                       1 (0.1%)
+   Siddharth Vadapalli                   1 (0.1%)
+   Ivan Orlov                            1 (0.1%)
+   Nam Cao                               1 (0.1%)
+   Massimiliano Minella                  1 (0.1%)
+   BELOUARGA Mohamed                     1 (0.1%)
+   Alexander Gendin                      1 (0.1%)
+   Ivan Mikhaylov                        1 (0.1%)
+   ====================================  =====
+
+
+.. table:: Developers with the most changed lines
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   Tom Rini                              2187616 (86.6%)
+   Jonas Karlman                         69460 (2.8%)
+   Marek Vasut                           53285 (2.1%)
+   Caleb Connolly                        47393 (1.9%)
+   Apurva Nandan                         26241 (1.0%)
+   Neil Armstrong                        23816 (0.9%)
+   Tim Harvey                            10971 (0.4%)
+   Christophe Leroy                      10210 (0.4%)
+   Wadim Egorov                          8248 (0.3%)
+   Bryan Brattlof                        7039 (0.3%)
+   Tony Dinh                             5540 (0.2%)
+   Marcel Ziswiler                       5068 (0.2%)
+   Nathan Barrett-Morrison               4872 (0.2%)
+   Adam Ford                             4867 (0.2%)
+   Sumit Garg                            4743 (0.2%)
+   Andrew Davis                          4066 (0.2%)
+   Quentin Schulz                        3449 (0.1%)
+   Peng Fan                              3071 (0.1%)
+   Sam Protsenko                         3021 (0.1%)
+   Jit Loon Lim                          2717 (0.1%)
+   MD Danish Anwar                       2686 (0.1%)
+   Anand Moon                            2526 (0.1%)
+   Svyatoslav Ryhel                      2445 (0.1%)
+   Andy Yan                              1978 (0.1%)
+   Peter Robinson                        1907 (0.1%)
+   Boon Khai Ng                          1709 (0.1%)
+   Arseniy Krasnov                       1669 (0.1%)
+   Heinrich Schuchardt                   1350 (0.1%)
+   Jagan Teki                            1347 (0.1%)
+   Fabio Estevam                         1209 (0.0%)
+   Ilias Apalodimas                      1189 (0.0%)
+   Simon Glass                           1137 (0.0%)
+   Roger Quadros                         955 (0.0%)
+   Marek Behún                           939 (0.0%)
+   Elon Zhang                            889 (0.0%)
+   Kongyang Liu                          846 (0.0%)
+   Mihai Sain                            789 (0.0%)
+   Bhupesh Sharma                        662 (0.0%)
+   Jonas Schwöbel                        620 (0.0%)
+   Javier Martinez Canillas              597 (0.0%)
+   Michael Walle                         505 (0.0%)
+   Eugene Uriev                          501 (0.0%)
+   Christophe Kerello                    479 (0.0%)
+   Chris Morgan                          452 (0.0%)
+   Michal Simek                          449 (0.0%)
+   Bhargav Raviprakash                   388 (0.0%)
+   Janne Grunau                          386 (0.0%)
+   Robert Marko                          332 (0.0%)
+   Vignesh Raghavendra                   332 (0.0%)
+   H Bell                                291 (0.0%)
+   Yang Xiwen                            278 (0.0%)
+   Bruce Suen                            269 (0.0%)
+   Daniel Schultz                        265 (0.0%)
+   Love Kumar                            258 (0.0%)
+   Igor Opaniuk                          219 (0.0%)
+   Raymond Mao                           208 (0.0%)
+   Wan Yee Lau                           206 (0.0%)
+   Sughosh Ganu                          201 (0.0%)
+   Greg Malysa                           200 (0.0%)
+   Patrice Chotard                       199 (0.0%)
+   Masahisa Kojima                       193 (0.0%)
+   Dasnavis Sabiya                       189 (0.0%)
+   Neha Malcom Francis                   183 (0.0%)
+   Jonathan Humphreys                    173 (0.0%)
+   Anton Bambura                         167 (0.0%)
+   Kelly Hung                            164 (0.0%)
+   Andre Przywara                        163 (0.0%)
+   Kamlesh Gurudasani                    163 (0.0%)
+   Volodymyr Babchuk                     147 (0.0%)
+   Parth Pancholi                        146 (0.0%)
+   Piotr Wojtaszczyk                     144 (0.0%)
+   Judith Mendez                         131 (0.0%)
+   Joao Paulo Goncalves                  131 (0.0%)
+   Leonard Anderweit                     117 (0.0%)
+   BELOUARGA Mohamed                     114 (0.0%)
+   Finley Xiao                           109 (0.0%)
+   Jianan Huang                          99 (0.0%)
+   Venkatesh Yadav Abbarapu              95 (0.0%)
+   Chen-Yu Tsai                          92 (0.0%)
+   Mathieu Othacehe                      92 (0.0%)
+   Michał Barnaś                         86 (0.0%)
+   Lukasz Majewski                       74 (0.0%)
+   Alexander Dahl                        67 (0.0%)
+   Nishanth Menon                        66 (0.0%)
+   Conor Dooley                          64 (0.0%)
+   Francesco Dolcini                     64 (0.0%)
+   Maksim Kiselev                        64 (0.0%)
+   Linus Walleij                         64 (0.0%)
+   Weizhao Ouyang                        63 (0.0%)
+   Yannic Moog                           61 (0.0%)
+   Weijie Gao                            60 (0.0%)
+   Ben Dooks                             60 (0.0%)
+   Leo Yu-Chi Liang                      59 (0.0%)
+   Fiona Klute                           56 (0.0%)
+   Alexey Romanov                        56 (0.0%)
+   Jim Liu                               55 (0.0%)
+   Devarsh Thakkar                       53 (0.0%)
+   Colin McAllister                      53 (0.0%)
+   Maxim Moskalets                       51 (0.0%)
+   Josua Mayer                           50 (0.0%)
+   Ivan Mikhaylov                        50 (0.0%)
+   Ian Roberts                           47 (0.0%)
+   Christophe Roullier                   44 (0.0%)
+   Vincent Stehlé                        44 (0.0%)
+   Nam Cao                               43 (0.0%)
+   Ben Wolsieffer                        42 (0.0%)
+   Felipe Balbi                          41 (0.0%)
+   Vishal Sagar                          40 (0.0%)
+   Hanyuan Zhao                          38 (0.0%)
+   Hugo Dubois                           37 (0.0%)
+   Christopher Obbard                    34 (0.0%)
+   Aniket Limaye                         33 (0.0%)
+   Romain Naour                          33 (0.0%)
+   Heiko Stuebner                        31 (0.0%)
+   Emanuele Ghidoli                      30 (0.0%)
+   Stefan Bosch                          30 (0.0%)
+   mwleeds@mailtundra.com                28 (0.0%)
+   Michael Trimarchi                     23 (0.0%)
+   Thomas Weißschuh                      22 (0.0%)
+   Thinh Nguyen                          21 (0.0%)
+   Nitin Yadav                           19 (0.0%)
+   Jixiong Hu                            18 (0.0%)
+   Marjolaine Amate                      18 (0.0%)
+   Dan Carpenter                         17 (0.0%)
+   Stefan Eichenberger                   17 (0.0%)
+   Sam Povilus                           15 (0.0%)
+   Sébastien Szymanski                   15 (0.0%)
+   Massimiliano Minella                  15 (0.0%)
+   Mattijs Korpershoek                   14 (0.0%)
+   Sean Anderson                         14 (0.0%)
+   Lukas Funke                           13 (0.0%)
+   Yasuharu Shibata                      13 (0.0%)
+   Sam Edwards                           13 (0.0%)
+   Kunihiko Hayashi                      13 (0.0%)
+   Jacky Chou                            12 (0.0%)
+   Vitor Soares                          12 (0.0%)
+   Ye Li                                 11 (0.0%)
+   Udit Kumar                            11 (0.0%)
+   Hiago De Franco                       11 (0.0%)
+   Hari Nagalla                          10 (0.0%)
+   Maximilian Brune                      10 (0.0%)
+   Leon M. Busch-George                  10 (0.0%)
+   Viacheslav Bocharov                   9 (0.0%)
+   Benjamin Hahn                         9 (0.0%)
+   cmachida                              9 (0.0%)
+   James Hilliard                        9 (0.0%)
+   Lukasz Wiecaszek                      9 (0.0%)
+   Charles Hardin                        8 (0.0%)
+   Petr Zejdl                            8 (0.0%)
+   Vishal Mahaveer                       8 (0.0%)
+   Sam Day                               7 (0.0%)
+   Manorit Chawdhry                      7 (0.0%)
+   Łukasz Stelmach                       7 (0.0%)
+   Andrea Calabrese                      6 (0.0%)
+   Siddharth Vadapalli                   6 (0.0%)
+   CASAUBON Jean Michel                  5 (0.0%)
+   Ahelenia Ziemiańska                   5 (0.0%)
+   Ravi Minnikanti                       5 (0.0%)
+   Hugo Cornelis                         5 (0.0%)
+   Bob Wolff                             5 (0.0%)
+   Alexander Gendin                      5 (0.0%)
+   Dragan Simic                          4 (0.0%)
+   Aswath Govindraju                     4 (0.0%)
+   Kishan Dudhatra                       4 (0.0%)
+   Khem Raj                              4 (0.0%)
+   Tejas Bhumkar                         3 (0.0%)
+   Heiko Schocher                        3 (0.0%)
+   Lukasz Czechowski                     3 (0.0%)
+   Jason Zhu                             3 (0.0%)
+   Maks Mishin                           3 (0.0%)
+   Patrick Delaunay                      2 (0.0%)
+   Jiaxun Yang                           2 (0.0%)
+   William Zhang                         2 (0.0%)
+   Eugeniu Rosca                         2 (0.0%)
+   Pierre-Clément Tosi                   2 (0.0%)
+   Javier Viguera                        2 (0.0%)
+   Manikanta Guntupalli                  2 (0.0%)
+   Dmitry Baryshkov                      2 (0.0%)
+   Frank Wunderlich                      1 (0.0%)
+   John Watts                            1 (0.0%)
+   Thomas Perl                           1 (0.0%)
+   Kristian Amlie                        1 (0.0%)
+   Alexander Sverdlin                    1 (0.0%)
+   Jaehoon Chung                         1 (0.0%)
+   Yu Chien Peter Lin                    1 (0.0%)
+   Hector Martin                         1 (0.0%)
+   Gireesh Hiremath                      1 (0.0%)
+   Martyn Welch                          1 (0.0%)
+   Shubhangi Shrikrushna Mahalle         1 (0.0%)
+   William Wu                            1 (0.0%)
+   Ivan Orlov                            1 (0.0%)
+   ====================================  =====
+
+
+.. table:: Developers with the most lines removed
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   Jonas Karlman                         59892 (24.7%)
+   Marek Vasut                           51731 (21.3%)
+   Neil Armstrong                        19240 (7.9%)
+   Tim Harvey                            10397 (4.3%)
+   Tony Dinh                             5465 (2.3%)
+   Marcel Ziswiler                       5061 (2.1%)
+   Adam Ford                             4818 (2.0%)
+   Andrew Davis                          3493 (1.4%)
+   Peng Fan                              2778 (1.1%)
+   Anand Moon                            2523 (1.0%)
+   Sam Protsenko                         2273 (0.9%)
+   Peter Robinson                        1907 (0.8%)
+   Fabio Estevam                         1185 (0.5%)
+   Sumit Garg                            845 (0.3%)
+   Javier Martinez Canillas              582 (0.2%)
+   Michael Walle                         494 (0.2%)
+   Chen-Yu Tsai                          80 (0.0%)
+   Igor Opaniuk                          72 (0.0%)
+   Linus Walleij                         61 (0.0%)
+   Francesco Dolcini                     36 (0.0%)
+   Sam Edwards                           12 (0.0%)
+   Ben Wolsieffer                        11 (0.0%)
+   Hiago De Franco                       11 (0.0%)
+   Kunihiko Hayashi                      10 (0.0%)
+   Colin McAllister                      7 (0.0%)
+   Heiko Schocher                        3 (0.0%)
+   Dan Carpenter                         2 (0.0%)
+   Dragan Simic                          2 (0.0%)
+   Jiaxun Yang                           1 (0.0%)
+   William Zhang                         1 (0.0%)
+   ====================================  =====
+
+
+.. table:: Developers with the most signoffs (total 231)
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   Caleb Connolly                        41 (17.7%)
+   Mattijs Korpershoek                   19 (8.2%)
+   Michal Simek                          15 (6.5%)
+   Dario Binacchi                        11 (4.8%)
+   Chris Morgan                          10 (4.3%)
+   Ilias Apalodimas                      10 (4.3%)
+   Svyatoslav Ryhel                      10 (4.3%)
+   Hari Nagalla                          8 (3.5%)
+   Minkyu Kang                           7 (3.0%)
+   Alexander Sverdlin                    6 (2.6%)
+   Ian Roberts                           6 (2.6%)
+   Greg Malysa                           5 (2.2%)
+   Nathan Barrett-Morrison               5 (2.2%)
+   Manorit Chawdhry                      4 (1.7%)
+   Dasnavis Sabiya                       4 (1.7%)
+   Christophe Leroy                      4 (1.7%)
+   Apurva Nandan                         4 (1.7%)
+   Neil Armstrong                        3 (1.3%)
+   Francesco Dolcini                     3 (1.3%)
+   Vasileios Bimpikas                    3 (1.3%)
+   Utsav Agarwal                         3 (1.3%)
+   Arturs Artamonovs                     3 (1.3%)
+   Neha Malcom Francis                   3 (1.3%)
+   Janne Grunau                          3 (1.3%)
+   Heinrich Schuchardt                   3 (1.3%)
+   Jonas Karlman                         2 (0.9%)
+   Marek Vasut                           2 (0.9%)
+   Sumit Garg                            2 (0.9%)
+   Dhruva Gole                           2 (0.9%)
+   Kever Yang                            2 (0.9%)
+   Ravi Gunasekaran                      2 (0.9%)
+   Parvathi Bhogaraju                    2 (0.9%)
+   Jayesh Choudhary                      2 (0.9%)
+   Bo-Cun Chen                           2 (0.9%)
+   Daniel Schultz                        2 (0.9%)
+   Jonas Schwöbel                        2 (0.9%)
+   Bryan Brattlof                        2 (0.9%)
+   Peng Fan                              1 (0.4%)
+   Fabio Estevam                         1 (0.4%)
+   Stefan Roese                          1 (0.4%)
+   Greg Kroah-Hartman                    1 (0.4%)
+   Angelo Dureghello                     1 (0.4%)
+   Anatolij Gustschin                    1 (0.4%)
+   Vaishnav Achath                       1 (0.4%)
+   Ashok Reddy Soma                      1 (0.4%)
+   Dong Huang                            1 (0.4%)
+   Shubhangi Shrikrushna Mahalle         1 (0.4%)
+   Felipe Balbi                          1 (0.4%)
+   Judith Mendez                         1 (0.4%)
+   Patrice Chotard                       1 (0.4%)
+   Quentin Schulz                        1 (0.4%)
+   ====================================  =====
+
+
+.. table:: Developers with the most reviews (total 1025)
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   Kever Yang                            223 (21.8%)
+   Neil Armstrong                        71 (6.9%)
+   Sumit Garg                            70 (6.8%)
+   Dragan Simic                          45 (4.4%)
+   Ilias Apalodimas                      42 (4.1%)
+   Heinrich Schuchardt                   35 (3.4%)
+   Patrick Delaunay                      33 (3.2%)
+   Quentin Schulz                        32 (3.1%)
+   Mattijs Korpershoek                   31 (3.0%)
+   Leo Yu-Chi Liang                      31 (3.0%)
+   Marek Vasut                           28 (2.7%)
+   Jaehoon Chung                         28 (2.7%)
+   Patrice Chotard                       22 (2.1%)
+   Caleb Connolly                        21 (2.0%)
+   Tom Rini                              21 (2.0%)
+   Stefan Roese                          20 (2.0%)
+   Neha Malcom Francis                   17 (1.7%)
+   Simon Glass                           16 (1.6%)
+   Peter Robinson                        13 (1.3%)
+   Igor Opaniuk                          13 (1.3%)
+   Thierry Reding                        12 (1.2%)
+   Neal Gompa                            11 (1.1%)
+   Heiko Schocher                        9 (0.9%)
+   Michael Trimarchi                     9 (0.9%)
+   Roger Quadros                         9 (0.9%)
+   Tony Dinh                             8 (0.8%)
+   Christopher Obbard                    8 (0.8%)
+   Jonas Karlman                         6 (0.6%)
+   Dhruva Gole                           6 (0.6%)
+   E Shattow                             6 (0.6%)
+   Christophe ROULLIER                   6 (0.6%)
+   Richard Henderson                     6 (0.6%)
+   Nishanth Menon                        6 (0.6%)
+   Ravi Gunasekaran                      5 (0.5%)
+   Teresa Remmet                         5 (0.5%)
+   Mark Kettenis                         5 (0.5%)
+   Paul Barker                           5 (0.5%)
+   Udit Kumar                            5 (0.5%)
+   Sean Anderson                         5 (0.5%)
+   Fabio Estevam                         4 (0.4%)
+   Sam Protsenko                         4 (0.4%)
+   Enric Balletbo i Serra                4 (0.4%)
+   Laurent Pinchart                      4 (0.4%)
+   Bryan Brattlof                        3 (0.3%)
+   Andrew Davis                          3 (0.3%)
+   Sam Edwards                           3 (0.3%)
+   Dan Carpenter                         3 (0.3%)
+   William Zhang                         3 (0.3%)
+   Chris Packham                         3 (0.3%)
+   Nikhil M Jain                         3 (0.3%)
+   Tianling Shen                         3 (0.3%)
+   Anatolij Gustschin                    2 (0.2%)
+   CASAUBON Jean Michel                  2 (0.2%)
+   Ian Ray                               2 (0.2%)
+   Oleksandr Suvorov                     2 (0.2%)
+   Bin Meng                              2 (0.2%)
+   Tien Fong Chee                        2 (0.2%)
+   Minkyu Kang                           1 (0.1%)
+   Tim Harvey                            1 (0.1%)
+   Adam Ford                             1 (0.1%)
+   Linus Walleij                         1 (0.1%)
+   Eddie James                           1 (0.1%)
+   Guillaume La Roque                    1 (0.1%)
+   Julien Masson                         1 (0.1%)
+   Miquel Raynal                         1 (0.1%)
+   Tim Lunn                              1 (0.1%)
+   Cédric Le Goater                      1 (0.1%)
+   Biju Das                              1 (0.1%)
+   Holger Brunck                         1 (0.1%)
+   Otavio Salvador                       1 (0.1%)
+   Chia-Wei Wang                         1 (0.1%)
+   Keerthy                               1 (0.1%)
+   Philipp Tomsich                       1 (0.1%)
+   Gao Xiang                             1 (0.1%)
+   Frieder Schrempf                      1 (0.1%)
+   Dmitrii Merkurev                      1 (0.1%)
+   Marc Zyngier                          1 (0.1%)
+   Ramon Fried                           1 (0.1%)
+   Jai Luthra                            1 (0.1%)
+   Alexander Dahl                        1 (0.1%)
+   Heiko Stuebner                        1 (0.1%)
+   Hugo Dubois                           1 (0.1%)
+   Weizhao Ouyang                        1 (0.1%)
+   Andre Przywara                        1 (0.1%)
+   Mathieu Othacehe                      1 (0.1%)
+   Wadim Egorov                          1 (0.1%)
+   ====================================  =====
+
+
+.. table:: Developers with the most test credits (total 166)
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   Sumit Garg                            19 (11.4%)
+   Marcel Ziswiler                       15 (9.0%)
+   Svyatoslav Ryhel                      10 (6.0%)
+   Mattijs Korpershoek                   9 (5.4%)
+   Ion Agorria                           9 (5.4%)
+   Tim Harvey                            7 (4.2%)
+   Adam Ford                             7 (4.2%)
+   Andreas Westman Dorcsak               7 (4.2%)
+   Sam Edwards                           6 (3.6%)
+   Agneli                                6 (3.6%)
+   Robert Eckelmann                      6 (3.6%)
+   Simon Glass                           5 (3.0%)
+   Teresa Remmet                         5 (3.0%)
+   Fabio Estevam                         5 (3.0%)
+   Ilias Apalodimas                      4 (2.4%)
+   Jonathan Humphreys                    4 (2.4%)
+   Neil Armstrong                        3 (1.8%)
+   Paul Barker                           3 (1.8%)
+   Heiko Stuebner                        3 (1.8%)
+   Christian Gmeiner                     3 (1.8%)
+   Heinrich Schuchardt                   2 (1.2%)
+   Caleb Connolly                        2 (1.2%)
+   Tony Dinh                             2 (1.2%)
+   Hiago De Franco                       2 (1.2%)
+   Robert Nelson                         2 (1.2%)
+   Leo Yu-Chi Liang                      1 (0.6%)
+   Jaehoon Chung                         1 (0.6%)
+   Patrice Chotard                       1 (0.6%)
+   Dhruva Gole                           1 (0.6%)
+   E Shattow                             1 (0.6%)
+   Ravi Gunasekaran                      1 (0.6%)
+   Bryan Brattlof                        1 (0.6%)
+   Andrew Davis                          1 (0.6%)
+   Tim Lunn                              1 (0.6%)
+   Otavio Salvador                       1 (0.6%)
+   Wadim Egorov                          1 (0.6%)
+   Michal Simek                          1 (0.6%)
+   Alexander Sverdlin                    1 (0.6%)
+   Jonas Schwöbel                        1 (0.6%)
+   Judith Mendez                         1 (0.6%)
+   Michael Walle                         1 (0.6%)
+   Patrick Bruenn                        1 (0.6%)
+   Jethro Bull                           1 (0.6%)
+   Kamlesh Gurudasani                    1 (0.6%)
+   Robert Marko                          1 (0.6%)
+   ====================================  =====
+
+
+.. table:: Developers who gave the most tested-by credits (total 166)
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   Svyatoslav Ryhel                      36 (21.7%)
+   Caleb Connolly                        23 (13.9%)
+   Sumit Garg                            15 (9.0%)
+   Apurva Nandan                         12 (7.2%)
+   Marek Vasut                           10 (6.0%)
+   Ilias Apalodimas                      6 (3.6%)
+   Quentin Schulz                        6 (3.6%)
+   Tom Rini                              6 (3.6%)
+   Neil Armstrong                        5 (3.0%)
+   Andrew Davis                          5 (3.0%)
+   Leonard Anderweit                     5 (3.0%)
+   Jonas Schwöbel                        4 (2.4%)
+   Fabio Estevam                         3 (1.8%)
+   Heinrich Schuchardt                   3 (1.8%)
+   Bryan Brattlof                        3 (1.8%)
+   Alexander Sverdlin                    2 (1.2%)
+   Dasnavis Sabiya                       2 (1.2%)
+   Pierre-Clément Tosi                   2 (1.2%)
+   Yasuharu Shibata                      2 (1.2%)
+   Josua Mayer                           2 (1.2%)
+   Masahisa Kojima                       2 (1.2%)
+   Tim Harvey                            1 (0.6%)
+   Simon Glass                           1 (0.6%)
+   Tony Dinh                             1 (0.6%)
+   Judith Mendez                         1 (0.6%)
+   Igor Opaniuk                          1 (0.6%)
+   Roger Quadros                         1 (0.6%)
+   Nishanth Menon                        1 (0.6%)
+   Anand Moon                            1 (0.6%)
+   Sébastien Szymanski                   1 (0.6%)
+   Maksim Kiselev                        1 (0.6%)
+   Ben Dooks                             1 (0.6%)
+   Yang Xiwen                            1 (0.6%)
+   ====================================  =====
+
+
+.. table:: Developers with the most report credits (total 27)
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   E Shattow                             4 (14.8%)
+   Sumit Garg                            2 (7.4%)
+   Jonas Karlman                         2 (7.4%)
+   Laurent Pinchart                      2 (7.4%)
+   Suman Anna                            2 (7.4%)
+   Marek Vasut                           1 (3.7%)
+   Andrew Davis                          1 (3.7%)
+   Heinrich Schuchardt                   1 (3.7%)
+   Tim Harvey                            1 (3.7%)
+   Simon Glass                           1 (3.7%)
+   Jonathan Humphreys                    1 (3.7%)
+   Patrice Chotard                       1 (3.7%)
+   Dhruva Gole                           1 (3.7%)
+   Dan Carpenter                         1 (3.7%)
+   Christophe Leroy                      1 (3.7%)
+   Eugeniu Rosca                         1 (3.7%)
+   Janusz Dziedzic                       1 (3.7%)
+   David Virag                           1 (3.7%)
+   Jan Kiszka                            1 (3.7%)
+   Aniket Limaye                         1 (3.7%)
+   ====================================  =====
+
+
+.. table:: Developers who gave the most report credits (total 27)
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   Heinrich Schuchardt                   6 (22.2%)
+   Neha Malcom Francis                   3 (11.1%)
+   Marek Vasut                           2 (7.4%)
+   Caleb Connolly                        2 (7.4%)
+   Tom Rini                              2 (7.4%)
+   Fabio Estevam                         2 (7.4%)
+   Bryan Brattlof                        2 (7.4%)
+   Andrew Davis                          1 (3.7%)
+   Ilias Apalodimas                      1 (3.7%)
+   Quentin Schulz                        1 (3.7%)
+   Yasuharu Shibata                      1 (3.7%)
+   Nishanth Menon                        1 (3.7%)
+   Sam Protsenko                         1 (3.7%)
+   Felipe Balbi                          1 (3.7%)
+   Alexander Gendin                      1 (3.7%)
+   ====================================  =====
+
+
+.. table:: Top changeset contributors by employer
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   (Unknown)                             645 (39.7%)
+   Konsulko Group                        324 (20.0%)
+   Linaro                                201 (12.4%)
+   Texas Instruments                     119 (7.3%)
+   Google LLC                            50 (3.1%)
+   AMD                                   43 (2.6%)
+   ST Microelectronics                   39 (2.4%)
+   DENX Software Engineering             34 (2.1%)
+   Phytec                                27 (1.7%)
+   Renesas Electronics                   25 (1.5%)
+   Toradex                               19 (1.2%)
+   NXP                                   17 (1.0%)
+   Edgeble AI Technologies Pvt. Ltd.     14 (0.9%)
+   ARM                                   13 (0.8%)
+   Intel                                 9 (0.6%)
+   Amarula Solutions                     7 (0.4%)
+   BayLibre SAS                          6 (0.4%)
+   Socionext Inc.                        6 (0.4%)
+   Collabora Ltd.                        5 (0.3%)
+   Red Hat                               4 (0.2%)
+   linutronix                            4 (0.2%)
+   Rockchip                              4 (0.2%)
+   Weidmüller Interface GmbH & Co. KG    3 (0.2%)
+   Samsung                               2 (0.1%)
+   Broadcom                              1 (0.1%)
+   Digi International                    1 (0.1%)
+   Marvell                               1 (0.1%)
+   Siemens                               1 (0.1%)
+   ====================================  =====
+
+
+.. table:: Top lines changed by employer
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   Konsulko Group                        2187616 (86.6%)
+   (Unknown)                             130949 (5.2%)
+   Linaro                                80577 (3.2%)
+   Renesas Electronics                   52143 (2.1%)
+   Texas Instruments                     41420 (1.6%)
+   Phytec                                8700 (0.3%)
+   Toradex                               5479 (0.2%)
+   Intel                                 4682 (0.2%)
+   Edgeble AI Technologies Pvt. Ltd.     3856 (0.2%)
+   NXP                                   3082 (0.1%)
+   DENX Software Engineering             1283 (0.1%)
+   Google LLC                            1225 (0.0%)
+   Rockchip                              1002 (0.0%)
+   AMD                                   863 (0.0%)
+   ST Microelectronics                   724 (0.0%)
+   Red Hat                               597 (0.0%)
+   ARM                                   207 (0.0%)
+   Socionext Inc.                        206 (0.0%)
+   linutronix                            65 (0.0%)
+   Amarula Solutions                     46 (0.0%)
+   Collabora Ltd.                        35 (0.0%)
+   BayLibre SAS                          14 (0.0%)
+   Weidmüller Interface GmbH & Co. KG    13 (0.0%)
+   Samsung                               8 (0.0%)
+   Marvell                               5 (0.0%)
+   Broadcom                              2 (0.0%)
+   Digi International                    2 (0.0%)
+   Siemens                               1 (0.0%)
+   ====================================  =====
+
+
+.. table:: Employers with the most signoffs (total 231)
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   (Unknown)                             56 (24.2%)
+   Linaro                                56 (24.2%)
+   Texas Instruments                     33 (14.3%)
+   BayLibre SAS                          19 (8.2%)
+   AMD                                   17 (7.4%)
+   Amarula Solutions                     11 (4.8%)
+   Analog Devices                        9 (3.9%)
+   Samsung                               7 (3.0%)
+   Siemens                               6 (2.6%)
+   DENX Software Engineering             4 (1.7%)
+   Toradex                               3 (1.3%)
+   Canonical                             3 (1.3%)
+   Phytec                                2 (0.9%)
+   Rockchip                              2 (0.9%)
+   Intel                                 1 (0.4%)
+   NXP                                   1 (0.4%)
+   ST Microelectronics                   1 (0.4%)
+   ====================================  =====
+
+
+.. table:: Employers with the most hackers (total 195)
+   :widths: auto
+
+   ====================================  =====
+   Name                                  Count
+   ====================================  =====
+   (Unknown)                             98 (50.3%)
+   Texas Instruments                     20 (10.3%)
+   Linaro                                10 (5.1%)
+   AMD                                   8 (4.1%)
+   Toradex                               8 (4.1%)
+   Phytec                                5 (2.6%)
+   Intel                                 5 (2.6%)
+   DENX Software Engineering             4 (2.1%)
+   Rockchip                              4 (2.1%)
+   ST Microelectronics                   4 (2.1%)
+   Amarula Solutions                     3 (1.5%)
+   Google LLC                            3 (1.5%)
+   Samsung                               2 (1.0%)
+   NXP                                   2 (1.0%)
+   Edgeble AI Technologies Pvt. Ltd.     2 (1.0%)
+   ARM                                   2 (1.0%)
+   Socionext Inc.                        2 (1.0%)
+   linutronix                            2 (1.0%)
+   Collabora Ltd.                        2 (1.0%)
+   BayLibre SAS                          1 (0.5%)
+   Siemens                               1 (0.5%)
+   Konsulko Group                        1 (0.5%)
+   Renesas Electronics                   1 (0.5%)
+   Red Hat                               1 (0.5%)
+   Weidmüller Interface GmbH & Co. KG    1 (0.5%)
+   Marvell                               1 (0.5%)
+   Broadcom                              1 (0.5%)
+   Digi International                    1 (0.5%)
+   ====================================  =====
+
diff --git a/doc/usage/fit/beaglebone_vboot.rst b/doc/usage/fit/beaglebone_vboot.rst
index cd6bb14..1298ba1 100644
--- a/doc/usage/fit/beaglebone_vboot.rst
+++ b/doc/usage/fit/beaglebone_vboot.rst
@@ -67,18 +67,20 @@
 
        export CROSS_COMPILE=arm-linux-gnueabi-
 
-b. Configure and build U-Boot with verified boot enabled::
+b. Configure and build U-Boot with verified boot enabled. Note that we use the
+am335x_evm target since it covers all boards based on the AM335x evaluation
+board::
 
     export UBOOT=/path/to/u-boot
     cd $UBOOT
     # You can add -j10 if you have 10 CPUs to make it faster
-    make O=b/am335x_boneblack_vboot am335x_boneblack_vboot_config all
-    export UOUT=$UBOOT/b/am335x_boneblack_vboot
+    make O=b/am335x_evm am335x_evm_config all
+    export UOUT=$UBOOT/b/am335x_evm
 
 c. You will now have a U-Boot image::
 
-    file b/am335x_boneblack_vboot/u-boot-dtb.img
-    b/am335x_boneblack_vboot/u-boot-dtb.img: u-boot legacy uImage,
+    file b/am335x_evm/u-boot-dtb.img
+    b/am335x_evm/u-boot-dtb.img: u-boot legacy uImage,
       U-Boot 2014.07-rc2-00065-g2f69f8, Firmware/ARM, Firmware Image
       (Not compressed), 395375 bytes, Sat May 31 16:19:04 2014,
       Load Address: 0x80800000, Entry Point: 0x00000000,
@@ -466,7 +468,7 @@
 you sign::
 
     cd $UBOOT
-    make O=b/am335x_boneblack_vboot EXT_DTB=${WORK}/am335x-boneblack-pubkey.dtb
+    make O=b/am335x_evm EXT_DTB=${WORK}/am335x-boneblack-pubkey.dtb
 
 Here we are overriding the normal device tree file with our one, which
 contains the public key.
@@ -597,14 +599,11 @@
 
 Several of the steps here can be easily automated. In particular it would be
 capital if signing and packaging a kernel were easy, perhaps a simple make
-target in the kernel.
+target in the kernel. A starting point for this is the 'make image.fit' target
+for ARM64 in Linux from v6.9 onwards.
 
 Some mention of how to use multiple .dtb files in a FIT might be useful.
 
-U-Boot's verified boot mechanism has not had a robust and independent security
-review. Such a review should look at the implementation and its resistance to
-attacks.
-
 Perhaps the verified boot feature could be integrated into the Amstrom
 distribution.
 
diff --git a/drivers/power/regulator/regulator-uclass.c b/drivers/power/regulator/regulator-uclass.c
index 66fd531..88a8525 100644
--- a/drivers/power/regulator/regulator-uclass.c
+++ b/drivers/power/regulator/regulator-uclass.c
@@ -517,7 +517,7 @@
 	     dev;
 	     uclass_next_device(&dev)) {
 		ret = regulator_autoset(dev);
-		if (ret == -EMEDIUMTYPE) {
+		if (ret == -EMEDIUMTYPE || ret == -EALREADY) {
 			ret = 0;
 			continue;
 		}
diff --git a/include/u-boot/zlib.h b/include/u-boot/zlib.h
index ee19f46..a33cc87 100644
--- a/include/u-boot/zlib.h
+++ b/include/u-boot/zlib.h
@@ -49,6 +49,9 @@
 extern "C" {
 #endif
 
+#define ZLIB_VERSION "1.2.3"
+#define ZLIB_VERNUM 0x1230
+
 /* #include "zconf.h" */        /* included directly here */
 /* zconf.h -- configuration of the zlib compression library
  * Copyright (C) 1995-2005 Jean-loup Gailly.
@@ -481,6 +484,7 @@
 #define Z_DATA_ERROR   (-3)
 #define Z_MEM_ERROR    (-4)
 #define Z_BUF_ERROR    (-5)
+#define Z_VERSION_ERROR (-6)
 /* Return codes for the compression/decompression functions. Negative
  * values are errors, positive values are used for special but normal events.
  */
@@ -519,11 +523,11 @@
 
 ZEXTERN int ZEXPORT deflate OF((z_streamp strm, int flush));
 ZEXTERN int ZEXPORT deflateInit_ OF((z_streamp strm, int level,
-			int stream_size));
+			const char *version, int stream_size));
 ZEXTERN int ZEXPORT deflateEnd OF((z_streamp strm));
 ZEXTERN int ZEXPORT deflateInit2_ OF((z_streamp strm, int  level, int  method,
 			int windowBits, int memLevel,
-			int strategy,
+			int strategy, const char *version,
 			int stream_size));
 ZEXTERN int ZEXPORT deflateReset OF((z_streamp strm));
 ZEXTERN int ZEXPORT deflateSetDictionary OF((z_streamp strm,
@@ -549,7 +553,7 @@
 
 
 ZEXTERN int ZEXPORT inflateInit_ OF((z_streamp strm,
-			int stream_size));
+			const char *version, int stream_size));
 ZEXTERN int ZEXPORT inflate OF((z_streamp strm, int flush));
 /*
     inflate decompresses as much data as possible, and stops when the input
@@ -739,11 +743,11 @@
 */
 
 ZEXTERN int ZEXPORT inflateInit2_ OF((z_streamp strm, int  windowBits,
-                                      int stream_size));
+                                      const char *version, int stream_size));
 #define inflateInit(strm) \
-	inflateInit_((strm), sizeof(z_stream))
+	inflateInit_((strm), ZLIB_VERSION, sizeof(z_stream))
 #define inflateInit2(strm, windowBits) \
-	inflateInit2_((strm), (windowBits), sizeof(z_stream))
+	inflateInit2_((strm), (windowBits), ZLIB_VERSION, sizeof(z_stream))
 
 #if !defined(ZUTIL_H) && !defined(NO_DUMMY_DECL)
 	struct internal_state {int dummy;}; /* hack for buggy compilers */
diff --git a/lib/gzip.c b/lib/gzip.c
index a9a3df5..5d9c195 100644
--- a/lib/gzip.c
+++ b/lib/gzip.c
@@ -67,7 +67,7 @@
 
 	r = deflateInit2_(&s, Z_BEST_SPEED, Z_DEFLATED,	window,
 			DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY,
-			sizeof(z_stream));
+			ZLIB_VERSION, sizeof(z_stream));
 	if (r != Z_OK) {
 		printf ("Error: deflateInit2_() returned %d\n", r);
 		return -1;
diff --git a/lib/zlib/deflate.c b/lib/zlib/deflate.c
index 7e1ed4f..4549f4d 100644
--- a/lib/zlib/deflate.c
+++ b/lib/zlib/deflate.c
@@ -196,30 +196,37 @@
     zmemzero((Bytef *)s->head, (unsigned)(s->hash_size-1)*sizeof(*s->head));
 
 /* ========================================================================= */
-int ZEXPORT deflateInit_(strm, level, stream_size)
+int ZEXPORT deflateInit_(strm, level, version, stream_size)
     z_streamp strm;
     int level;
+    const char *version;
     int stream_size;
 {
     return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL,
-                         Z_DEFAULT_STRATEGY, stream_size);
+                         Z_DEFAULT_STRATEGY, version, stream_size);
     /* To do: ignore strm->next_in if we use it as window */
 }
 
 /* ========================================================================= */
 int ZEXPORT deflateInit2_(strm, level, method, windowBits, memLevel, strategy,
-                  stream_size)
+                  version, stream_size)
     z_streamp strm;
     int  level;
     int  method;
     int  windowBits;
     int  memLevel;
     int  strategy;
+    const char *version;
     int stream_size;
 {
     deflate_state *s;
     int wrap = 1;
+    static const char my_version[] = ZLIB_VERSION;
 
+    if (version == Z_NULL || version[0] != my_version[0] ||
+        stream_size != sizeof(z_stream)) {
+        return Z_VERSION_ERROR;
+    }
     if (strm == Z_NULL) return Z_STREAM_ERROR;
 
     strm->msg = Z_NULL;
diff --git a/lib/zlib/inffast.c b/lib/zlib/inffast.c
index 5e2a65a..e3c7f3b 100644
--- a/lib/zlib/inffast.c
+++ b/lib/zlib/inffast.c
@@ -1,5 +1,5 @@
 /* inffast.c -- fast decoding
- * Copyright (C) 1995-2008, 2010, 2013 Mark Adler
+ * Copyright (C) 1995-2004 Mark Adler
  * For conditions of distribution and use, see copyright notice in zlib.h
  */
 
@@ -12,6 +12,25 @@
 
 #ifndef ASMINF
 
+/* Allow machine dependent optimization for post-increment or pre-increment.
+   Based on testing to date,
+   Pre-increment preferred for:
+   - PowerPC G3 (Adler)
+   - MIPS R5000 (Randers-Pehrson)
+   Post-increment preferred for:
+   - none
+   No measurable difference:
+   - Pentium III (Anderson)
+   - M68060 (Nikl)
+ */
+#ifdef POSTINC
+#  define OFF 0
+#  define PUP(a) *(a)++
+#else
+#  define OFF 1
+#  define PUP(a) *++(a)
+#endif
+
 /*
    Decode literal, length, and distance codes and write out the resulting
    literal and match bytes until either not enough input or output is
@@ -47,13 +66,12 @@
       requires strm->avail_out >= 258 for each loop to avoid checking for
       output space.
  */
-void ZLIB_INTERNAL inflate_fast(strm, start)
-z_streamp strm;
-unsigned start;         /* inflate()'s starting value for strm->avail_out */
+void inflate_fast(z_streamp strm, unsigned start)
+/* start: inflate()'s starting value for strm->avail_out */
 {
     struct inflate_state FAR *state;
-    z_const unsigned char FAR *in;      /* local strm->next_in */
-    z_const unsigned char FAR *last;    /* have enough input while in < last */
+    unsigned char FAR *in;      /* local strm->next_in */
+    unsigned char FAR *last;    /* while in < last, enough input available */
     unsigned char FAR *out;     /* local strm->next_out */
     unsigned char FAR *beg;     /* inflate()'s initial strm->next_out */
     unsigned char FAR *end;     /* while out < end, enough space available */
@@ -62,7 +80,7 @@
 #endif
     unsigned wsize;             /* window size or zero if not using window */
     unsigned whave;             /* valid bytes in the window */
-    unsigned wnext;             /* window write index */
+    unsigned write;             /* window write index */
     unsigned char FAR *window;  /* allocated sliding window, if wsize != 0 */
     unsigned long hold;         /* local strm->hold */
     unsigned bits;              /* local strm->bits */
@@ -70,7 +88,7 @@
     code const FAR *dcode;      /* local strm->distcode */
     unsigned lmask;             /* mask for first level of length codes */
     unsigned dmask;             /* mask for first level of distance codes */
-    code here;                  /* retrieved table entry */
+    code this;                  /* retrieved table entry */
     unsigned op;                /* code bits, operation, extra bits, or */
                                 /*  window position, window bytes to copy */
     unsigned len;               /* match length, unused bytes */
@@ -79,7 +97,7 @@
 
     /* copy state to local variables */
     state = (struct inflate_state FAR *)strm->state;
-    in = strm->next_in;
+    in = strm->next_in - OFF;
     last = in + (strm->avail_in - 5);
     if (in > last && strm->avail_in > 5) {
         /*
@@ -89,7 +107,7 @@
 	strm->avail_in = 0xffffffff - (uintptr_t)in;
         last = in + (strm->avail_in - 5);
     }
-    out = strm->next_out;
+    out = strm->next_out - OFF;
     beg = out - (start - strm->avail_out);
     end = out + (strm->avail_out - 257);
 #ifdef INFLATE_STRICT
@@ -97,7 +115,7 @@
 #endif
     wsize = state->wsize;
     whave = state->whave;
-    wnext = state->wnext;
+    write = state->write;
     window = state->window;
     hold = state->hold;
     bits = state->bits;
@@ -110,29 +128,29 @@
        input data or output space */
     do {
         if (bits < 15) {
-            hold += (unsigned long)(*in++) << bits;
+            hold += (unsigned long)(PUP(in)) << bits;
             bits += 8;
-            hold += (unsigned long)(*in++) << bits;
+            hold += (unsigned long)(PUP(in)) << bits;
             bits += 8;
         }
-        here = lcode[hold & lmask];
+        this = lcode[hold & lmask];
       dolen:
-        op = (unsigned)(here.bits);
+        op = (unsigned)(this.bits);
         hold >>= op;
         bits -= op;
-        op = (unsigned)(here.op);
+        op = (unsigned)(this.op);
         if (op == 0) {                          /* literal */
-            Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?
+            Tracevv((stderr, this.val >= 0x20 && this.val < 0x7f ?
                     "inflate:         literal '%c'\n" :
-                    "inflate:         literal 0x%02x\n", here.val));
-            *out++ = (unsigned char)(here.val);
+                    "inflate:         literal 0x%02x\n", this.val));
+            PUP(out) = (unsigned char)(this.val);
         }
         else if (op & 16) {                     /* length base */
-            len = (unsigned)(here.val);
+            len = (unsigned)(this.val);
             op &= 15;                           /* number of extra bits */
             if (op) {
                 if (bits < op) {
-                    hold += (unsigned long)(*in++) << bits;
+                    hold += (unsigned long)(PUP(in)) << bits;
                     bits += 8;
                 }
                 len += (unsigned)hold & ((1U << op) - 1);
@@ -141,25 +159,25 @@
             }
             Tracevv((stderr, "inflate:         length %u\n", len));
             if (bits < 15) {
-                hold += (unsigned long)(*in++) << bits;
+                hold += (unsigned long)(PUP(in)) << bits;
                 bits += 8;
-                hold += (unsigned long)(*in++) << bits;
+                hold += (unsigned long)(PUP(in)) << bits;
                 bits += 8;
             }
-            here = dcode[hold & dmask];
+            this = dcode[hold & dmask];
           dodist:
-            op = (unsigned)(here.bits);
+            op = (unsigned)(this.bits);
             hold >>= op;
             bits -= op;
-            op = (unsigned)(here.op);
+            op = (unsigned)(this.op);
             if (op & 16) {                      /* distance base */
-                dist = (unsigned)(here.val);
+                dist = (unsigned)(this.val);
                 op &= 15;                       /* number of extra bits */
                 if (bits < op) {
-                    hold += (unsigned long)(*in++) << bits;
+                    hold += (unsigned long)(PUP(in)) << bits;
                     bits += 8;
                     if (bits < op) {
-                        hold += (unsigned long)(*in++) << bits;
+                        hold += (unsigned long)(PUP(in)) << bits;
                         bits += 8;
                     }
                 }
@@ -178,80 +196,108 @@
                 if (dist > op) {                /* see if copy from window */
                     op = dist - op;             /* distance back in window */
                     if (op > whave) {
-                        strm->msg =
-                            (char *)"invalid distance too far back";
+                        strm->msg = (char *)"invalid distance too far back";
                         state->mode = BAD;
                         break;
                     }
-                    from = window;
-                    if (wnext == 0) {           /* very common case */
+                    from = window - OFF;
+                    if (write == 0) {           /* very common case */
                         from += wsize - op;
                         if (op < len) {         /* some from window */
                             len -= op;
                             do {
-                                *out++ = *from++;
+                                PUP(out) = PUP(from);
                             } while (--op);
                             from = out - dist;  /* rest from output */
                         }
                     }
-                    else if (wnext < op) {      /* wrap around window */
-                        from += wsize + wnext - op;
-                        op -= wnext;
+                    else if (write < op) {      /* wrap around window */
+                        from += wsize + write - op;
+                        op -= write;
                         if (op < len) {         /* some from end of window */
                             len -= op;
                             do {
-                                *out++ = *from++;
+                                PUP(out) = PUP(from);
                             } while (--op);
-                            from = window;
-                            if (wnext < len) {  /* some from start of window */
-                                op = wnext;
+                            from = window - OFF;
+                            if (write < len) {  /* some from start of window */
+                                op = write;
                                 len -= op;
                                 do {
-                                    *out++ = *from++;
+                                    PUP(out) = PUP(from);
                                 } while (--op);
                                 from = out - dist;      /* rest from output */
                             }
                         }
                     }
                     else {                      /* contiguous in window */
-                        from += wnext - op;
+                        from += write - op;
                         if (op < len) {         /* some from window */
                             len -= op;
                             do {
-                                *out++ = *from++;
+                                PUP(out) = PUP(from);
                             } while (--op);
                             from = out - dist;  /* rest from output */
                         }
                     }
                     while (len > 2) {
-                        *out++ = *from++;
-                        *out++ = *from++;
-                        *out++ = *from++;
+                        PUP(out) = PUP(from);
+                        PUP(out) = PUP(from);
+                        PUP(out) = PUP(from);
                         len -= 3;
                     }
                     if (len) {
-                        *out++ = *from++;
+                        PUP(out) = PUP(from);
                         if (len > 1)
-                            *out++ = *from++;
+                            PUP(out) = PUP(from);
                     }
                 }
                 else {
+		    unsigned short *sout;
+		    unsigned long loops;
+
                     from = out - dist;          /* copy direct from output */
-                    do {                        /* minimum length is three */
-                        *out++ = *from++;
-                        *out++ = *from++;
-                        *out++ = *from++;
-                        len -= 3;
-                    } while (len > 2);
-                    if (len) {
-                        *out++ = *from++;
-                        if (len > 1)
-                            *out++ = *from++;
-                    }
+                    /* minimum length is three */
+		    /* Align out addr */
+		    if (!((long)(out - 1 + OFF) & 1)) {
+			PUP(out) = PUP(from);
+			len--;
+		    }
+		    sout = (unsigned short *)(out - OFF);
+		    if (dist > 2 ) {
+			unsigned short *sfrom;
+
+			sfrom = (unsigned short *)(from - OFF);
+			loops = len >> 1;
+			do
+			    PUP(sout) = get_unaligned(++sfrom);
+			while (--loops);
+			out = (unsigned char *)sout + OFF;
+			from = (unsigned char *)sfrom + OFF;
+		    } else { /* dist == 1 or dist == 2 */
+			unsigned short pat16;
+
+			pat16 = *(sout-2+2*OFF);
+			if (dist == 1)
+#if defined(__BIG_ENDIAN)
+			    pat16 = (pat16 & 0xff) | ((pat16 & 0xff ) << 8);
+#elif defined(__LITTLE_ENDIAN)
+			    pat16 = (pat16 & 0xff00) | ((pat16 & 0xff00 ) >> 8);
+#else
+#error __BIG_ENDIAN nor __LITTLE_ENDIAN is defined
+#endif
+			loops = len >> 1;
+			do
+			    PUP(sout) = pat16;
+			while (--loops);
+			out = (unsigned char *)sout + OFF;
+		    }
+		    if (len & 1)
+			PUP(out) = PUP(from);
                 }
             }
             else if ((op & 64) == 0) {          /* 2nd level distance code */
-                here = dcode[here.val + (hold & ((1U << op) - 1))];
+                this = dcode[this.val + (hold & ((1U << op) - 1))];
                 goto dodist;
             }
             else {
@@ -261,7 +307,7 @@
             }
         }
         else if ((op & 64) == 0) {              /* 2nd level length code */
-            here = lcode[here.val + (hold & ((1U << op) - 1))];
+            this = lcode[this.val + (hold & ((1U << op) - 1))];
             goto dolen;
         }
         else if (op & 32) {                     /* end-of-block */
@@ -283,8 +329,8 @@
     hold &= (1U << bits) - 1;
 
     /* update state and return */
-    strm->next_in = in;
-    strm->next_out = out;
+    strm->next_in = in + OFF;
+    strm->next_out = out + OFF;
     strm->avail_in = (unsigned)(in < last ? 5 + (last - in) : 5 - (in - last));
     strm->avail_out = (unsigned)(out < end ?
                                  257 + (end - out) : 257 - (out - end));
@@ -297,7 +343,7 @@
    inflate_fast() speedups that turned out slower (on a PowerPC G3 750CXe):
    - Using bit fields for code structure
    - Different op definition to avoid & for extra bits (do & for table bits)
-   - Three separate decoding do-loops for direct, window, and wnext == 0
+   - Three separate decoding do-loops for direct, window, and write == 0
    - Special case for distance > 1 copies to do overlapped load and store copy
    - Explicit branch predictions (based on measured branch probabilities)
    - Deferring match copy and interspersed it with decoding subsequent codes
diff --git a/lib/zlib/inflate.c b/lib/zlib/inflate.c
index f7e81fc..8f767b7 100644
--- a/lib/zlib/inflate.c
+++ b/lib/zlib/inflate.c
@@ -21,7 +21,7 @@
     state->head = Z_NULL;
     state->wsize = 0;
     state->whave = 0;
-    state->wnext = 0;
+    state->write = 0;
     state->hold = 0;
     state->bits = 0;
     state->lencode = state->distcode = state->next = state->codes;
@@ -30,11 +30,14 @@
     return Z_OK;
 }
 
-int ZEXPORT inflateInit2_(z_streamp strm, int windowBits,
+int ZEXPORT inflateInit2_(z_streamp strm, int windowBits, const char *version,
 			  int stream_size)
 {
     struct inflate_state FAR *state;
 
+    if (version == Z_NULL || version[0] != ZLIB_VERSION[0] ||
+        stream_size != (int)(sizeof(z_stream)))
+        return Z_VERSION_ERROR;
     if (strm == Z_NULL) return Z_STREAM_ERROR;
     strm->msg = Z_NULL;                 /* in case we return an error */
     if (strm->zalloc == (alloc_func)0) {
@@ -67,9 +70,9 @@
     return inflateReset(strm);
 }
 
-int ZEXPORT inflateInit_(z_streamp strm, int stream_size)
+int ZEXPORT inflateInit_(z_streamp strm, const char *version, int stream_size)
 {
-    return inflateInit2_(strm, DEF_WBITS, stream_size);
+    return inflateInit2_(strm, DEF_WBITS, version, stream_size);
 }
 
 local void fixedtables(struct inflate_state FAR *state)
@@ -112,7 +115,7 @@
     /* if window not in use yet, initialize */
     if (state->wsize == 0) {
         state->wsize = 1U << state->wbits;
-        state->wnext = 0;
+        state->write = 0;
         state->whave = 0;
     }
 
@@ -120,22 +123,22 @@
     copy = out - strm->avail_out;
     if (copy >= state->wsize) {
         zmemcpy(state->window, strm->next_out - state->wsize, state->wsize);
-        state->wnext = 0;
+        state->write = 0;
         state->whave = state->wsize;
     }
     else {
-        dist = state->wsize - state->wnext;
+        dist = state->wsize - state->write;
         if (dist > copy) dist = copy;
-        zmemcpy(state->window + state->wnext, strm->next_out - copy, dist);
+        zmemcpy(state->window + state->write, strm->next_out - copy, dist);
         copy -= dist;
         if (copy) {
             zmemcpy(state->window, strm->next_out - copy, copy);
-            state->wnext = copy;
+            state->write = copy;
             state->whave = state->wsize;
         }
         else {
-            state->wnext += dist;
-            if (state->wnext == state->wsize) state->wnext = 0;
+            state->write += dist;
+            if (state->write == state->wsize) state->write = 0;
             if (state->whave < state->wsize) state->whave += dist;
         }
     }
@@ -820,12 +823,12 @@
             copy = out - left;
             if (state->offset > copy) {         /* copy from window */
                 copy = state->offset - copy;
-                if (copy > state->wnext) {
-                    copy -= state->wnext;
+                if (copy > state->write) {
+                    copy -= state->write;
                     from = state->window + (state->wsize - copy);
                 }
                 else
-                    from = state->window + (state->wnext - copy);
+                    from = state->window + (state->write - copy);
                 if (copy > state->length) copy = state->length;
             }
             else {                              /* copy from output */
diff --git a/lib/zlib/inflate.h b/lib/zlib/inflate.h
index 2657d61..07bd3e7 100644
--- a/lib/zlib/inflate.h
+++ b/lib/zlib/inflate.h
@@ -88,7 +88,7 @@
     unsigned wbits;             /* log base 2 of requested window size */
     unsigned wsize;             /* window size or zero if not using window */
     unsigned whave;             /* valid bytes in the window */
-    unsigned wnext;             /* window write index */
+    unsigned write;             /* window write index */
     unsigned char FAR *window;  /* allocated sliding window, if needed */
         /* bit accumulator */
     unsigned long hold;         /* input bit accumulator */
diff --git a/lib/zlib/zutil.c b/lib/zlib/zutil.c
index ec21b45..609aac5 100644
--- a/lib/zlib/zutil.c
+++ b/lib/zlib/zutil.c
@@ -21,6 +21,7 @@
 "data error",          /* Z_DATA_ERROR    (-3) */
 "insufficient memory", /* Z_MEM_ERROR     (-4) */
 "buffer error",        /* Z_BUF_ERROR     (-5) */
+"incompatible version",/* Z_VERSION_ERROR (-6) */
 ""};
 
 #ifdef DEBUG