summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MAINTAINERS2
-rw-r--r--arch/Kconfig1
-rw-r--r--arch/arm/cpu/armv8/fsl-layerscape/Kconfig1
-rw-r--r--arch/arm/include/asm/arch-sc5xx/sc5xx.h (renamed from arch/arm/include/asm/arch-adi/sc5xx/sc5xx.h)0
-rw-r--r--arch/arm/include/asm/arch-sc5xx/soc.h (renamed from arch/arm/include/asm/arch-adi/sc5xx/soc.h)0
-rw-r--r--arch/arm/include/asm/arch-sc5xx/spl.h (renamed from arch/arm/include/asm/arch-adi/sc5xx/spl.h)0
-rw-r--r--arch/arm/mach-sc5xx/Kconfig3
-rw-r--r--arch/arm/mach-sc5xx/init/clkinit.c2
-rw-r--r--arch/arm/mach-sc5xx/init/dmcinit.c2
-rw-r--r--arch/arm/mach-sc5xx/sc57x-spl.c2
-rw-r--r--arch/arm/mach-sc5xx/sc57x.c4
-rw-r--r--arch/arm/mach-sc5xx/sc58x-spl.c2
-rw-r--r--arch/arm/mach-sc5xx/sc58x.c4
-rw-r--r--arch/arm/mach-sc5xx/sc59x-spl.c2
-rw-r--r--arch/arm/mach-sc5xx/sc59x.c4
-rw-r--r--arch/arm/mach-sc5xx/sc59x_64-spl.c2
-rw-r--r--arch/arm/mach-sc5xx/sc59x_64.c4
-rw-r--r--arch/arm/mach-sc5xx/soc.c4
-rw-r--r--arch/arm/mach-sc5xx/spl.c4
-rw-r--r--arch/sandbox/Makefile2
-rw-r--r--arch/sandbox/cpu/Makefile45
-rw-r--r--arch/x86/cpu/broadwell/sdram.c2
-rw-r--r--arch/x86/cpu/ivybridge/early_me.c2
-rw-r--r--board/adi/carriers/somcrr_common.c2
-rw-r--r--board/adi/common-sc594-som/sc594-som.c4
-rw-r--r--board/adi/common-sc598-som/sc598-som.c4
-rw-r--r--board/adi/sc573-ezkit/sc573-ezkit.c4
-rw-r--r--board/adi/sc584-ezkit/sc584-ezkit.c4
-rw-r--r--board/adi/sc589-ezkit/sc589-ezkit.c4
-rw-r--r--board/adi/sc589-mini/sc589-mini.c4
-rw-r--r--board/liebherr/btt/btt.c2
-rw-r--r--board/liebherr/xea/xea.c2
-rw-r--r--boot/Kconfig4
-rw-r--r--cmd/Kconfig4
-rw-r--r--common/spl/Kconfig2
-rw-r--r--doc/develop/release_cycle.rst2
-rw-r--r--drivers/block/efi_blk.c2
-rw-r--r--drivers/clk/at91/compat.c4
-rw-r--r--drivers/clk/at91/sckc.c2
-rw-r--r--drivers/clk/meson/a1.c2
-rw-r--r--drivers/clk/meson/gxbb.c2
-rw-r--r--drivers/clk/nuvoton/clk_npcm7xx.c2
-rw-r--r--drivers/clk/nuvoton/clk_npcm8xx.c2
-rw-r--r--drivers/clk/stm32/clk-stm32mp13.c2
-rw-r--r--drivers/dma/ti/k3-udma.c2
-rw-r--r--drivers/i2c/tegra186_bpmp_i2c.c2
-rw-r--r--drivers/input/Kconfig6
-rw-r--r--drivers/mmc/bcm2835_sdhci.c2
-rw-r--r--drivers/mmc/fsl_esdhc_imx.c2
-rw-r--r--drivers/mmc/rockchip_sdhci.c2
-rw-r--r--drivers/net/calxedaxgmac.c2
-rw-r--r--drivers/net/dwc_eth_qos_adi.c2
-rw-r--r--drivers/net/dwc_eth_xgmac.c2
-rw-r--r--drivers/net/qe/dm_qe_uec_phy.c2
-rw-r--r--drivers/net/sni_netsec.c2
-rw-r--r--drivers/pinctrl/meson/pinctrl-meson-g12a.c2
-rw-r--r--drivers/pinctrl/tegra/pinctrl-tegra20.c4
-rw-r--r--drivers/reset/stm32/stm32-reset-mp1.c2
-rw-r--r--drivers/serial/ns16550.c3
-rw-r--r--drivers/serial/serial_omap.c2
-rw-r--r--drivers/spi/kirkwood_spi.c4
-rw-r--r--drivers/spi/mvebu_a3700_spi.c4
-rw-r--r--drivers/sysreset/sysreset_socfpga_soc64.c2
-rw-r--r--drivers/usb/dwc3/dwc3-meson-g12a.c2
-rw-r--r--drivers/usb/dwc3/dwc3-meson-gxl.c2
-rw-r--r--drivers/usb/host/ehci-exynos.c2
-rw-r--r--drivers/usb/host/ehci-msm.c2
-rw-r--r--drivers/usb/host/ehci-tegra.c2
-rw-r--r--drivers/usb/host/ehci-vf.c2
-rw-r--r--drivers/usb/host/ohci-da8xx.c2
-rw-r--r--drivers/usb/musb-new/pic32.c2
-rw-r--r--drivers/usb/musb-new/sc5xx.c2
-rw-r--r--drivers/usb/musb-new/sunxi.c2
-rw-r--r--drivers/video/rockchip/rk3288_mipi.c4
-rw-r--r--drivers/video/rockchip/rk3399_mipi.c4
-rw-r--r--drivers/watchdog/arm_smc_wdt.c2
-rw-r--r--dts/Kconfig4
-rw-r--r--env/Kconfig1
-rw-r--r--env/eeprom.c2
-rw-r--r--env/nvram.c2
-rw-r--r--env/onenand.c2
-rw-r--r--env/remote.c13
-rw-r--r--env/scsi.c4
-rw-r--r--env/ubi.c4
-rw-r--r--lib/Kconfig3
85 files changed, 122 insertions, 146 deletions
diff --git a/MAINTAINERS b/MAINTAINERS
index 6c596971ae4..78d84e701c6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -640,7 +640,7 @@ L: [email protected]
S: Supported
T: git https://github.com/analogdevicesinc/u-boot
F: arch/arm/dts/sc5*
-F: arch/arm/include/asm/arch-adi/
+F: arch/arm/include/asm/arch-sc5xx/
F: arch/arm/mach-sc5xx/
F: board/adi/
F: configs/sc5*
diff --git a/arch/Kconfig b/arch/Kconfig
index 4c4c070df87..e28e4c4bce7 100644
--- a/arch/Kconfig
+++ b/arch/Kconfig
@@ -306,6 +306,7 @@ config X86
select DM
select HAVE_ARCH_IOMAP
select HAVE_PRIVATE_LIBGCC
+ select LMB_ARCH_MEM_MAP
select OF_CONTROL
select PCI
select SUPPORT_ACPI
diff --git a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
index 20883fe6825..4c5b38e3b65 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
+++ b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
@@ -382,6 +382,7 @@ menu "Layerscape architecture"
config FSL_LAYERSCAPE
bool
select ARM_SMCCC
+ select LMB_ARCH_MEM_MAP
config HAS_FEATURE_GIC64K_ALIGN
bool
diff --git a/arch/arm/include/asm/arch-adi/sc5xx/sc5xx.h b/arch/arm/include/asm/arch-sc5xx/sc5xx.h
index c80de67d7ae..c80de67d7ae 100644
--- a/arch/arm/include/asm/arch-adi/sc5xx/sc5xx.h
+++ b/arch/arm/include/asm/arch-sc5xx/sc5xx.h
diff --git a/arch/arm/include/asm/arch-adi/sc5xx/soc.h b/arch/arm/include/asm/arch-sc5xx/soc.h
index 065d272acab..065d272acab 100644
--- a/arch/arm/include/asm/arch-adi/sc5xx/soc.h
+++ b/arch/arm/include/asm/arch-sc5xx/soc.h
diff --git a/arch/arm/include/asm/arch-adi/sc5xx/spl.h b/arch/arm/include/asm/arch-sc5xx/spl.h
index 077667daa10..077667daa10 100644
--- a/arch/arm/include/asm/arch-adi/sc5xx/spl.h
+++ b/arch/arm/include/asm/arch-sc5xx/spl.h
diff --git a/arch/arm/mach-sc5xx/Kconfig b/arch/arm/mach-sc5xx/Kconfig
index 774c69091ee..cfa7ed46a82 100644
--- a/arch/arm/mach-sc5xx/Kconfig
+++ b/arch/arm/mach-sc5xx/Kconfig
@@ -13,6 +13,9 @@ if ARCH_SC5XX
config SYS_VENDOR
default "adi"
+config SYS_SOC
+ default "sc5xx"
+
choice
prompt "SC5xx SoC Select"
help
diff --git a/arch/arm/mach-sc5xx/init/clkinit.c b/arch/arm/mach-sc5xx/init/clkinit.c
index 3dcba33bd1b..f9c83c6efac 100644
--- a/arch/arm/mach-sc5xx/init/clkinit.c
+++ b/arch/arm/mach-sc5xx/init/clkinit.c
@@ -6,7 +6,7 @@
*
*/
-#include <asm/arch-adi/sc5xx/sc5xx.h>
+#include <asm/arch/sc5xx.h>
#include <asm/io.h>
#include <linux/types.h>
#include "clkinit.h"
diff --git a/arch/arm/mach-sc5xx/init/dmcinit.c b/arch/arm/mach-sc5xx/init/dmcinit.c
index 2bf2cc53a9f..12052613feb 100644
--- a/arch/arm/mach-sc5xx/init/dmcinit.c
+++ b/arch/arm/mach-sc5xx/init/dmcinit.c
@@ -7,7 +7,7 @@
*/
#include <asm/io.h>
-#include <asm/arch-adi/sc5xx/sc5xx.h>
+#include <asm/arch/sc5xx.h>
#include <linux/types.h>
#include "clkinit.h"
#include "dmcinit.h"
diff --git a/arch/arm/mach-sc5xx/sc57x-spl.c b/arch/arm/mach-sc5xx/sc57x-spl.c
index 28380b89b48..6084493cf4f 100644
--- a/arch/arm/mach-sc5xx/sc57x-spl.c
+++ b/arch/arm/mach-sc5xx/sc57x-spl.c
@@ -3,7 +3,7 @@
* (C) Copyright 2024 - Analog Devices, Inc.
*/
-#include <asm/arch-adi/sc5xx/spl.h>
+#include <asm/arch/spl.h>
// Table 45-16 in SC573 HRM
const struct adi_boot_args adi_rom_boot_args[] = {
diff --git a/arch/arm/mach-sc5xx/sc57x.c b/arch/arm/mach-sc5xx/sc57x.c
index 02b04cd1b2f..7e58e92b188 100644
--- a/arch/arm/mach-sc5xx/sc57x.c
+++ b/arch/arm/mach-sc5xx/sc57x.c
@@ -7,8 +7,8 @@
*/
#include <asm/io.h>
-#include <asm/arch-adi/sc5xx/sc5xx.h>
-#include <asm/arch-adi/sc5xx/spl.h>
+#include <asm/arch/sc5xx.h>
+#include <asm/arch/spl.h>
#define REG_SPU0_SECUREC0 0x3108B980
#define REG_PADS0_PCFG0 0x31004404
diff --git a/arch/arm/mach-sc5xx/sc58x-spl.c b/arch/arm/mach-sc5xx/sc58x-spl.c
index ae809f09e55..2582e38ce12 100644
--- a/arch/arm/mach-sc5xx/sc58x-spl.c
+++ b/arch/arm/mach-sc5xx/sc58x-spl.c
@@ -3,7 +3,7 @@
* (C) Copyright 2024 - Analog Devices, Inc.
*/
-#include <asm/arch-adi/sc5xx/spl.h>
+#include <asm/arch/spl.h>
// Table 53-13 in SC58x HRM
const struct adi_boot_args adi_rom_boot_args[] = {
diff --git a/arch/arm/mach-sc5xx/sc58x.c b/arch/arm/mach-sc5xx/sc58x.c
index c981cafd986..dc11df683a8 100644
--- a/arch/arm/mach-sc5xx/sc58x.c
+++ b/arch/arm/mach-sc5xx/sc58x.c
@@ -7,8 +7,8 @@
*/
#include <asm/io.h>
-#include <asm/arch-adi/sc5xx/sc5xx.h>
-#include <asm/arch-adi/sc5xx/spl.h>
+#include <asm/arch/sc5xx.h>
+#include <asm/arch/spl.h>
#define REG_SPU0_SECUREC0 0x3108C980
#define REG_PADS0_PCFG0 0x31004404
diff --git a/arch/arm/mach-sc5xx/sc59x-spl.c b/arch/arm/mach-sc5xx/sc59x-spl.c
index c8fc25fe7c4..883bdb3c772 100644
--- a/arch/arm/mach-sc5xx/sc59x-spl.c
+++ b/arch/arm/mach-sc5xx/sc59x-spl.c
@@ -3,7 +3,7 @@
* (C) Copyright 2024 - Analog Devices, Inc.
*/
-#include <asm/arch-adi/sc5xx/spl.h>
+#include <asm/arch/spl.h>
// Table 45-14 in sc594 HRM
const struct adi_boot_args adi_rom_boot_args[] = {
diff --git a/arch/arm/mach-sc5xx/sc59x.c b/arch/arm/mach-sc5xx/sc59x.c
index 675f8c7d69a..286f6d52eef 100644
--- a/arch/arm/mach-sc5xx/sc59x.c
+++ b/arch/arm/mach-sc5xx/sc59x.c
@@ -7,8 +7,8 @@
*/
#include <asm/io.h>
-#include <asm/arch-adi/sc5xx/sc5xx.h>
-#include <asm/arch-adi/sc5xx/spl.h>
+#include <asm/arch/sc5xx.h>
+#include <asm/arch/spl.h>
#define REG_SPU0_SECUREC0 0x3108B980
#define REG_PADS0_PCFG0 0x31004604
diff --git a/arch/arm/mach-sc5xx/sc59x_64-spl.c b/arch/arm/mach-sc5xx/sc59x_64-spl.c
index 3992538133d..500824b5bb9 100644
--- a/arch/arm/mach-sc5xx/sc59x_64-spl.c
+++ b/arch/arm/mach-sc5xx/sc59x_64-spl.c
@@ -3,7 +3,7 @@
* (C) Copyright 2024 - Analog Devices, Inc.
*/
-#include <asm/arch-adi/sc5xx/spl.h>
+#include <asm/arch/spl.h>
// Table 47-14 in SC598 hardware reference manual
const struct adi_boot_args adi_rom_boot_args[] = {
diff --git a/arch/arm/mach-sc5xx/sc59x_64.c b/arch/arm/mach-sc5xx/sc59x_64.c
index a8402075d0a..b9694a48e87 100644
--- a/arch/arm/mach-sc5xx/sc59x_64.c
+++ b/arch/arm/mach-sc5xx/sc59x_64.c
@@ -8,8 +8,8 @@
#include <asm/io.h>
#include <asm/armv8/mmu.h>
-#include <asm/arch-adi/sc5xx/sc5xx.h>
-#include <asm/arch-adi/sc5xx/spl.h>
+#include <asm/arch/sc5xx.h>
+#include <asm/arch/spl.h>
#define REG_TSGENWR0_CNTCR 0x310AE000
#define REG_PADS0_PCFG0 0x31004604
diff --git a/arch/arm/mach-sc5xx/soc.c b/arch/arm/mach-sc5xx/soc.c
index cf8ff0dc3af..09978a5cf44 100644
--- a/arch/arm/mach-sc5xx/soc.c
+++ b/arch/arm/mach-sc5xx/soc.c
@@ -6,8 +6,8 @@
*
*/
-#include <asm/arch-adi/sc5xx/sc5xx.h>
-#include <asm/arch-adi/sc5xx/soc.h>
+#include <asm/arch/sc5xx.h>
+#include <asm/arch/soc.h>
#include <asm/global_data.h>
#include <asm/io.h>
#include <cpu_func.h>
diff --git a/arch/arm/mach-sc5xx/spl.c b/arch/arm/mach-sc5xx/spl.c
index c529829420d..94e4a08fa32 100644
--- a/arch/arm/mach-sc5xx/spl.c
+++ b/arch/arm/mach-sc5xx/spl.c
@@ -7,8 +7,8 @@
*/
#include <spl.h>
-#include <asm/arch-adi/sc5xx/sc5xx.h>
-#include <asm/arch-adi/sc5xx/spl.h>
+#include <asm/arch/sc5xx.h>
+#include <asm/arch/spl.h>
#include "init/clkinit.h"
#include "init/dmcinit.h"
diff --git a/arch/sandbox/Makefile b/arch/sandbox/Makefile
index a335f8acfde..5bbf9f1f96b 100644
--- a/arch/sandbox/Makefile
+++ b/arch/sandbox/Makefile
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: GPL-2.0+
-head-y := arch/sandbox/cpu/start.o arch/sandbox/cpu/os.o
+head-y := arch/sandbox/cpu/start.o
head-$(CONFIG_SANDBOX_SDL) += arch/sandbox/cpu/sdl.o
libs-y += arch/sandbox/cpu/
libs-y += arch/sandbox/lib/
diff --git a/arch/sandbox/cpu/Makefile b/arch/sandbox/cpu/Makefile
index 038ad78accc..ee3c04c49e1 100644
--- a/arch/sandbox/cpu/Makefile
+++ b/arch/sandbox/cpu/Makefile
@@ -5,42 +5,29 @@
# (C) Copyright 2000-2003
# Wolfgang Denk, DENX Software Engineering, [email protected].
-obj-y := cache.o cpu.o state.o initjmp.o
-extra-y := start.o os.o
+obj-y := cache.o cpu.o state.o initjmp.o os.o
+extra-y := start.o
extra-$(CONFIG_SANDBOX_SDL) += sdl.o
obj-$(CONFIG_XPL_BUILD) += spl.o
obj-$(CONFIG_ETH_SANDBOX_RAW) += eth-raw-os.o
-# os.c is build in the system environment, so needs standard includes
-# CFLAGS_REMOVE_os.o cannot be used to drop header include path
-quiet_cmd_cc_os.o = CC $(quiet_modtag) $@
-cmd_cc_os.o = $(CC) $(filter-out -nostdinc, \
- $(patsubst -I%,-idirafter%,$(c_flags))) -c -o $@ $<
+# These files need to be built with system headers, since they use system
+# calls or system-level interfaces. Generate a custom compile rule for each
+# one that drops -nostdinc and converts -I to -idirafter.
+CFLAGS_USE_SYSHDRS := eth-raw-os.o initjmp.o os.o sdl.o
-$(obj)/os.o: $(src)/os.c FORCE
- $(call if_changed_dep,cc_os.o)
+define syshdrs_rule
+quiet_cmd_cc_$(1) = CC $$(quiet_modtag) $$@
+cmd_cc_$(1) = $$(CC) $$(filter-out -nostdinc, \
+ $$(patsubst -I%,-idirafter%,$$(c_flags))) -c -o $$@ $$<
-# eth-raw-os.c is built in the system env, so needs standard includes
-# CFLAGS_REMOVE_eth-raw-os.o cannot be used to drop header include path
-quiet_cmd_cc_eth-raw-os.o = CC $(quiet_modtag) $@
-cmd_cc_eth-raw-os.o = $(CC) $(filter-out -nostdinc, \
- $(patsubst -I%,-idirafter%,$(c_flags))) -c -o $@ $<
+$$(obj)/$(1): $$(src)/$(1:.o=.c) FORCE
+ $$(call if_changed_dep,cc_$(1))
+endef
-$(obj)/eth-raw-os.o: $(src)/eth-raw-os.c FORCE
- $(call if_changed_dep,cc_eth-raw-os.o)
+$(foreach f,$(CFLAGS_USE_SYSHDRS),$(eval $(call syshdrs_rule,$(f))))
-# initjmp.c is build in the system environment, so needs standard includes
-# CFLAGS_REMOVE_initjmp.o cannot be used to drop header include path
-quiet_cmd_cc_initjmp.o = CC $(quiet_modtag) $@
-cmd_cc_initjmp.o = $(CC) $(filter-out -nostdinc, \
- $(patsubst -I%,-idirafter%,$(c_flags))) -c -o $@ $<
-
-$(obj)/initjmp.o: $(src)/initjmp.c FORCE
- $(call if_changed_dep,cc_initjmp.o)
-
-# sdl.c fails to build with -fshort-wchar using musl
+# sdl.c also needs -fshort-wchar removed (musl) and -fno-lto, so override
+# the generated rule
cmd_cc_sdl.o = $(CC) $(filter-out -nostdinc -fshort-wchar, \
$(patsubst -I%,-idirafter%,$(c_flags))) -fno-lto -c -o $@ $<
-
-$(obj)/sdl.o: $(src)/sdl.c FORCE
- $(call if_changed_dep,cc_sdl.o)
diff --git a/arch/x86/cpu/broadwell/sdram.c b/arch/x86/cpu/broadwell/sdram.c
index cd534a17cf1..1ba7f403c8a 100644
--- a/arch/x86/cpu/broadwell/sdram.c
+++ b/arch/x86/cpu/broadwell/sdram.c
@@ -205,7 +205,7 @@ static const struct udevice_id broadwell_syscon_ids[] = {
{ }
};
-U_BOOT_DRIVER(syscon_intel_me) = {
+U_BOOT_DRIVER(syscon_intel_me_broadwell) = {
.name = "intel_me_syscon",
.id = UCLASS_SYSCON,
.of_match = broadwell_syscon_ids,
diff --git a/arch/x86/cpu/ivybridge/early_me.c b/arch/x86/cpu/ivybridge/early_me.c
index ac868025f8e..ca73fc21262 100644
--- a/arch/x86/cpu/ivybridge/early_me.c
+++ b/arch/x86/cpu/ivybridge/early_me.c
@@ -166,7 +166,7 @@ static const struct udevice_id ivybridge_syscon_ids[] = {
{ }
};
-U_BOOT_DRIVER(syscon_intel_me) = {
+U_BOOT_DRIVER(syscon_intel_me_ivybridge) = {
.name = "intel_me_syscon",
.id = UCLASS_SYSCON,
.of_match = ivybridge_syscon_ids,
diff --git a/board/adi/carriers/somcrr_common.c b/board/adi/carriers/somcrr_common.c
index 34ae48f31d2..7bd890d6e70 100644
--- a/board/adi/carriers/somcrr_common.c
+++ b/board/adi/carriers/somcrr_common.c
@@ -3,7 +3,7 @@
* (C) Copyright 2025 - Analog Devices, Inc.
*/
-#include <asm/arch-adi/sc5xx/sc5xx.h>
+#include <asm/arch/sc5xx.h>
#include <linux/delay.h>
#include "somcrr.h"
diff --git a/board/adi/common-sc594-som/sc594-som.c b/board/adi/common-sc594-som/sc594-som.c
index aab729fc761..37817c4b062 100644
--- a/board/adi/common-sc594-som/sc594-som.c
+++ b/board/adi/common-sc594-som/sc594-som.c
@@ -6,8 +6,8 @@
#include <config.h>
#include <phy.h>
#include <asm/u-boot.h>
-#include <asm/arch-adi/sc5xx/sc5xx.h>
-#include <asm/arch-adi/sc5xx/soc.h>
+#include <asm/arch/sc5xx.h>
+#include <asm/arch/soc.h>
#include "../carriers/somcrr.h"
diff --git a/board/adi/common-sc598-som/sc598-som.c b/board/adi/common-sc598-som/sc598-som.c
index 96b73520e66..0e1ee828956 100644
--- a/board/adi/common-sc598-som/sc598-som.c
+++ b/board/adi/common-sc598-som/sc598-som.c
@@ -6,8 +6,8 @@
#include <config.h>
#include <phy.h>
#include <asm/u-boot.h>
-#include <asm/arch-adi/sc5xx/sc5xx.h>
-#include <asm/arch-adi/sc5xx/soc.h>
+#include <asm/arch/sc5xx.h>
+#include <asm/arch/soc.h>
#include <asm/armv8/mmu.h>
#include "../carriers/somcrr.h"
diff --git a/board/adi/sc573-ezkit/sc573-ezkit.c b/board/adi/sc573-ezkit/sc573-ezkit.c
index 288c2670761..464142b27a5 100644
--- a/board/adi/sc573-ezkit/sc573-ezkit.c
+++ b/board/adi/sc573-ezkit/sc573-ezkit.c
@@ -5,8 +5,8 @@
#include <phy.h>
#include <asm/u-boot.h>
-#include <asm/arch-adi/sc5xx/sc5xx.h>
-#include <asm/arch-adi/sc5xx/soc.h>
+#include <asm/arch/sc5xx.h>
+#include <asm/arch/soc.h>
int board_phy_config(struct phy_device *phydev)
{
diff --git a/board/adi/sc584-ezkit/sc584-ezkit.c b/board/adi/sc584-ezkit/sc584-ezkit.c
index 288c2670761..464142b27a5 100644
--- a/board/adi/sc584-ezkit/sc584-ezkit.c
+++ b/board/adi/sc584-ezkit/sc584-ezkit.c
@@ -5,8 +5,8 @@
#include <phy.h>
#include <asm/u-boot.h>
-#include <asm/arch-adi/sc5xx/sc5xx.h>
-#include <asm/arch-adi/sc5xx/soc.h>
+#include <asm/arch/sc5xx.h>
+#include <asm/arch/soc.h>
int board_phy_config(struct phy_device *phydev)
{
diff --git a/board/adi/sc589-ezkit/sc589-ezkit.c b/board/adi/sc589-ezkit/sc589-ezkit.c
index 288c2670761..464142b27a5 100644
--- a/board/adi/sc589-ezkit/sc589-ezkit.c
+++ b/board/adi/sc589-ezkit/sc589-ezkit.c
@@ -5,8 +5,8 @@
#include <phy.h>
#include <asm/u-boot.h>
-#include <asm/arch-adi/sc5xx/sc5xx.h>
-#include <asm/arch-adi/sc5xx/soc.h>
+#include <asm/arch/sc5xx.h>
+#include <asm/arch/soc.h>
int board_phy_config(struct phy_device *phydev)
{
diff --git a/board/adi/sc589-mini/sc589-mini.c b/board/adi/sc589-mini/sc589-mini.c
index 288c2670761..464142b27a5 100644
--- a/board/adi/sc589-mini/sc589-mini.c
+++ b/board/adi/sc589-mini/sc589-mini.c
@@ -5,8 +5,8 @@
#include <phy.h>
#include <asm/u-boot.h>
-#include <asm/arch-adi/sc5xx/sc5xx.h>
-#include <asm/arch-adi/sc5xx/soc.h>
+#include <asm/arch/sc5xx.h>
+#include <asm/arch/soc.h>
int board_phy_config(struct phy_device *phydev)
{
diff --git a/board/liebherr/btt/btt.c b/board/liebherr/btt/btt.c
index dc683bd082a..e1ff041c54f 100644
--- a/board/liebherr/btt/btt.c
+++ b/board/liebherr/btt/btt.c
@@ -421,7 +421,7 @@ static const struct udevice_id imx28_clk_ids[] = {
{ }
};
-U_BOOT_DRIVER(fsl_imx28_clkctrl) = {
+U_BOOT_DRIVER(btt_dummy_fsl_imx28_clkctrl) = {
.name = "fsl_imx28_clkctrl",
.id = UCLASS_CLK,
.of_match = imx28_clk_ids,
diff --git a/board/liebherr/xea/xea.c b/board/liebherr/xea/xea.c
index 9630e7f576b..a277163683c 100644
--- a/board/liebherr/xea/xea.c
+++ b/board/liebherr/xea/xea.c
@@ -351,7 +351,7 @@ static const struct udevice_id imx28_clk_ids[] = {
{ }
};
-U_BOOT_DRIVER(fsl_imx28_clkctrl) = {
+U_BOOT_DRIVER(xea_dummy_fsl_imx28_clkctrl) = {
.name = "fsl_imx28_clkctrl",
.id = UCLASS_CLK,
.of_match = imx28_clk_ids,
diff --git a/boot/Kconfig b/boot/Kconfig
index 982687621bd..be6bb6d4535 100644
--- a/boot/Kconfig
+++ b/boot/Kconfig
@@ -434,8 +434,8 @@ config BOOT_DEFAULTS_CMDS
select CMD_DHCP if CMD_NET && !NO_NET
select CMD_PING if CMD_NET && !NO_NET
select CMD_PXE if CMD_NET && !NO_NET
- select CMD_BOOTI if ARM64
- select CMD_BOOTZ if ARM && !ARM64
+ select CMD_BOOTI if ARM64 && LMB
+ select CMD_BOOTZ if ARM && !ARM64 && LMB
imply CMD_MII if CMD_NET && !NO_NET
config BOOT_DEFAULTS
diff --git a/cmd/Kconfig b/cmd/Kconfig
index f47ce7f45ce..7bbeaad04ff 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -292,6 +292,7 @@ menu "Boot commands"
config CMD_BOOTD
bool "bootd"
+ depends on CMD_BOOTM
default y
help
Run the command stored in the environment "bootcmd", i.e.
@@ -717,6 +718,7 @@ config CMD_GREPENV
config CMD_SAVEENV
bool "saveenv"
+ depends on !(SRIO_PCIE_BOOT_SLAVE && ENV_IS_IN_REMOTE)
default y
help
Save all environment variables into the compiled-in persistent
@@ -1393,7 +1395,7 @@ config CMD_I3C
and perform read and write on the connected i3c devices.
config CMD_W1
- depends on W1
+ depends on W1 && W1_EEPROM
default y if W1
bool "w1 - Support for Dallas 1-Wire protocol"
help
diff --git a/common/spl/Kconfig b/common/spl/Kconfig
index d1a85f50209..57b2bef5e54 100644
--- a/common/spl/Kconfig
+++ b/common/spl/Kconfig
@@ -729,7 +729,7 @@ config SPL_ENV_SUPPORT
config SPL_SAVEENV
bool "Support save environment"
depends on SPL_ENV_SUPPORT
- select SPL_MMC_WRITE if ENV_IS_IN_MMC
+ select SPL_MMC_WRITE if SPL_ENV_IS_IN_MMC
help
Enable save environment support in SPL after setenv. By default
the saveenv option is not provided in SPL, but some boards need
diff --git a/doc/develop/release_cycle.rst b/doc/develop/release_cycle.rst
index 8f5496f477e..69678f2897a 100644
--- a/doc/develop/release_cycle.rst
+++ b/doc/develop/release_cycle.rst
@@ -97,7 +97,7 @@ Note: these statistics are generated by our fork of `gitdm
<https://source.denx.de/u-boot/gitdm>`_, which was originally created by
Jonathan Corbet.
-* :doc:`statistics/u-boot-stats-v2026.01` which was released on 06 April 2026.
+* :doc:`statistics/u-boot-stats-v2026.04` which was released on 06 April 2026.
* :doc:`statistics/u-boot-stats-v2026.01` which was released on 05 January 2026.
diff --git a/drivers/block/efi_blk.c b/drivers/block/efi_blk.c
index f3ae70290e7..a1714c41d00 100644
--- a/drivers/block/efi_blk.c
+++ b/drivers/block/efi_blk.c
@@ -79,7 +79,7 @@ static const struct blk_ops efi_blk_ops = {
.write = efi_bl_write,
};
-U_BOOT_DRIVER(efi_block) = {
+U_BOOT_DRIVER(efi_media_block) = {
.name = "efi_block",
.id = UCLASS_BLK,
.ops = &efi_blk_ops,
diff --git a/drivers/clk/at91/compat.c b/drivers/clk/at91/compat.c
index 1d738f160b6..2449ac9fae6 100644
--- a/drivers/clk/at91/compat.c
+++ b/drivers/clk/at91/compat.c
@@ -136,7 +136,7 @@ static const struct udevice_id at91_sckc_match[] = {
{}
};
-U_BOOT_DRIVER(at91_sckc) = {
+U_BOOT_DRIVER(at91sam9x5_sckc) = {
.name = "at91-sckc",
.id = UCLASS_SIMPLE_BUS,
.of_match = at91_sckc_match,
@@ -368,7 +368,7 @@ static const struct udevice_id at91_system_clk_match[] = {
{}
};
-U_BOOT_DRIVER(at91_system_clk) = {
+U_BOOT_DRIVER(at91rm9200_system_clk) = {
.name = "at91-system-clk",
.id = UCLASS_MISC,
.of_match = at91_system_clk_match,
diff --git a/drivers/clk/at91/sckc.c b/drivers/clk/at91/sckc.c
index 3fde8ea7138..dcaffd360fd 100644
--- a/drivers/clk/at91/sckc.c
+++ b/drivers/clk/at91/sckc.c
@@ -162,7 +162,7 @@ static const struct udevice_id sam9x60_sckc_ids[] = {
{ /* Sentinel. */ },
};
-U_BOOT_DRIVER(at91_sckc) = {
+U_BOOT_DRIVER(sam9x60_sckc) = {
.name = UBOOT_DM_CLK_AT91_SCKC,
.id = UCLASS_CLK,
.of_match = sam9x60_sckc_ids,
diff --git a/drivers/clk/meson/a1.c b/drivers/clk/meson/a1.c
index a1b8d791491..669247a9a09 100644
--- a/drivers/clk/meson/a1.c
+++ b/drivers/clk/meson/a1.c
@@ -712,7 +712,7 @@ static struct clk_ops meson_clk_ops = {
#endif
};
-U_BOOT_DRIVER(meson_clk) = {
+U_BOOT_DRIVER(meson_clk_a1) = {
.name = "meson-clk-a1",
.id = UCLASS_CLK,
.of_match = meson_clk_ids,
diff --git a/drivers/clk/meson/gxbb.c b/drivers/clk/meson/gxbb.c
index 51f124869c9..218be45c2cb 100644
--- a/drivers/clk/meson/gxbb.c
+++ b/drivers/clk/meson/gxbb.c
@@ -962,7 +962,7 @@ static const struct udevice_id meson_clk_ids[] = {
{ }
};
-U_BOOT_DRIVER(meson_clk) = {
+U_BOOT_DRIVER(meson_clk_gxbb) = {
.name = "meson_clk",
.id = UCLASS_CLK,
.of_match = meson_clk_ids,
diff --git a/drivers/clk/nuvoton/clk_npcm7xx.c b/drivers/clk/nuvoton/clk_npcm7xx.c
index b23dd37af6c..4c787823d05 100644
--- a/drivers/clk/nuvoton/clk_npcm7xx.c
+++ b/drivers/clk/nuvoton/clk_npcm7xx.c
@@ -84,7 +84,7 @@ static const struct udevice_id npcm7xx_clk_ids[] = {
{ }
};
-U_BOOT_DRIVER(clk_npcm) = {
+U_BOOT_DRIVER(clk_npcm750) = {
.name = "clk_npcm",
.id = UCLASS_CLK,
.of_match = npcm7xx_clk_ids,
diff --git a/drivers/clk/nuvoton/clk_npcm8xx.c b/drivers/clk/nuvoton/clk_npcm8xx.c
index d1b32e32371..c7a510f5c25 100644
--- a/drivers/clk/nuvoton/clk_npcm8xx.c
+++ b/drivers/clk/nuvoton/clk_npcm8xx.c
@@ -87,7 +87,7 @@ static const struct udevice_id npcm8xx_clk_ids[] = {
{ }
};
-U_BOOT_DRIVER(clk_npcm) = {
+U_BOOT_DRIVER(clk_npcm845) = {
.name = "clk_npcm",
.id = UCLASS_CLK,
.of_match = npcm8xx_clk_ids,
diff --git a/drivers/clk/stm32/clk-stm32mp13.c b/drivers/clk/stm32/clk-stm32mp13.c
index 39ec06a9556..5e88cf63e20 100644
--- a/drivers/clk/stm32/clk-stm32mp13.c
+++ b/drivers/clk/stm32/clk-stm32mp13.c
@@ -2193,7 +2193,7 @@ static int stm32mp1_clk_probe(struct udevice *dev)
return 0;
}
-U_BOOT_DRIVER(stm32mp1_clock) = {
+U_BOOT_DRIVER(stm32mp13_clock) = {
.name = "stm32mp13_clk",
.id = UCLASS_CLK,
.ops = &stm32_clk_ops,
diff --git a/drivers/dma/ti/k3-udma.c b/drivers/dma/ti/k3-udma.c
index 01824310995..5b440bb38b8 100644
--- a/drivers/dma/ti/k3-udma.c
+++ b/drivers/dma/ti/k3-udma.c
@@ -2866,7 +2866,7 @@ static const struct udevice_id udma_ids[] = {
{ /* Sentinel */ },
};
-U_BOOT_DRIVER(ti_edma3) = {
+U_BOOT_DRIVER(ti_udma) = {
.name = "ti-udma",
.id = UCLASS_DMA,
.of_match = udma_ids,
diff --git a/drivers/i2c/tegra186_bpmp_i2c.c b/drivers/i2c/tegra186_bpmp_i2c.c
index d30eb523122..b76ef016cda 100644
--- a/drivers/i2c/tegra186_bpmp_i2c.c
+++ b/drivers/i2c/tegra186_bpmp_i2c.c
@@ -117,7 +117,7 @@ static const struct udevice_id tegra186_bpmp_i2c_ids[] = {
{ }
};
-U_BOOT_DRIVER(i2c_gpio) = {
+U_BOOT_DRIVER(tegra186_bpmp_i2c) = {
.name = "tegra186_bpmp_i2c",
.id = UCLASS_I2C,
.of_match = tegra186_bpmp_i2c_ids,
diff --git a/drivers/input/Kconfig b/drivers/input/Kconfig
index 5bf122c5505..df8fbf1551d 100644
--- a/drivers/input/Kconfig
+++ b/drivers/input/Kconfig
@@ -64,7 +64,7 @@ config CPCAP_POWER_BUTTON
config CROS_EC_KEYB
bool "Enable Chrome OS EC keyboard support"
- depends on INPUT
+ depends on INPUT && CROS_EC
help
Most ARM Chromebooks use an EC to provide access to the keyboard.
Messages are used to request key scans from the EC and these are
@@ -72,7 +72,7 @@ config CROS_EC_KEYB
config SPL_CROS_EC_KEYB
bool "Enable Chrome OS EC keyboard support in SPL"
- depends on SPL_INPUT
+ depends on SPL_INPUT && SPL_CROS_EC
help
Most ARM Chromebooks use an EC to provide access to the keyboard.
Messages are used to request key scans from the EC and these are
@@ -80,7 +80,7 @@ config SPL_CROS_EC_KEYB
config TPL_CROS_EC_KEYB
bool "Enable Chrome OS EC keyboard support in TPL"
- depends on TPL_INPUT
+ depends on TPL_INPUT && TPL_CROS_EC
help
Most ARM Chromebooks use an EC to provide access to the keyboard.
Messages are used to request key scans from the EC and these are
diff --git a/drivers/mmc/bcm2835_sdhci.c b/drivers/mmc/bcm2835_sdhci.c
index 598a51d914a..655d9902dfa 100644
--- a/drivers/mmc/bcm2835_sdhci.c
+++ b/drivers/mmc/bcm2835_sdhci.c
@@ -243,7 +243,7 @@ static const struct udevice_id bcm2835_sdhci_match[] = {
{ /* sentinel */ }
};
-U_BOOT_DRIVER(sdhci_cdns) = {
+U_BOOT_DRIVER(sdhci_bcm2835) = {
.name = "sdhci-bcm2835",
.id = UCLASS_MMC,
.of_match = bcm2835_sdhci_match,
diff --git a/drivers/mmc/fsl_esdhc_imx.c b/drivers/mmc/fsl_esdhc_imx.c
index 335b44a8a1a..87125493c0d 100644
--- a/drivers/mmc/fsl_esdhc_imx.c
+++ b/drivers/mmc/fsl_esdhc_imx.c
@@ -1686,7 +1686,7 @@ static int fsl_esdhc_bind(struct udevice *dev)
return mmc_bind(dev, &plat->mmc, &plat->cfg);
}
-U_BOOT_DRIVER(fsl_esdhc) = {
+U_BOOT_DRIVER(fsl_esdhc_imx) = {
.name = "fsl_esdhc",
.id = UCLASS_MMC,
.of_match = fsl_esdhc_ids,
diff --git a/drivers/mmc/rockchip_sdhci.c b/drivers/mmc/rockchip_sdhci.c
index 8116e464278..b685da8643c 100644
--- a/drivers/mmc/rockchip_sdhci.c
+++ b/drivers/mmc/rockchip_sdhci.c
@@ -745,7 +745,7 @@ static const struct udevice_id sdhci_ids[] = {
{ }
};
-U_BOOT_DRIVER(arasan_sdhci_drv) = {
+U_BOOT_DRIVER(rockchip_sdhci_5_1_drv) = {
.name = "rockchip_sdhci_5_1",
.id = UCLASS_MMC,
.of_match = sdhci_ids,
diff --git a/drivers/net/calxedaxgmac.c b/drivers/net/calxedaxgmac.c
index ebb399457fb..92990fa6d47 100644
--- a/drivers/net/calxedaxgmac.c
+++ b/drivers/net/calxedaxgmac.c
@@ -597,7 +597,7 @@ static const struct udevice_id xgmac_eth_ids[] = {
{ }
};
-U_BOOT_DRIVER(eth_xgmac) = {
+U_BOOT_DRIVER(calxeda_hb_xgmac) = {
.name = "eth_xgmac",
.id = UCLASS_ETH,
.of_match = xgmac_eth_ids,
diff --git a/drivers/net/dwc_eth_qos_adi.c b/drivers/net/dwc_eth_qos_adi.c
index b578225eaad..37db8525b48 100644
--- a/drivers/net/dwc_eth_qos_adi.c
+++ b/drivers/net/dwc_eth_qos_adi.c
@@ -15,7 +15,7 @@
#include <reset.h>
#include <linux/io.h>
-#include <asm/arch-adi/sc5xx/sc5xx.h>
+#include <asm/arch/sc5xx.h>
#include "dwc_eth_qos.h"
diff --git a/drivers/net/dwc_eth_xgmac.c b/drivers/net/dwc_eth_xgmac.c
index 2ab5ec5f0d9..311b57011c3 100644
--- a/drivers/net/dwc_eth_xgmac.c
+++ b/drivers/net/dwc_eth_xgmac.c
@@ -1206,7 +1206,7 @@ static const struct udevice_id xgmac_ids[] = {
{ }
};
-U_BOOT_DRIVER(eth_xgmac) = {
+U_BOOT_DRIVER(dwc_eth_xgmac) = {
.name = "eth_xgmac",
.id = UCLASS_ETH,
.of_match = of_match_ptr(xgmac_ids),
diff --git a/drivers/net/qe/dm_qe_uec_phy.c b/drivers/net/qe/dm_qe_uec_phy.c
index 8c0168be859..107c7686b3b 100644
--- a/drivers/net/qe/dm_qe_uec_phy.c
+++ b/drivers/net/qe/dm_qe_uec_phy.c
@@ -152,7 +152,7 @@ static const struct udevice_id qe_uec_mdio_ids[] = {
{ }
};
-U_BOOT_DRIVER(mvmdio) = {
+U_BOOT_DRIVER(qe_uec_mdio) = {
.name = "qe_uec_mdio",
.id = UCLASS_MDIO,
.of_match = qe_uec_mdio_ids,
diff --git a/drivers/net/sni_netsec.c b/drivers/net/sni_netsec.c
index 71afe78fd28..b74a5c27cae 100644
--- a/drivers/net/sni_netsec.c
+++ b/drivers/net/sni_netsec.c
@@ -1138,7 +1138,7 @@ static const struct udevice_id netsec_ids[] = {
{}
};
-U_BOOT_DRIVER(ave) = {
+U_BOOT_DRIVER(synquacer_netsec) = {
.name = "synquacer_netsec",
.id = UCLASS_ETH,
.of_match = netsec_ids,
diff --git a/drivers/pinctrl/meson/pinctrl-meson-g12a.c b/drivers/pinctrl/meson/pinctrl-meson-g12a.c
index 67114df6824..29cfdcaa7f8 100644
--- a/drivers/pinctrl/meson/pinctrl-meson-g12a.c
+++ b/drivers/pinctrl/meson/pinctrl-meson-g12a.c
@@ -1283,7 +1283,7 @@ static const struct udevice_id meson_g12a_pinctrl_match[] = {
{ },
};
-U_BOOT_DRIVER(meson_axg_pinctrl) = {
+U_BOOT_DRIVER(meson_g12a_pinctrl) = {
.name = "meson-g12a-pinctrl",
.id = UCLASS_PINCTRL,
.of_match = of_match_ptr(meson_g12a_pinctrl_match),
diff --git a/drivers/pinctrl/tegra/pinctrl-tegra20.c b/drivers/pinctrl/tegra/pinctrl-tegra20.c
index c32d590a7e0..b3727b917dc 100644
--- a/drivers/pinctrl/tegra/pinctrl-tegra20.c
+++ b/drivers/pinctrl/tegra/pinctrl-tegra20.c
@@ -182,8 +182,8 @@ static const struct udevice_id tegra_pinctrl_ids[] = {
{ },
};
-U_BOOT_DRIVER(tegra_pinctrl) = {
- .name = "tegra_pinctrl",
+U_BOOT_DRIVER(tegra20_pinctrl) = {
+ .name = "tegra20_pinctrl",
.id = UCLASS_PINCTRL,
.of_match = tegra_pinctrl_ids,
.bind = tegra_pinctrl_bind,
diff --git a/drivers/reset/stm32/stm32-reset-mp1.c b/drivers/reset/stm32/stm32-reset-mp1.c
index ce4532561e5..e7ac2c6f066 100644
--- a/drivers/reset/stm32/stm32-reset-mp1.c
+++ b/drivers/reset/stm32/stm32-reset-mp1.c
@@ -46,7 +46,7 @@ static int stm32_reset_probe(struct udevice *dev)
return stm32_reset_core_probe(dev, &stm32mp1_reset_data);
}
-U_BOOT_DRIVER(stm32mp25_rcc_reset) = {
+U_BOOT_DRIVER(stm32mp1_rcc_reset) = {
.name = "stm32mp1_reset",
.id = UCLASS_RESET,
.probe = stm32_reset_probe,
diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
index 2f24f47badf..10271f46aa6 100644
--- a/drivers/serial/ns16550.c
+++ b/drivers/serial/ns16550.c
@@ -586,6 +586,7 @@ const struct dm_serial_ops ns16550_serial_ops = {
.getinfo = ns16550_serial_getinfo,
};
+#if CONFIG_IS_ENABLED(SERIAL_PRESENT)
#if CONFIG_IS_ENABLED(OF_REAL)
/*
* Please consider existing compatible strings before adding a new
@@ -603,8 +604,6 @@ static const struct udevice_id ns16550_serial_ids[] = {
};
#endif /* OF_REAL */
-#if CONFIG_IS_ENABLED(SERIAL_PRESENT)
-
/* TODO([email protected]): Integrate this into a macro like CONFIG_IS_ENABLED */
#if !defined(CONFIG_TPL_BUILD) || defined(CONFIG_TPL_DM_SERIAL)
U_BOOT_DRIVER(ns16550_serial) = {
diff --git a/drivers/serial/serial_omap.c b/drivers/serial/serial_omap.c
index 224d9cbf29d..8289336e08d 100644
--- a/drivers/serial/serial_omap.c
+++ b/drivers/serial/serial_omap.c
@@ -104,7 +104,7 @@ DEBUG_UART_FUNCS
#if CONFIG_IS_ENABLED(DM_SERIAL)
-#if CONFIG_IS_ENABLED(OF_REAL)
+#if CONFIG_IS_ENABLED(OF_REAL) && CONFIG_IS_ENABLED(SERIAL_PRESENT)
static int omap_serial_of_to_plat(struct udevice *dev)
{
struct ns16550_plat *plat = dev_get_plat(dev);
diff --git a/drivers/spi/kirkwood_spi.c b/drivers/spi/kirkwood_spi.c
index 095cbea0fca..bb5ab26685c 100644
--- a/drivers/spi/kirkwood_spi.c
+++ b/drivers/spi/kirkwood_spi.c
@@ -347,8 +347,8 @@ static const struct udevice_id mvebu_spi_ids[] = {
{ }
};
-U_BOOT_DRIVER(mvebu_spi) = {
- .name = "mvebu_spi",
+U_BOOT_DRIVER(kirkwood_spi) = {
+ .name = "kirkwood_spi",
.id = UCLASS_SPI,
.of_match = mvebu_spi_ids,
.ops = &mvebu_spi_ops,
diff --git a/drivers/spi/mvebu_a3700_spi.c b/drivers/spi/mvebu_a3700_spi.c
index 79836d7e271..370a52a90b3 100644
--- a/drivers/spi/mvebu_a3700_spi.c
+++ b/drivers/spi/mvebu_a3700_spi.c
@@ -307,8 +307,8 @@ static const struct udevice_id mvebu_spi_ids[] = {
{ }
};
-U_BOOT_DRIVER(mvebu_spi) = {
- .name = "mvebu_spi",
+U_BOOT_DRIVER(mvebu_a3700_spi) = {
+ .name = "mvebu_a3700_spi",
.id = UCLASS_SPI,
.of_match = mvebu_spi_ids,
.ops = &mvebu_spi_ops,
diff --git a/drivers/sysreset/sysreset_socfpga_soc64.c b/drivers/sysreset/sysreset_socfpga_soc64.c
index 6ce30d9eaf0..e1267ac118a 100644
--- a/drivers/sysreset/sysreset_socfpga_soc64.c
+++ b/drivers/sysreset/sysreset_socfpga_soc64.c
@@ -80,7 +80,7 @@ static struct sysreset_ops socfpga_sysreset = {
.request = socfpga_sysreset_request,
};
-U_BOOT_DRIVER(sysreset_socfpga) = {
+U_BOOT_DRIVER(sysreset_socfpga_soc64) = {
.id = UCLASS_SYSRESET,
.name = "socfpga_sysreset",
.ops = &socfpga_sysreset,
diff --git a/drivers/usb/dwc3/dwc3-meson-g12a.c b/drivers/usb/dwc3/dwc3-meson-g12a.c
index 41d15996e5b..49e9c3fa0e9 100644
--- a/drivers/usb/dwc3/dwc3-meson-g12a.c
+++ b/drivers/usb/dwc3/dwc3-meson-g12a.c
@@ -533,7 +533,7 @@ static const struct udevice_id dwc3_meson_g12a_ids[] = {
{ }
};
-U_BOOT_DRIVER(dwc3_generic_wrapper) = {
+U_BOOT_DRIVER(dwc3_meson_g12a) = {
.name = "dwc3-meson-g12a",
.id = UCLASS_SIMPLE_BUS,
.of_match = dwc3_meson_g12a_ids,
diff --git a/drivers/usb/dwc3/dwc3-meson-gxl.c b/drivers/usb/dwc3/dwc3-meson-gxl.c
index 5fb9b477ada..0edf41a4720 100644
--- a/drivers/usb/dwc3/dwc3-meson-gxl.c
+++ b/drivers/usb/dwc3/dwc3-meson-gxl.c
@@ -430,7 +430,7 @@ static const struct udevice_id dwc3_meson_gxl_ids[] = {
{ }
};
-U_BOOT_DRIVER(dwc3_generic_wrapper) = {
+U_BOOT_DRIVER(dwc3_meson_gxl) = {
.name = "dwc3-meson-gxl",
.id = UCLASS_SIMPLE_BUS,
.of_match = dwc3_meson_gxl_ids,
diff --git a/drivers/usb/host/ehci-exynos.c b/drivers/usb/host/ehci-exynos.c
index e1fc04efd2e..ec21b7c6246 100644
--- a/drivers/usb/host/ehci-exynos.c
+++ b/drivers/usb/host/ehci-exynos.c
@@ -249,7 +249,7 @@ static const struct udevice_id ehci_usb_ids[] = {
{ }
};
-U_BOOT_DRIVER(usb_ehci) = {
+U_BOOT_DRIVER(ehci_exynos) = {
.name = "ehci_exynos",
.id = UCLASS_USB,
.of_match = ehci_usb_ids,
diff --git a/drivers/usb/host/ehci-msm.c b/drivers/usb/host/ehci-msm.c
index 8aeb6a91556..a58eff7cb9c 100644
--- a/drivers/usb/host/ehci-msm.c
+++ b/drivers/usb/host/ehci-msm.c
@@ -117,7 +117,7 @@ void ci_init_after_reset(struct ehci_ctrl *ctrl)
}
#endif
-U_BOOT_DRIVER(usb_ehci) = {
+U_BOOT_DRIVER(ehci_msm) = {
.name = "ehci_msm",
.id = UCLASS_USB,
.of_to_plat = ehci_usb_of_to_plat,
diff --git a/drivers/usb/host/ehci-tegra.c b/drivers/usb/host/ehci-tegra.c
index 89b87886da1..c1f76752cb1 100644
--- a/drivers/usb/host/ehci-tegra.c
+++ b/drivers/usb/host/ehci-tegra.c
@@ -969,7 +969,7 @@ static const struct udevice_id ehci_usb_ids[] = {
{ }
};
-U_BOOT_DRIVER(usb_ehci) = {
+U_BOOT_DRIVER(ehci_tegra) = {
.name = "ehci_tegra",
.id = UCLASS_USB,
.of_match = ehci_usb_ids,
diff --git a/drivers/usb/host/ehci-vf.c b/drivers/usb/host/ehci-vf.c
index 5afe28ea303..96d1363a76e 100644
--- a/drivers/usb/host/ehci-vf.c
+++ b/drivers/usb/host/ehci-vf.c
@@ -344,7 +344,7 @@ static const struct udevice_id vf_usb_ids[] = {
{ }
};
-U_BOOT_DRIVER(usb_ehci) = {
+U_BOOT_DRIVER(ehci_vf) = {
.name = "ehci_vf",
.id = UCLASS_USB,
.of_match = vf_usb_ids,
diff --git a/drivers/usb/host/ohci-da8xx.c b/drivers/usb/host/ohci-da8xx.c
index d321d147c2f..a36950082af 100644
--- a/drivers/usb/host/ohci-da8xx.c
+++ b/drivers/usb/host/ohci-da8xx.c
@@ -165,7 +165,7 @@ static const struct udevice_id da8xx_ohci_ids[] = {
{ }
};
-U_BOOT_DRIVER(ohci_generic) = {
+U_BOOT_DRIVER(ohci_da8xx) = {
.name = "ohci-da8xx",
.id = UCLASS_USB,
.of_match = da8xx_ohci_ids,
diff --git a/drivers/usb/musb-new/pic32.c b/drivers/usb/musb-new/pic32.c
index 0b25e5893b3..b878e979d93 100644
--- a/drivers/usb/musb-new/pic32.c
+++ b/drivers/usb/musb-new/pic32.c
@@ -279,7 +279,7 @@ static const struct udevice_id pic32_musb_ids[] = {
{ }
};
-U_BOOT_DRIVER(usb_musb) = {
+U_BOOT_DRIVER(musb_pic32) = {
.name = "pic32-musb",
.id = UCLASS_USB,
.of_match = pic32_musb_ids,
diff --git a/drivers/usb/musb-new/sc5xx.c b/drivers/usb/musb-new/sc5xx.c
index 991846818a2..b1765abe827 100644
--- a/drivers/usb/musb-new/sc5xx.c
+++ b/drivers/usb/musb-new/sc5xx.c
@@ -188,7 +188,7 @@ static const struct udevice_id sc5xx_musb_ids[] = {
{ }
};
-U_BOOT_DRIVER(usb_musb) = {
+U_BOOT_DRIVER(musb_sc5xx) = {
.name = "sc5xx-musb",
.id = UCLASS_USB,
.of_match = sc5xx_musb_ids,
diff --git a/drivers/usb/musb-new/sunxi.c b/drivers/usb/musb-new/sunxi.c
index b577ba41878..0747f025f2a 100644
--- a/drivers/usb/musb-new/sunxi.c
+++ b/drivers/usb/musb-new/sunxi.c
@@ -545,7 +545,7 @@ static const struct udevice_id sunxi_musb_ids[] = {
{ }
};
-U_BOOT_DRIVER(usb_musb) = {
+U_BOOT_DRIVER(musb_sunxi) = {
.name = "sunxi-musb",
#ifdef CONFIG_USB_MUSB_HOST
.id = UCLASS_USB,
diff --git a/drivers/video/rockchip/rk3288_mipi.c b/drivers/video/rockchip/rk3288_mipi.c
index 850fe310754..574ba8c6957 100644
--- a/drivers/video/rockchip/rk3288_mipi.c
+++ b/drivers/video/rockchip/rk3288_mipi.c
@@ -177,8 +177,8 @@ static const struct udevice_id rk_mipi_dsi_ids[] = {
{ }
};
-U_BOOT_DRIVER(rk_mipi_dsi) = {
- .name = "rk_mipi_dsi",
+U_BOOT_DRIVER(rk3288_mipi_dsi) = {
+ .name = "rk3288_mipi_dsi",
.id = UCLASS_DISPLAY,
.of_match = rk_mipi_dsi_ids,
.of_to_plat = rk_mipi_of_to_plat,
diff --git a/drivers/video/rockchip/rk3399_mipi.c b/drivers/video/rockchip/rk3399_mipi.c
index 57e36eed6a9..68316df871c 100644
--- a/drivers/video/rockchip/rk3399_mipi.c
+++ b/drivers/video/rockchip/rk3399_mipi.c
@@ -168,8 +168,8 @@ static const struct udevice_id rk_mipi_dsi_ids[] = {
{ }
};
-U_BOOT_DRIVER(rk_mipi_dsi) = {
- .name = "rk_mipi_dsi",
+U_BOOT_DRIVER(rk3399_mipi_dsi) = {
+ .name = "rk3399_mipi_dsi",
.id = UCLASS_DISPLAY,
.of_match = rk_mipi_dsi_ids,
.of_to_plat = rk_mipi_of_to_plat,
diff --git a/drivers/watchdog/arm_smc_wdt.c b/drivers/watchdog/arm_smc_wdt.c
index f6854aa9ac9..151dc42d116 100644
--- a/drivers/watchdog/arm_smc_wdt.c
+++ b/drivers/watchdog/arm_smc_wdt.c
@@ -130,7 +130,7 @@ static const struct udevice_id smcwd_dt_ids[] = {
{}
};
-U_BOOT_DRIVER(wdt_sandbox) = {
+U_BOOT_DRIVER(arm_smc_wdt) = {
.name = "smcwd",
.id = UCLASS_WDT,
.of_match = smcwd_dt_ids,
diff --git a/dts/Kconfig b/dts/Kconfig
index af8d30b45ab..6b501c2239e 100644
--- a/dts/Kconfig
+++ b/dts/Kconfig
@@ -59,7 +59,7 @@ config SPL_OF_CONTROL
config TPL_OF_CONTROL
bool "Enable run-time configuration via Device Tree in TPL"
depends on TPL && OF_CONTROL
- select TPL_OF_LIBFDT if !TPL_OF_PLATDATA
+ select TPL_OF_LIBFDT if !TPL_OF_PLATDATA && TPL_LIBGENERIC_SUPPORT
select TPL_OF_REAL if !TPL_OF_PLATDATA
help
Some boards use device tree in U-Boot but only have 4KB of SRAM
@@ -88,7 +88,7 @@ config OF_LIVE
config OF_UPSTREAM
bool "Enable use of devicetree imported from Linux kernel release"
- depends on !COMPILE_TEST
+ depends on !COMPILE_TEST && !SANDBOX
help
Traditionally, U-Boot platforms used to have their custom devicetree
files or copy devicetree files from Linux kernel which are hard to
diff --git a/env/Kconfig b/env/Kconfig
index 5979f7faa99..532adf884da 100644
--- a/env/Kconfig
+++ b/env/Kconfig
@@ -847,6 +847,7 @@ config SPL_ENV_IS_IN_MMC
bool "SPL Environment in an MMC device"
depends on !SPL_ENV_IS_NOWHERE
depends on !SPL_OS_BOOT_SECURE
+ depends on SPL_MMC
depends on ENV_IS_IN_MMC
default y
help
diff --git a/env/eeprom.c b/env/eeprom.c
index b290b1013e1..f4cc2909376 100644
--- a/env/eeprom.c
+++ b/env/eeprom.c
@@ -175,5 +175,5 @@ U_BOOT_ENV_LOCATION(eeprom) = {
.location = ENVL_EEPROM,
ENV_NAME("EEPROM")
.load = env_eeprom_load,
- .save = env_save_ptr(env_eeprom_save),
+ .save = ENV_SAVE_PTR(env_eeprom_save),
};
diff --git a/env/nvram.c b/env/nvram.c
index d49cd0f337a..18f0a0aa1fb 100644
--- a/env/nvram.c
+++ b/env/nvram.c
@@ -65,6 +65,6 @@ U_BOOT_ENV_LOCATION(nvram) = {
.location = ENVL_NVRAM,
ENV_NAME("NVRAM")
.load = env_nvram_load,
- .save = env_save_ptr(env_nvram_save),
+ .save = ENV_SAVE_PTR(env_nvram_save),
.init = env_nvram_init,
};
diff --git a/env/onenand.c b/env/onenand.c
index 8c349ef5ce6..59b523e06c6 100644
--- a/env/onenand.c
+++ b/env/onenand.c
@@ -107,5 +107,5 @@ U_BOOT_ENV_LOCATION(onenand) = {
.location = ENVL_ONENAND,
ENV_NAME("OneNAND")
.load = env_onenand_load,
- .save = env_save_ptr(env_onenand_save),
+ .save = ENV_SAVE_PTR(env_onenand_save),
};
diff --git a/env/remote.c b/env/remote.c
index 0cc383c2360..5dd929155a4 100644
--- a/env/remote.c
+++ b/env/remote.c
@@ -31,18 +31,6 @@ static int env_remote_init(void)
return -ENOENT;
}
-#ifdef CONFIG_CMD_SAVEENV
-static int env_remote_save(void)
-{
-#ifdef CONFIG_SRIO_PCIE_BOOT_SLAVE
- printf("Can not support the 'saveenv' when boot from SRIO or PCIE!\n");
- return 1;
-#else
- return 0;
-#endif
-}
-#endif /* CONFIG_CMD_SAVEENV */
-
static int env_remote_load(void)
{
#ifndef ENV_IS_EMBEDDED
@@ -56,6 +44,5 @@ U_BOOT_ENV_LOCATION(remote) = {
.location = ENVL_REMOTE,
ENV_NAME("Remote")
.load = env_remote_load,
- .save = env_save_ptr(env_remote_save),
.init = env_remote_init,
};
diff --git a/env/scsi.c b/env/scsi.c
index 207717e17b1..e56891a9899 100644
--- a/env/scsi.c
+++ b/env/scsi.c
@@ -108,8 +108,6 @@ U_BOOT_ENV_LOCATION(scsi) = {
.location = ENVL_SCSI,
ENV_NAME("SCSI")
.load = env_scsi_load,
-#if defined(CONFIG_CMD_SAVEENV) && !defined(CONFIG_XPL_BUILD)
- .save = env_save_ptr(env_scsi_save),
+ .save = ENV_SAVE_PTR(env_scsi_save),
.erase = ENV_ERASE_PTR(env_scsi_erase),
-#endif
};
diff --git a/env/ubi.c b/env/ubi.c
index 59bd96feb48..e9865b45ebc 100644
--- a/env/ubi.c
+++ b/env/ubi.c
@@ -33,7 +33,6 @@ DECLARE_GLOBAL_DATA_PTR;
#define ENV_UBI_VOLUME_REDUND "invalid"
#endif
-#ifdef CONFIG_CMD_SAVEENV
#ifdef CONFIG_ENV_REDUNDANT
static int env_ubi_save(void)
{
@@ -103,7 +102,6 @@ static int env_ubi_save(void)
return 0;
}
#endif /* CONFIG_ENV_REDUNDANT */
-#endif /* CONFIG_CMD_SAVEENV */
#ifdef CONFIG_ENV_REDUNDANT
static int env_ubi_load(void)
@@ -219,6 +217,6 @@ U_BOOT_ENV_LOCATION(ubi) = {
.location = ENVL_UBI,
ENV_NAME("UBI")
.load = env_ubi_load,
- .save = env_save_ptr(env_ubi_save),
+ .save = ENV_SAVE_PTR(env_ubi_save),
.erase = ENV_ERASE_PTR(env_ubi_erase),
};
diff --git a/lib/Kconfig b/lib/Kconfig
index 46384283c43..4e6a0c6a1b6 100644
--- a/lib/Kconfig
+++ b/lib/Kconfig
@@ -1277,9 +1277,8 @@ config SPL_LMB
the data structures needed for maintaining the LMB memory map.
config LMB_ARCH_MEM_MAP
- bool "Add an architecture specific memory map"
+ bool
depends on LMB
- depends on !COMPILE_TEST
default y if FSL_LAYERSCAPE || X86
help
Some architectures have special or unique aspects which need