U-Boot uses an SPL prefix on CONFIG options to indicate when an option relates to SPL. For example, while CONFIG_TEXT_BASE is the text base for U-Boot proper, CONFIG_SPL_TEXT_BASE is the text base for SPL.
Within the code it is possible do things like CONFIG_VAL(TEXT_BASE) to get that value. It returns the appropriate option, depending on the phase being built. The same applies for boolean options, like CONFIG_BLK and CONFIG_SPL_BLK but in that case we use CONFIG_IS_ENABLED(BLK) to obtain the value. For Makefiles we use an SPL_TPL_ macro which evalutes either to empty, SPL, TPL or even VPL depending on the build phase. So we can do things like: obj-$(CONFIG_$(SPL_TPL_)CLK) += clk-uclass.o To complicate things a little, some options like CONFIG_ARCH_APPLE do not have an SPL version, so people have to remember to use IS_ENABLED() instead of CONFIG_IS_ENABLED(). If the latter is used, the value will be false. All of this is rather confusing, since: - people have to know whether to use IS_ENABLED() or CONFIG_IS_ENABLED() - the Makefiles are cluttered with $(SPL_TPL_) constructs - plain use of a CONFIG option (e.g. #ifdef CONFIG_CLK) may be correct in some cases but not in others This series updates U-Boot to use separate config files for each phase of the build. It drops use of CONFIG_IS_ENABLED() and SPL_TPL_ as well. For now this series does not fully work due to inconsistencies in the Kconfig options. Many of these have been fixed [1] [2a] [2b] but more remain. This series is available at u-boot-dm/splc-working [1] https://patchwork.ozlabs.org/project/uboot/list/?series=339004 [2a] https://patchwork.ozlabs.org/project/uboot/list/?series=339199&state=* [2b] https://patchwork.ozlabs.org/project/uboot/list/?series=339208&state=* Simon Glass (32): fixup: Bugfix for moveconfig event: Add Kconfig options for SPL bootstd: Add Kconfig options for SPL cmd: Add an SPL Kconfig for CMDLINE and HUSH boot: Add a Kconfig for SPL_QCOM_PMIC_GPIO cros_ec: Add SPL Kconfigs for cros_ec features boot: Add a Kconfig for SPL_UT_COMPRESSION env: Avoid checking ENV_IS_IN when env disabled boot: Add a Kconfig for SPL_AVB_VERIFY env: Allow VPL environment to be nowhere lib: Add VPL options for SHA1 and SHA256 sandbox: Tidy up RTC options sandbox: Use the generic VPL option to enable VPL sandbox: Tidy up I2C options fixdep: Add support for VPL fixdep: Refactor to make testing easier fixdep: Add some tests for parse_config_line() test: Add SPL versions of the TEST_KCONFIG options kconfig: Add configuration files for noproper and nospl kconfig: Refactor code into separate writer functions kconfig: Support writing separate SPL files Makefile: Include the config for the phase being built kconfig: Update CONFIG_IS_ENABLED() for split files Makefile: Use empty SPL_ and SPL_TPL_ vars Drop use of CONFIG_IS_ENABLED() kconfig: Adjust the meaning of CONFIG_IS_ENABLED() kconfig: Drop CONFIG_IF_ENABLED_INT() kconfig: Drop CONFIG_IS_ENABLED() kconfig: drop config_opt_enabled() kconfig: Drop CONFIG_VAL() kconfig: Move closer to the Linux version Makefile: Drop SPL_ and SPL_TPL_ macros Makefile | 17 +- arch/arc/lib/bootm.c | 2 +- arch/arc/lib/start.S | 4 +- arch/arm/config.mk | 6 +- arch/arm/cpu/arm11/cpu.c | 12 +- arch/arm/cpu/arm1136/start.S | 8 +- arch/arm/cpu/arm720t/start.S | 10 +- arch/arm/cpu/arm920t/Makefile | 2 +- arch/arm/cpu/arm920t/start.S | 8 +- arch/arm/cpu/arm926ejs/Makefile | 2 +- arch/arm/cpu/arm926ejs/cache.c | 14 +- arch/arm/cpu/arm926ejs/cpu.c | 2 +- arch/arm/cpu/arm926ejs/start.S | 10 +- arch/arm/cpu/arm946es/start.S | 6 +- arch/arm/cpu/armv7/Makefile | 2 +- arch/arm/cpu/armv7/cache_v7.c | 8 +- arch/arm/cpu/armv7/cache_v7_asm.S | 2 +- .../cpu/armv7/iproc-common/hwinit-common.c | 2 +- arch/arm/cpu/armv7/ls102xa/cpu.c | 4 +- arch/arm/cpu/armv7/start.S | 16 +- arch/arm/cpu/armv7/vf610/generic.c | 2 +- arch/arm/cpu/armv7m/cache.c | 8 +- arch/arm/cpu/armv8/Makefile | 6 +- arch/arm/cpu/armv8/cache_v8.c | 12 +- arch/arm/cpu/armv8/fsl-layerscape/Makefile | 2 +- arch/arm/cpu/armv8/fsl-layerscape/cpu.c | 8 +- arch/arm/cpu/armv8/fsl-layerscape/fdt.c | 10 +- arch/arm/cpu/armv8/fsl-layerscape/ppa.c | 2 +- arch/arm/cpu/armv8/fsl-layerscape/soc.c | 2 +- arch/arm/cpu/armv8/fsl-layerscape/spl.c | 2 +- arch/arm/include/asm/arch-am33xx/chilisom.h | 2 +- .../asm/arch-fsl-layerscape/fsl_icid.h | 2 +- arch/arm/include/asm/arch-lpc32xx/i2c.h | 2 +- arch/arm/include/asm/arch-rockchip/boot0.h | 2 +- .../include/asm/arch-rockchip/sdram_rk322x.h | 2 +- .../include/asm/arch-rockchip/sdram_rk3288.h | 2 +- arch/arm/include/asm/assembler.h | 2 +- arch/arm/include/asm/cache.h | 2 +- arch/arm/include/asm/global_data.h | 2 +- arch/arm/include/asm/mach-imx/mxc_i2c.h | 6 +- arch/arm/include/asm/omap_gpio.h | 2 +- arch/arm/include/asm/omap_i2c.h | 2 +- arch/arm/include/asm/proc-armv/ptrace.h | 2 +- arch/arm/include/asm/string.h | 6 +- arch/arm/lib/Makefile | 18 +- arch/arm/lib/bdinfo.c | 6 +- arch/arm/lib/bootm.c | 4 +- arch/arm/lib/cache-cp15.c | 6 +- arch/arm/lib/cache.c | 6 +- arch/arm/lib/crt0.S | 8 +- arch/arm/lib/crt0_64.S | 4 +- arch/arm/lib/interrupts_64.c | 2 +- arch/arm/lib/lib1funcs.S | 2 +- arch/arm/lib/memcpy.S | 2 +- arch/arm/lib/memset.S | 2 +- arch/arm/lib/psci-dt.c | 6 +- arch/arm/lib/spl.c | 4 +- arch/arm/lib/vectors.S | 6 +- arch/arm/mach-at91/arm920t/lowlevel_init.S | 4 +- arch/arm/mach-at91/arm926ejs/Makefile | 4 +- arch/arm/mach-at91/arm926ejs/eflash.c | 4 +- arch/arm/mach-at91/include/mach/at91sam9260.h | 2 +- arch/arm/mach-at91/spl_at91.c | 2 +- arch/arm/mach-davinci/da850_lowlevel.c | 2 +- arch/arm/mach-davinci/include/mach/gpio.h | 2 +- arch/arm/mach-exynos/clock_init_exynos5.c | 8 +- arch/arm/mach-exynos/exynos5_setup.h | 6 +- arch/arm/mach-exynos/mmu-arm64.c | 4 +- arch/arm/mach-exynos/pinmux.c | 2 +- arch/arm/mach-exynos/soc.c | 2 +- arch/arm/mach-imx/cache.c | 2 +- arch/arm/mach-imx/hab.c | 4 +- arch/arm/mach-imx/i2c-mxv7.c | 2 +- arch/arm/mach-imx/imx8/cpu.c | 2 +- arch/arm/mach-imx/imx8m/soc.c | 6 +- arch/arm/mach-imx/mx5/soc.c | 2 +- arch/arm/mach-imx/mx7/soc.c | 2 +- arch/arm/mach-imx/syscounter.c | 2 +- arch/arm/mach-k3/am642_init.c | 4 +- arch/arm/mach-k3/am654_init.c | 6 +- arch/arm/mach-k3/common.c | 4 +- arch/arm/mach-k3/sysfw-loader.c | 20 +- arch/arm/mach-keystone/init.c | 2 +- arch/arm/mach-lpc32xx/devices.c | 2 +- arch/arm/mach-omap2/Makefile | 2 +- arch/arm/mach-omap2/am33xx/Makefile | 2 +- arch/arm/mach-omap2/am33xx/board.c | 18 +- arch/arm/mach-omap2/am33xx/chilisom.c | 4 +- arch/arm/mach-omap2/am33xx/clk_synthesizer.c | 6 +- arch/arm/mach-omap2/boot-common.c | 2 +- arch/arm/mach-omap2/clocks-common.c | 2 +- arch/arm/mach-omap2/omap3/board.c | 8 +- arch/arm/mach-omap2/omap3/lowlevel_init.S | 4 +- arch/arm/mach-omap2/omap5/hwinit.c | 2 +- arch/arm/mach-omap2/omap5/sec_entry_cpu1.S | 6 +- arch/arm/mach-omap2/sec-common.c | 4 +- arch/arm/mach-orion5x/Makefile | 4 +- arch/arm/mach-rmobile/cpu_info.c | 2 +- arch/arm/mach-rockchip/Makefile | 2 +- arch/arm/mach-rockchip/bootrom.c | 4 +- arch/arm/mach-rockchip/px30/syscon_px30.c | 2 +- arch/arm/mach-rockchip/rk3036/rk3036.c | 2 +- arch/arm/mach-rockchip/rk3066/syscon_rk3066.c | 2 +- arch/arm/mach-rockchip/rk3188/syscon_rk3188.c | 2 +- arch/arm/mach-rockchip/rk3288/syscon_rk3288.c | 2 +- arch/arm/mach-rockchip/rk3368/syscon_rk3368.c | 2 +- arch/arm/mach-rockchip/rk3399/syscon_rk3399.c | 4 +- arch/arm/mach-rockchip/rk3568/syscon_rk3568.c | 2 +- arch/arm/mach-rockchip/rv1126/syscon_rv1126.c | 2 +- arch/arm/mach-rockchip/spl-boot-order.c | 4 +- arch/arm/mach-rockchip/spl.c | 2 +- arch/arm/mach-rockchip/tpl.c | 2 +- arch/arm/mach-s5pc1xx/cache.c | 2 +- arch/arm/mach-socfpga/misc.c | 4 +- arch/arm/mach-socfpga/spl_agilex.c | 2 +- arch/arm/mach-socfpga/spl_n5x.c | 2 +- arch/arm/mach-socfpga/spl_s10.c | 2 +- arch/arm/mach-stm32mp/Makefile | 2 +- .../mach-stm32mp/cmd_stm32prog/stm32prog.c | 12 +- arch/arm/mach-stm32mp/cpu.c | 4 +- arch/arm/mach-stm32mp/fdt.c | 2 +- arch/arm/mach-stm32mp/spl.c | 2 +- arch/arm/mach-sunxi/board.c | 6 +- arch/arm/mach-sunxi/pmic_bus.c | 8 +- arch/arm/mach-tegra/board.c | 4 +- arch/arm/mach-tegra/clock.c | 4 +- arch/arm/mach-tegra/tegra114/clock.c | 4 +- arch/arm/mach-tegra/tegra124/clock.c | 4 +- arch/arm/mach-tegra/tegra20/clock.c | 4 +- arch/arm/mach-tegra/tegra30/clock.c | 4 +- arch/arm/mach-u8500/cache.c | 2 +- .../arm/mach-uniphier/debug-uart/debug-uart.c | 4 +- arch/arm/mach-zynq/cpu.c | 6 +- arch/arm/mach-zynqmp/Makefile | 2 +- arch/microblaze/cpu/cache.c | 4 +- arch/microblaze/cpu/exception.c | 4 +- arch/microblaze/cpu/start.S | 2 +- arch/microblaze/lib/bootm.c | 2 +- arch/mips/cpu/cpu.c | 2 +- arch/mips/cpu/start.S | 14 +- arch/mips/lib/bootm.c | 22 +- arch/mips/mach-mtmips/mt7621/spl/start.S | 12 +- arch/mips/mach-mtmips/mt7628/lowlevel_init.S | 6 +- arch/powerpc/cpu/mpc83xx/start.S | 8 +- arch/powerpc/cpu/mpc85xx/cpu_init_early.c | 2 +- arch/powerpc/cpu/mpc85xx/start.S | 42 +- arch/powerpc/cpu/mpc85xx/tlb.c | 2 +- arch/powerpc/cpu/mpc85xx/u-boot-spl.lds | 6 +- arch/powerpc/cpu/mpc85xx/u-boot.lds | 4 +- arch/powerpc/cpu/mpc8xxx/law.c | 4 +- arch/powerpc/include/asm/fsl_i2c.h | 2 +- arch/powerpc/lib/Makefile | 2 +- arch/riscv/cpu/ax25/cache.c | 26 +- arch/riscv/cpu/ax25/cpu.c | 2 +- arch/riscv/cpu/cpu.c | 14 +- arch/riscv/cpu/fu740/spl.c | 2 +- arch/riscv/cpu/start.S | 28 +- arch/riscv/include/asm/encoding.h | 2 +- arch/riscv/include/asm/global_data.h | 6 +- arch/riscv/include/asm/string.h | 6 +- arch/riscv/lib/Makefile | 16 +- arch/riscv/lib/asm-offsets.c | 2 +- arch/riscv/lib/bootm.c | 4 +- arch/riscv/lib/interrupts.c | 2 +- arch/riscv/lib/smp.c | 2 +- arch/riscv/lib/spl.c | 2 +- arch/sandbox/cpu/start.c | 4 +- arch/sandbox/dts/sandbox.dts | 4 +- arch/sandbox/dts/sandbox.dtsi | 6 +- arch/sandbox/include/asm/clk.h | 2 +- arch/sandbox/include/asm/rtc.h | 2 +- arch/sandbox/include/asm/serial.h | 2 +- arch/sh/lib/start.S | 4 +- arch/x86/Makefile | 8 +- arch/x86/cpu/Makefile | 20 +- arch/x86/cpu/acpi_gpe.c | 4 +- arch/x86/cpu/apollolake/cpu_common.c | 2 +- arch/x86/cpu/apollolake/cpu_spl.c | 2 +- arch/x86/cpu/apollolake/hostbridge.c | 10 +- arch/x86/cpu/apollolake/lpc.c | 2 +- arch/x86/cpu/apollolake/pch.c | 2 +- arch/x86/cpu/apollolake/pmc.c | 4 +- arch/x86/cpu/apollolake/spl.c | 4 +- arch/x86/cpu/apollolake/uart.c | 6 +- arch/x86/cpu/broadwell/Makefile | 10 +- arch/x86/cpu/broadwell/pch.c | 2 +- arch/x86/cpu/cpu.c | 2 +- arch/x86/cpu/i386/interrupt.c | 2 +- arch/x86/cpu/intel_common/Makefile | 14 +- arch/x86/cpu/intel_common/car2.S | 2 +- arch/x86/cpu/intel_common/cpu_from_spl.c | 2 +- arch/x86/cpu/intel_common/itss.c | 8 +- arch/x86/cpu/intel_common/p2sb.c | 8 +- arch/x86/cpu/ivybridge/Makefile | 6 +- arch/x86/cpu/qemu/Makefile | 2 +- arch/x86/cpu/qemu/qemu.c | 2 +- arch/x86/cpu/u-boot-spl.lds | 2 +- arch/x86/include/asm/arch-apollolake/gpio.h | 2 +- .../include/asm/arch-apollolake/hostbridge.h | 2 +- arch/x86/include/asm/arch-apollolake/pmc.h | 2 +- arch/x86/include/asm/arch-apollolake/uart.h | 2 +- arch/x86/include/asm/byteorder.h | 2 +- arch/x86/include/asm/cpu.h | 2 +- arch/x86/include/asm/global_data.h | 4 +- arch/x86/include/asm/itss.h | 2 +- arch/x86/include/asm/mp.h | 2 +- arch/x86/include/asm/p2sb.h | 2 +- arch/x86/include/asm/sysreset.h | 2 +- arch/x86/include/asm/types.h | 2 +- arch/x86/lib/Makefile | 8 +- arch/x86/lib/acpi_table.c | 2 +- arch/x86/lib/bootm.c | 6 +- arch/x86/lib/e820.c | 4 +- arch/x86/lib/fsp/fsp_common.c | 2 +- arch/x86/lib/fsp/fsp_dram.c | 4 +- arch/x86/lib/fsp2/fsp_dram.c | 4 +- arch/x86/lib/init_helpers.c | 2 +- arch/x86/lib/interrupts.c | 4 +- arch/x86/lib/lpc-uclass.c | 2 +- arch/x86/lib/relocate.c | 4 +- arch/x86/lib/spl.c | 2 +- arch/x86/lib/tpl.c | 4 +- arch/xtensa/cpu/start.S | 8 +- board/Marvell/octeontx2_cn913x/board.c | 2 +- board/Seagate/dockstar/dockstar.c | 2 +- board/Seagate/goflexhome/goflexhome.c | 2 +- board/alliedtelesis/x530/x530.c | 2 +- board/bosch/acc/acc.c | 2 +- board/bosch/guardian/Makefile | 2 +- board/bosch/guardian/board.c | 2 +- board/bosch/shc/board.c | 2 +- board/buffalo/lsxl/lsxl.c | 2 +- board/cavium/thunderx/thunderx.c | 2 +- board/cloudengines/pogo_v4/pogo_v4.c | 2 +- board/compulab/cl-som-imx7/cl-som-imx7.c | 4 +- board/compulab/common/Makefile | 2 +- board/compulab/common/eeprom.h | 2 +- board/davinci/da8xxevm/omapl138_lcdk.c | 2 +- board/eets/pdu001/board.c | 6 +- board/engicam/imx8mp/icore_mx8mp.c | 2 +- board/engicam/imx8mp/spl.c | 2 +- board/engicam/stm32mp1/spl.c | 2 +- board/engicam/stm32mp1/stm32mp1.c | 6 +- board/freescale/common/Makefile | 4 +- board/freescale/common/emc2305.c | 4 +- board/freescale/common/i2c_common.c | 2 +- board/freescale/common/i2c_common.h | 2 +- board/freescale/common/qixis.c | 4 +- board/freescale/common/sys_eeprom.c | 20 +- board/freescale/imx8mn_evk/spl.c | 2 +- board/freescale/imx8mp_evk/imx8mp_evk.c | 2 +- board/freescale/imx8mp_evk/spl.c | 2 +- board/freescale/imx8mq_evk/spl.c | 2 +- board/freescale/imx8qm_mek/imx8qm_mek.c | 2 +- board/freescale/imx8qxp_mek/imx8qxp_mek.c | 2 +- board/freescale/imx8ulp_evk/imx8ulp_evk.c | 2 +- board/freescale/imx93_evk/spl.c | 2 +- board/freescale/ls1012aqds/ls1012aqds.c | 2 +- board/freescale/ls1012ardb/eth.c | 2 +- board/freescale/ls1012ardb/ls1012ardb.c | 12 +- board/freescale/ls1021atwr/ls1021atwr.c | 2 +- board/freescale/ls1028a/ls1028a.c | 2 +- board/freescale/ls1043aqds/ls1043aqds.c | 2 +- board/freescale/ls1088a/eth_ls1088aqds.c | 16 +- board/freescale/ls1088a/ls1088a.c | 58 +-- board/freescale/ls2080aqds/eth.c | 14 +- board/freescale/ls2080aqds/ls2080aqds.c | 2 +- board/freescale/mpc837xerdb/mpc837xerdb.c | 2 +- board/freescale/p1010rdb/p1010rdb.c | 8 +- board/freescale/p1010rdb/spl.c | 10 +- board/freescale/p1010rdb/tlb.c | 2 +- board/freescale/p1_p2_rdb_pc/p1_p2_rdb_pc.c | 2 +- board/freescale/p1_p2_rdb_pc/spl.c | 12 +- board/freescale/p1_p2_rdb_pc/tlb.c | 2 +- board/freescale/t102xrdb/t102xrdb.c | 2 +- board/friendlyarm/nanopi2/lcds.c | 2 +- board/friendlyarm/nanopi2/onewire.c | 6 +- board/gateworks/gw_ventana/eeprom.c | 10 +- board/google/chromebook_coral/coral.c | 4 +- board/google/veyron/veyron.c | 4 +- board/grinn/chiliboard/board.c | 4 +- board/hisilicon/hikey/hikey.c | 2 +- board/hisilicon/hikey960/hikey960.c | 2 +- board/hisilicon/poplar/poplar.c | 2 +- board/k+p/kp_imx53/kp_imx53.c | 2 +- board/keymile/common/ivm.c | 2 +- board/kontron/pitx_imx8m/spl.c | 6 +- board/kontron/sl-mx6ul/sl-mx6ul.c | 4 +- board/kontron/sl-mx8mm/sl-mx8mm.c | 4 +- board/kontron/sl28/sl28.c | 2 +- board/l+g/vinco/vinco.c | 4 +- board/mediatek/mt8183/mt8183_pumpkin.c | 4 +- board/mediatek/mt8516/mt8516_pumpkin.c | 4 +- board/qca/ap152/ap152.c | 2 +- board/renesas/draak/draak.c | 2 +- board/renesas/salvator-x/salvator-x.c | 4 +- board/renesas/ulcb/ulcb.c | 2 +- board/rockchip/evb_rk3399/evb-rk3399.c | 4 +- board/samsung/common/board.c | 4 +- board/samsung/trats/trats.c | 10 +- board/samsung/trats2/trats2.c | 6 +- board/sandbox/sandbox.c | 2 +- board/siemens/common/board.c | 2 +- board/siemens/common/factoryset.c | 14 +- board/siemens/common/factoryset.h | 2 +- board/siemens/draco/board.c | 2 +- board/siemens/iot2050/board.c | 2 +- board/somlabs/visionsom-6ull/visionsom-6ull.c | 2 +- board/st/common/stm32mp_dfu.c | 2 +- board/st/stih410-b2260/board.c | 2 +- board/st/stm32mp1/spl.c | 4 +- board/st/stm32mp1/stm32mp1.c | 16 +- board/st/stv0991/stv0991.c | 2 +- board/sunxi/board.c | 2 +- board/synopsys/hsdk/hsdk.c | 2 +- board/tcl/sl50/Makefile | 2 +- board/tcl/sl50/board.c | 2 +- board/technexion/pico-imx7d/pico-imx7d.c | 2 +- board/ti/am335x/Makefile | 2 +- board/ti/am335x/board.c | 6 +- board/ti/am43xx/Makefile | 2 +- board/ti/am43xx/board.c | 10 +- board/ti/am57xx/board.c | 6 +- board/ti/am64x/evm.c | 4 +- board/ti/common/board_detect.c | 4 +- board/ti/dra7xx/evm.c | 6 +- board/ti/j721e/evm.c | 2 +- board/ti/ks2_evm/board_k2g.c | 2 +- board/toradex/apalis-imx8/apalis-imx8.c | 2 +- board/toradex/verdin-imx8mp/spl.c | 2 +- board/tplink/wdr4300/wdr4300.c | 2 +- board/tq/tqma6/tqma6.c | 6 +- board/udoo/neo/neo.c | 2 +- board/vscom/baltos/Makefile | 2 +- board/wandboard/wandboard.c | 4 +- board/xilinx/common/board.c | 4 +- board/xilinx/common/fru_ops.c | 2 +- board/xilinx/versal/board.c | 2 +- board/xilinx/zynq/board.c | 2 +- board/xilinx/zynqmp/Makefile | 2 +- board/xilinx/zynqmp/zynqmp.c | 12 +- boot/Kconfig | 24 ++ boot/Makefile | 52 +-- boot/bootm.c | 22 +- boot/bootm_os.c | 2 +- boot/bootstd-uclass.c | 2 +- boot/image-board.c | 26 +- boot/image-fdt.c | 12 +- boot/image-fit-sig.c | 2 +- boot/image-fit.c | 10 +- boot/image-pre-load.c | 2 +- boot/image.c | 14 +- boot/vbe_simple.c | 2 +- boot/vbe_simple_fw.c | 2 +- cmd/Kconfig | 10 + cmd/Makefile | 2 +- cmd/bdinfo.c | 2 +- cmd/bootefi.c | 6 +- cmd/clk.c | 4 +- cmd/date.c | 4 +- cmd/disk.c | 6 +- cmd/dm.c | 4 +- cmd/eeprom.c | 10 +- cmd/i2c.c | 106 ++--- cmd/mmc.c | 28 +- cmd/mvebu/bubt.c | 2 +- cmd/nvedit.c | 2 + cmd/reiser.c | 2 +- cmd/sb.c | 2 +- cmd/sf.c | 4 +- cmd/spi.c | 6 +- cmd/zfs.c | 2 +- common/Kconfig | 20 + common/Makefile | 26 +- common/bloblist.c | 2 +- common/board_f.c | 20 +- common/board_r.c | 14 +- common/bootstage.c | 2 +- common/cli.c | 4 +- common/console.c | 42 +- common/dlmalloc.c | 18 +- common/event.c | 8 +- common/hash.c | 34 +- common/hwconfig.c | 2 +- common/init/Makefile | 2 +- common/init/board_init.c | 22 +- common/iomux.c | 2 +- common/log.c | 2 +- common/malloc_simple.c | 4 +- common/spl/Makefile | 48 +-- common/spl/spl.c | 92 ++--- common/spl/spl_atf.c | 4 +- common/spl/spl_ext.c | 2 +- common/spl/spl_fat.c | 2 +- common/spl/spl_fit.c | 16 +- common/spl/spl_mmc.c | 10 +- common/spl/spl_nand.c | 2 +- common/spl/spl_net.c | 2 +- common/spl/spl_nor.c | 2 +- common/spl/spl_ram.c | 10 +- common/spl/spl_sata.c | 2 +- common/spl/spl_spi.c | 6 +- common/spl/spl_ubi.c | 2 +- common/spl/spl_usb.c | 2 +- common/spl/spl_xip.c | 2 +- common/stdio.c | 4 +- common/usb.c | 14 +- common/usb_hub.c | 18 +- common/usb_kbd.c | 12 +- common/usb_storage.c | 34 +- common/xyzModem.c | 4 +- disk/Makefile | 18 +- disk/disk-uclass.c | 2 +- disk/part.c | 14 +- disk/part_amiga.h | 2 +- disk/part_dos.c | 6 +- disk/part_efi.c | 10 +- disk/part_mac.h | 2 +- doc/develop/driver-model/i2c-howto.rst | 2 +- doc/develop/driver-model/livetree.rst | 2 +- doc/develop/driver-model/of-plat.rst | 10 +- doc/develop/spl.rst | 6 +- doc/develop/tests_writing.rst | 6 +- drivers/Makefile | 70 ++-- drivers/adc/meson-saradc.c | 6 +- drivers/ata/Makefile | 2 +- drivers/ata/dwc_ahsata.c | 2 +- drivers/block/Makefile | 6 +- drivers/block/blk-uclass.c | 2 +- drivers/block/host-uclass.c | 2 +- drivers/block/host_dev.c | 2 +- drivers/bus/Makefile | 2 +- drivers/cache/Makefile | 2 +- drivers/clk/Makefile | 14 +- drivers/clk/clk-uclass.c | 14 +- drivers/clk/clk_fixed_factor.c | 2 +- drivers/clk/clk_fixed_rate.c | 4 +- drivers/clk/clk_sandbox.c | 2 +- drivers/clk/clk_scmi.c | 2 +- drivers/clk/imx/Makefile | 18 +- drivers/clk/imx/clk-imx8mm.c | 4 +- drivers/clk/imx/clk-imx8mn.c | 4 +- drivers/clk/mediatek/clk-mt7622.c | 2 +- drivers/clk/mediatek/clk-mt7623.c | 2 +- drivers/clk/mediatek/clk-mt7629.c | 2 +- drivers/clk/mediatek/clk-mt7981.c | 2 +- drivers/clk/mediatek/clk-mt7986.c | 2 +- drivers/clk/rockchip/clk_px30.c | 6 +- drivers/clk/rockchip/clk_rk3036.c | 2 +- drivers/clk/rockchip/clk_rk3066.c | 8 +- drivers/clk/rockchip/clk_rk3188.c | 8 +- drivers/clk/rockchip/clk_rk322x.c | 2 +- drivers/clk/rockchip/clk_rk3288.c | 10 +- drivers/clk/rockchip/clk_rk3308.c | 6 +- drivers/clk/rockchip/clk_rk3328.c | 2 +- drivers/clk/rockchip/clk_rk3368.c | 18 +- drivers/clk/rockchip/clk_rk3399.c | 24 +- drivers/clk/rockchip/clk_rk3568.c | 10 +- drivers/clk/rockchip/clk_rv1108.c | 2 +- drivers/clk/rockchip/clk_rv1126.c | 8 +- drivers/clk/ti/Makefile | 4 +- drivers/core/Makefile | 14 +- drivers/core/device.c | 46 +-- drivers/core/dump.c | 2 +- drivers/core/fdtaddr.c | 14 +- drivers/core/lists.c | 8 +- drivers/core/ofnode.c | 16 +- drivers/core/read.c | 2 +- drivers/core/regmap.c | 2 +- drivers/core/root.c | 24 +- drivers/core/simple-bus.c | 6 +- drivers/core/syscon-uclass.c | 4 +- drivers/core/uclass.c | 12 +- drivers/core/util.c | 2 +- drivers/crypto/aspeed/aspeed_hace.c | 2 +- drivers/crypto/fsl/jr.c | 24 +- drivers/crypto/hash/hash_sw.c | 2 +- drivers/ddr/altera/Makefile | 2 +- drivers/ddr/fsl/main.c | 8 +- drivers/ddr/fsl/options.c | 4 +- drivers/dfu/Makefile | 14 +- drivers/dfu/dfu_sf.c | 8 +- drivers/dma/apbh_dma.c | 2 +- drivers/dma/dma-uclass.c | 2 +- drivers/fastboot/fb_command.c | 28 +- drivers/fastboot/fb_common.c | 4 +- drivers/fastboot/fb_mmc.c | 4 +- drivers/firmware/Makefile | 2 +- drivers/firmware/firmware-uclass.c | 2 +- drivers/firmware/psci.c | 2 +- drivers/fpga/fpga.c | 4 +- drivers/fpga/xilinx.c | 2 +- drivers/fpga/zynqmppl.c | 12 +- drivers/gpio/Kconfig | 4 + drivers/gpio/Makefile | 10 +- drivers/gpio/at91_gpio.c | 12 +- drivers/gpio/atmel_pio4.c | 2 +- drivers/gpio/bcm2835_gpio.c | 2 +- drivers/gpio/da8xx_gpio.c | 4 +- drivers/gpio/da8xx_gpio.h | 2 +- drivers/gpio/gpio-uclass.c | 16 +- drivers/gpio/imx_rgpio2p.c | 2 +- drivers/gpio/intel_gpio.c | 6 +- drivers/gpio/mpc83xx_spisel_boot.c | 4 +- drivers/gpio/mpc8xxx_gpio.c | 4 +- drivers/gpio/mvebu_gpio.c | 2 +- drivers/gpio/mxc_gpio.c | 12 +- drivers/gpio/mxs_gpio.c | 10 +- drivers/gpio/omap_gpio.c | 14 +- drivers/gpio/sandbox.c | 12 +- drivers/gpio/sunxi_gpio.c | 4 +- drivers/i2c/Kconfig | 30 ++ drivers/i2c/Makefile | 14 +- drivers/i2c/designware_i2c.c | 12 +- drivers/i2c/designware_i2c.h | 2 +- drivers/i2c/fsl_i2c.c | 6 +- drivers/i2c/i2c-emul-uclass.c | 4 +- drivers/i2c/i2c-uclass.c | 18 +- drivers/i2c/lpc32xx_i2c.c | 4 +- drivers/i2c/muxes/pca954x.c | 4 +- drivers/i2c/mv_i2c.c | 2 +- drivers/i2c/mvtwsi.c | 16 +- drivers/i2c/mxc_i2c.c | 8 +- drivers/i2c/omap24xx_i2c.c | 8 +- drivers/i2c/sun6i_p2wi.c | 4 +- drivers/i2c/sun8i_rsb.c | 4 +- drivers/input/Makefile | 6 +- drivers/input/input.c | 2 +- drivers/iommu/iommu-uclass.c | 6 +- drivers/led/Makefile | 2 +- drivers/mailbox/Makefile | 2 +- drivers/misc/Makefile | 22 +- drivers/misc/cros_ec.c | 2 +- drivers/misc/fs_loader.c | 2 +- drivers/misc/gsc.c | 2 +- drivers/misc/irq-uclass.c | 4 +- drivers/misc/irq_sandbox.c | 2 +- drivers/misc/misc-uclass.c | 2 +- drivers/misc/p2sb-uclass.c | 6 +- drivers/misc/test_drv.c | 2 +- drivers/mmc/Makefile | 10 +- drivers/mmc/davinci_mmc.c | 26 +- drivers/mmc/dw_mmc.c | 2 +- drivers/mmc/fsl_esdhc.c | 6 +- drivers/mmc/fsl_esdhc_imx.c | 52 +-- drivers/mmc/ftsdc010_mci.c | 8 +- drivers/mmc/jz_mmc.c | 4 +- drivers/mmc/mmc-uclass.c | 24 +- drivers/mmc/mmc.c | 148 +++---- drivers/mmc/mmc_legacy.c | 6 +- drivers/mmc/mmc_private.h | 8 +- drivers/mmc/mmc_write.c | 8 +- drivers/mmc/mtk-sd.c | 8 +- drivers/mmc/mxsmmc.c | 32 +- drivers/mmc/octeontx_hsmmc.c | 2 +- drivers/mmc/omap_hsmmc.c | 60 +-- drivers/mmc/pci_mmc.c | 2 +- drivers/mmc/renesas-sdhi.c | 40 +- drivers/mmc/rockchip_dw_mmc.c | 6 +- drivers/mmc/rockchip_sdhci.c | 2 +- drivers/mmc/sandbox_mmc.c | 2 +- drivers/mmc/sdhci.c | 24 +- drivers/mmc/socfpga_dw_mmc.c | 2 +- drivers/mmc/stm32_sdmmc2.c | 4 +- drivers/mmc/sunxi_mmc.c | 2 +- drivers/mmc/tmio-common.h | 2 +- drivers/mmc/uniphier-sd.c | 2 +- drivers/mtd/Makefile | 4 +- drivers/mtd/mtdcore.c | 2 +- drivers/mtd/mtdpart.c | 4 +- drivers/mtd/nand/Makefile | 2 +- drivers/mtd/nand/raw/Makefile | 2 +- drivers/mtd/nand/raw/davinci_nand.c | 2 +- drivers/mtd/nand/raw/fsl_elbc_nand.c | 2 +- drivers/mtd/nand/raw/mxs_nand.c | 2 +- drivers/mtd/nand/raw/nand.c | 6 +- drivers/mtd/nand/raw/nand_base.c | 4 +- drivers/mtd/nand/raw/omap_elm.c | 2 +- drivers/mtd/nand/raw/omap_gpmc.c | 2 +- drivers/mtd/spi/Makefile | 8 +- drivers/mtd/spi/sf-uclass.c | 4 +- drivers/mtd/spi/sf_internal.h | 4 +- drivers/mtd/spi/sf_mtd.c | 6 +- drivers/mtd/spi/sf_probe.c | 14 +- drivers/mtd/spi/spi-nor-core.c | 12 +- drivers/mtd/spi/spi-nor-ids.c | 2 +- drivers/mtd/spi/spi-nor-tiny.c | 2 +- drivers/mux/Makefile | 2 +- drivers/net/designware.c | 14 +- drivers/net/designware.h | 4 +- drivers/net/eth-phy-uclass.c | 4 +- drivers/net/fec_mxc.c | 10 +- drivers/net/fec_mxc.h | 2 +- drivers/net/fm/fm.c | 6 +- drivers/net/mvneta.c | 6 +- drivers/net/mvpp2.c | 8 +- drivers/net/rtl8169.c | 2 +- drivers/net/sh_eth.c | 10 +- drivers/net/smc911x.c | 2 +- drivers/net/sun8i_emac.c | 10 +- drivers/net/ti/cpsw.c | 4 +- drivers/pch/pch-uclass.c | 2 +- drivers/pci/pci_rom.c | 2 +- drivers/pci/pcie_dw_mvebu.c | 2 +- drivers/pci/pcie_imx.c | 4 +- drivers/phy/Makefile | 6 +- drivers/phy/meson-axg-mipi-dphy.c | 4 +- drivers/phy/meson-g12a-usb2.c | 12 +- drivers/phy/meson-g12a-usb3-pcie.c | 4 +- drivers/phy/meson-gxbb-usb2.c | 8 +- drivers/phy/meson-gxl-usb2.c | 12 +- drivers/phy/nop-phy.c | 16 +- drivers/phy/phy-imx8mq-usb.c | 8 +- drivers/phy/ti/Makefile | 2 +- drivers/pinctrl/Makefile | 6 +- drivers/pinctrl/intel/pinctrl_apl.c | 6 +- drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 12 +- drivers/pinctrl/mediatek/pinctrl-mtk-common.h | 4 +- drivers/pinctrl/mtmips/pinctrl-mt7620.c | 12 +- drivers/pinctrl/mtmips/pinctrl-mt7621.c | 18 +- drivers/pinctrl/mtmips/pinctrl-mt7628.c | 18 +- drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c | 4 +- drivers/pinctrl/nuvoton/pinctrl-npcm8xx.c | 4 +- drivers/pinctrl/nxp/pinctrl-mxs.c | 2 +- drivers/pinctrl/pinctrl-generic.c | 4 +- drivers/pinctrl/pinctrl-qe-io.c | 2 +- drivers/pinctrl/pinctrl-stmfx.c | 4 +- drivers/pinctrl/pinctrl-uclass.c | 10 +- drivers/pinctrl/pinctrl_stm32.c | 4 +- drivers/pinctrl/renesas/pfc.c | 4 +- drivers/pinctrl/rockchip/pinctrl-px30.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rk3036.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rk3066.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rk3128.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rk3188.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rk322x.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rk3288.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rk3308.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rk3328.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rk3368.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rk3399.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rv1108.c | 2 +- drivers/pinctrl/rockchip/pinctrl-rv1126.c | 2 +- .../pinctrl/uniphier/pinctrl-uniphier-core.c | 6 +- .../pinctrl/uniphier/pinctrl-uniphier-pro4.c | 2 +- .../pinctrl/uniphier/pinctrl-uniphier-pro5.c | 2 +- drivers/power/Makefile | 8 +- drivers/power/acpi_pmc/Makefile | 2 +- drivers/power/axp305.c | 2 +- drivers/power/domain/Makefile | 2 +- drivers/power/domain/power-domain-uclass.c | 2 +- drivers/power/exynos-tmu.c | 2 +- drivers/power/palmas.c | 2 +- drivers/power/pmic/Makefile | 30 +- drivers/power/pmic/as3722.c | 4 +- drivers/power/pmic/axp.c | 4 +- drivers/power/pmic/bd71837.c | 2 +- drivers/power/pmic/pca9450.c | 2 +- drivers/power/pmic/pmic-uclass.c | 2 +- drivers/power/pmic/pmic_tps62362.c | 6 +- drivers/power/pmic/pmic_tps65217.c | 18 +- drivers/power/pmic/pmic_tps65218.c | 4 +- drivers/power/pmic/pmic_tps65910.c | 6 +- drivers/power/pmic/rk8xx.c | 8 +- drivers/power/pmic/stpmic1.c | 6 +- drivers/power/power_i2c.c | 8 +- drivers/power/regulator/Makefile | 38 +- drivers/power/twl4030.c | 2 +- drivers/power/twl6030.c | 2 +- drivers/ram/Makefile | 2 +- drivers/ram/k3-am654-ddrss.c | 2 +- drivers/ram/rockchip/dmc-rk3368.c | 8 +- drivers/ram/rockchip/sdram_rk3066.c | 4 +- drivers/ram/rockchip/sdram_rk3188.c | 8 +- drivers/ram/rockchip/sdram_rk322x.c | 8 +- drivers/ram/rockchip/sdram_rk3288.c | 8 +- drivers/ram/rockchip/sdram_rk3328.c | 8 +- drivers/ram/rockchip/sdram_rk3399.c | 10 +- drivers/reboot-mode/reboot-mode-gpio.c | 8 +- drivers/reboot-mode/reboot-mode-rtc.c | 4 +- drivers/reboot-mode/reboot-mode-uclass.c | 2 +- drivers/remoteproc/Makefile | 2 +- drivers/remoteproc/rproc-uclass.c | 2 +- drivers/reset/reset-at91.c | 2 +- drivers/reset/reset-socfpga.c | 2 +- drivers/rtc/Kconfig | 18 + drivers/rtc/Makefile | 6 +- drivers/rtc/ds1337.c | 2 +- drivers/rtc/ds3231.c | 2 +- drivers/rtc/pcf8563.c | 2 +- drivers/rtc/pt7c4338.c | 2 +- drivers/rtc/rtc-uclass.c | 2 +- drivers/rtc/sandbox_rtc.c | 4 +- drivers/scsi/Makefile | 2 +- drivers/serial/Makefile | 4 +- drivers/serial/altera_jtag_uart.c | 2 +- drivers/serial/altera_uart.c | 4 +- drivers/serial/atmel_usart.c | 16 +- drivers/serial/ns16550.c | 30 +- drivers/serial/sandbox.c | 6 +- drivers/serial/serial-uclass.c | 32 +- drivers/serial/serial_ar933x.c | 4 +- drivers/serial/serial_arc.c | 4 +- drivers/serial/serial_bcm283x_mu.c | 4 +- drivers/serial/serial_bcm283x_pl011.c | 2 +- drivers/serial/serial_bcm6345.c | 4 +- drivers/serial/serial_linflexuart.c | 4 +- drivers/serial/serial_lpuart.c | 10 +- drivers/serial/serial_meson.c | 2 +- drivers/serial/serial_msm_geni.c | 6 +- drivers/serial/serial_mt7620.c | 14 +- drivers/serial/serial_mtk.c | 6 +- drivers/serial/serial_mvebu_a3700.c | 4 +- drivers/serial/serial_mxc.c | 12 +- drivers/serial/serial_ns16550.c | 4 +- drivers/serial/serial_omap.c | 14 +- drivers/serial/serial_pic32.c | 4 +- drivers/serial/serial_pl01x.c | 10 +- drivers/serial/serial_pl01x_internal.h | 2 +- drivers/serial/serial_rockchip.c | 6 +- drivers/serial/serial_s5p.c | 4 +- drivers/serial/serial_sbi.c | 2 +- drivers/serial/serial_semihosting.c | 2 +- drivers/serial/serial_sh.c | 6 +- drivers/serial/serial_sifive.c | 4 +- drivers/serial/serial_stm32.c | 6 +- drivers/serial/serial_xen.c | 6 +- drivers/serial/serial_xuartlite.c | 4 +- drivers/serial/serial_zynq.c | 4 +- drivers/spi/Makefile | 2 +- drivers/spi/atmel_spi.c | 10 +- drivers/spi/cf_spi.c | 4 +- drivers/spi/davinci_spi.c | 4 +- drivers/spi/designware_spi.c | 6 +- drivers/spi/fsl_espi.c | 6 +- drivers/spi/ich.c | 8 +- drivers/spi/ich.h | 2 +- drivers/spi/mvebu_a3700_spi.c | 6 +- drivers/spi/mxc_spi.c | 8 +- drivers/spi/mxs_spi.c | 8 +- drivers/spi/nxp_fspi.c | 10 +- drivers/spi/omap3_spi.c | 4 +- drivers/spi/pl022_spi.c | 4 +- drivers/spi/renesas_rpc_spi.c | 4 +- drivers/spi/rk_spi.c | 8 +- drivers/spi/rockchip_sfc.c | 8 +- drivers/spi/sh_qspi.c | 4 +- drivers/spi/spi-uclass.c | 12 +- drivers/spi/ti_qspi.c | 2 +- drivers/sysreset/Makefile | 6 +- drivers/sysreset/sysreset_sandbox.c | 2 +- drivers/timer/Makefile | 6 +- drivers/timer/andes_plmt_timer.c | 2 +- drivers/timer/cadence-ttc.c | 2 +- drivers/timer/dw-apb-timer.c | 8 +- drivers/timer/omap-timer.c | 2 +- drivers/timer/ostm_timer.c | 2 +- drivers/timer/riscv_timer.c | 2 +- drivers/timer/rockchip_timer.c | 12 +- drivers/timer/sandbox_timer.c | 2 +- drivers/timer/sifive_clint_timer.c | 2 +- drivers/timer/timer-uclass.c | 6 +- drivers/timer/tsc_timer.c | 6 +- drivers/tpm/Makefile | 4 +- drivers/tpm/tpm-uclass.c | 2 +- drivers/tpm/tpm2_tis_spi.c | 2 +- drivers/usb/cdns3/Makefile | 4 +- drivers/usb/cdns3/core.c | 6 +- drivers/usb/common/Makefile | 2 +- drivers/usb/common/common.c | 2 +- drivers/usb/common/usb_urb.c | 2 +- drivers/usb/dwc3/Makefile | 2 +- drivers/usb/dwc3/core.c | 4 +- drivers/usb/dwc3/core.h | 2 +- drivers/usb/dwc3/dwc3-generic.c | 12 +- drivers/usb/dwc3/dwc3-layerscape.c | 6 +- drivers/usb/dwc3/dwc3-meson-g12a.c | 8 +- drivers/usb/dwc3/dwc3-meson-gxl.c | 8 +- drivers/usb/gadget/ci_udc.c | 4 +- drivers/usb/gadget/composite.c | 2 +- drivers/usb/gadget/dwc2_udc_otg.c | 16 +- drivers/usb/gadget/f_fastboot.c | 2 +- drivers/usb/gadget/udc/Makefile | 6 +- drivers/usb/gadget/udc/udc-uclass.c | 4 +- drivers/usb/host/Makefile | 6 +- drivers/usb/host/dwc2.c | 14 +- drivers/usb/host/dwc3-of-simple.c | 2 +- drivers/usb/host/ehci-atmel.c | 2 +- drivers/usb/host/ehci-hcd.c | 12 +- drivers/usb/host/ehci-marvell.c | 4 +- drivers/usb/host/ehci-mx6.c | 18 +- drivers/usb/host/ehci-mxs.c | 4 +- drivers/usb/host/ehci-pci.c | 8 +- drivers/usb/host/ehci-vf.c | 2 +- drivers/usb/host/ohci-da8xx.c | 2 +- drivers/usb/host/ohci-hcd.c | 10 +- drivers/usb/host/ohci-lpc32xx.c | 8 +- drivers/usb/host/ohci.h | 4 +- drivers/usb/host/r8a66597-hcd.c | 4 +- drivers/usb/host/xhci-dwc3.c | 2 +- drivers/usb/host/xhci-mem.c | 6 +- drivers/usb/mtu3/mtu3_plat.c | 4 +- drivers/usb/musb-new/musb_uboot.c | 16 +- drivers/usb/musb-new/omap2430.c | 6 +- drivers/usb/musb-new/ti-musb.c | 20 +- drivers/video/dw_hdmi.c | 2 +- drivers/video/meson/meson_dw_hdmi.c | 4 +- drivers/video/mxsfb.c | 2 +- drivers/video/nexell_display.c | 4 +- drivers/video/video-uclass.c | 6 +- drivers/w1-eeprom/w1-eeprom-uclass.c | 2 +- drivers/w1/w1-uclass.c | 2 +- drivers/watchdog/Makefile | 2 +- drivers/watchdog/designware_wdt.c | 8 +- drivers/watchdog/imx_watchdog.c | 4 +- drivers/watchdog/omap_wdt.c | 4 +- drivers/watchdog/wdt-uclass.c | 2 +- env/Kconfig | 10 + env/Makefile | 22 +- env/env.c | 2 +- env/mmc.c | 4 +- env/sf.c | 2 +- fs/fat/Makefile | 4 +- fs/fat/fat.c | 6 +- fs/fs.c | 8 +- fs/sandbox/Makefile | 2 +- fs/squashfs/Makefile | 2 +- include/_exports.h | 4 +- include/asm-generic/global_data.h | 30 +- include/asm-generic/gpio.h | 2 +- include/atf_common.h | 2 +- include/binman_sym.h | 6 +- include/blk.h | 8 +- include/bootdev.h | 2 +- include/bootstage.h | 4 +- include/cli.h | 2 +- include/clk.h | 10 +- include/configs/MPC8548CDS.h | 2 +- include/configs/kmcent2.h | 2 +- include/configs/mv-common.h | 2 +- include/configs/p1_p2_rdb_pc.h | 2 +- include/configs/sunxi-common.h | 2 +- include/configs/ti_omap4_common.h | 2 +- include/configs/x530.h | 2 +- include/ctype.h | 61 ++- include/dfu.h | 12 +- include/dm/acpi.h | 2 +- include/dm/device-internal.h | 14 +- include/dm/device.h | 30 +- include/dm/device_compat.h | 4 +- include/dm/devres.h | 2 +- include/dm/ofnode.h | 6 +- include/dm/pinctrl.h | 4 +- include/dm/platdata.h | 6 +- include/dm/read.h | 8 +- include/dm/root.h | 2 +- include/dm/uclass-internal.h | 4 +- include/dm/util.h | 4 +- include/dma.h | 4 +- include/dt-structs.h | 2 +- include/dwc3-uboot.h | 2 +- include/efi_loader.h | 6 +- include/env_internal.h | 2 +- include/errno.h | 2 +- include/event.h | 10 +- include/exports.h | 4 +- include/generic-phy.h | 2 +- include/handoff.h | 2 +- include/hash.h | 2 +- include/hwspinlock.h | 2 +- include/i2c.h | 6 +- include/i2c_eeprom.h | 2 +- include/image.h | 6 +- include/init.h | 2 +- include/iommu.h | 4 +- include/irq.h | 2 +- include/linux/compiler_types.h | 2 +- include/linux/kconfig.h | 149 +++---- include/linux/mtd/mtd.h | 4 +- include/linux/mtd/spi-nor.h | 2 +- include/linux/usb/gadget.h | 2 +- include/linux/usb/phy.h | 2 +- include/log.h | 12 +- include/malloc.h | 2 +- include/mmc.h | 36 +- include/mpc85xx.h | 2 +- include/nand.h | 2 +- include/net.h | 2 +- include/ns16550.h | 4 +- include/nvmem.h | 2 +- include/palmas.h | 2 +- include/part.h | 10 +- include/phys2bus.h | 2 +- include/power-domain.h | 16 +- include/power/max77686_pmic.h | 2 +- include/power/pmic.h | 14 +- include/power/regulator.h | 2 +- include/reboot-mode/reboot-mode-gpio.h | 4 +- include/remoteproc.h | 2 +- include/reset.h | 2 +- include/rtc.h | 2 +- include/sdhci.h | 2 +- include/semihosting.h | 4 +- include/serial.h | 2 +- include/spi.h | 4 +- include/spi_flash.h | 2 +- include/spl.h | 2 +- include/syscon.h | 2 +- include/sysinfo.h | 2 +- include/tlv_eeprom.h | 6 +- include/twl4030.h | 2 +- include/twl6030.h | 2 +- include/usb.h | 12 +- include/usb/xhci.h | 8 +- include/xilinx.h | 2 +- include/zynqmppl.h | 2 +- lib/Kconfig | 20 + lib/Makefile | 54 +-- lib/acpi/Makefile | 8 +- lib/aes/Makefile | 2 +- lib/asm-offsets.c | 2 +- lib/crypto/Makefile | 14 +- lib/display_options.c | 2 +- lib/ecdsa/Makefile | 2 +- lib/efi/efi_app.c | 2 +- lib/efi_loader/efi_conformance.c | 2 +- lib/efi_loader/efi_console.c | 4 +- lib/efi_loader/efi_device_path.c | 2 +- lib/efi_loader/efi_disk.c | 2 +- lib/efi_loader/efi_root_node.c | 4 +- lib/efi_selftest/efi_selftest_ecpt.c | 2 +- lib/fdtdec.c | 28 +- lib/hang.c | 4 +- lib/hashtable.c | 2 +- lib/hexdump.c | 2 +- lib/image-sparse.c | 2 +- lib/libfdt/Makefile | 2 +- lib/lmb.c | 4 +- lib/panic.c | 2 +- lib/rsa/Makefile | 4 +- lib/rsa/rsa-sign.c | 2 +- lib/rsa/rsa-verify.c | 10 +- lib/semihosting.c | 2 +- lib/string.c | 2 +- lib/time.c | 2 +- lib/tiny-printf.c | 6 +- lib/vsprintf.c | 8 +- net/Makefile | 8 +- net/bootp.c | 2 +- net/eth-uclass.c | 4 +- net/eth_common.c | 2 +- net/tftp.c | 3 +- scripts/Kbuild.include | 16 - scripts/Makefile.build | 12 +- scripts/Makefile.dts | 2 +- scripts/Makefile.spl | 66 ++-- scripts/basic/fixdep.c | 162 ++++++-- scripts/conf_noproper | 175 +++++++++ scripts/conf_nospl | 79 ++++ scripts/kconfig/conf.c | 6 + scripts/kconfig/confdata.c | 367 ++++++++++++++++-- scripts/kconfig/expr.h | 18 + scripts/kconfig/lkc.h | 9 + test/Kconfig | 5 + test/Makefile | 20 +- test/cmd_ut.c | 2 +- test/dm/Makefile | 2 +- test/dm/clk_ccf.c | 4 +- test/dm/core.c | 2 +- test/dm/fastboot.c | 2 +- test/dm/of_platdata.c | 4 +- test/dm/ofnode.c | 2 +- test/dm/part.c | 2 +- test/dm/spi.c | 2 +- test/fuzz/Makefile | 2 +- test/lib/Kconfig | 20 +- test/lib/kconfig.c | 21 +- test/lib/kconfig_spl.c | 16 +- test/print_ut.c | 4 +- test/py/tests/test_kconfig.py | 6 +- test/test-main.c | 18 +- test/unicode_ut.c | 4 +- tools/binman/test/generated/autoconf.h | 4 +- tools/moveconfig.py | 2 +- 984 files changed, 4070 insertions(+), 3242 deletions(-) mode change 120000 => 100644 include/ctype.h create mode 100644 scripts/conf_noproper create mode 100644 scripts/conf_nospl -- 2.39.1.456.gfc5497dd1b-goog