]> git.dujemihanovic.xyz Git - u-boot.git/commit
Merge patch series "Tidy up use of 'SPL' and CONFIG_SPL_BUILD"
authorTom Rini <trini@konsulko.com>
Fri, 11 Oct 2024 18:23:25 +0000 (12:23 -0600)
committerTom Rini <trini@konsulko.com>
Fri, 11 Oct 2024 18:23:25 +0000 (12:23 -0600)
commit47e544f576699ca4630e20448db6a05178960697
treef31951120512ac41f145dc0fcf6b0bbdfe5b9c01
parent5d899fc58c44fe5623e31524da2205d8597a53d1
parent0220a68c25cbfdfa495927f83abf0b1d4ebd823b
Merge patch series "Tidy up use of 'SPL' and CONFIG_SPL_BUILD"

Simon Glass <sjg@chromium.org> says:

When the SPL build-phase was first created it was designed to solve a
particular problem (the need to init SDRAM so that U-Boot proper could
be loaded). It has since expanded to become an important part of U-Boot,
with three phases now present: TPL, VPL and SPL

Due to this history, the term 'SPL' is used to mean both a particular
phase (the one before U-Boot proper) and all the non-proper phases.
This has become confusing.

For a similar reason CONFIG_SPL_BUILD is set to 'y' for all 'SPL'
phases, not just SPL. So code which can only be compiled for actual SPL,
for example, must use something like this:

   #if defined(CONFIG_SPL_BUILD) && !defined(CONFIG_TPL_BUILD)

In Makefiles we have similar issues. SPL_ has been used as a variable
which expands to either SPL_ or nothing, to chose between options like
CONFIG_BLK and CONFIG_SPL_BLK. When TPL appeared, a new SPL_TPL variable
was created which expanded to 'SPL_', 'TPL_' or nothing. Later it was
updated to support 'VPL_' as well.

This series starts a change in terminology and usage to resolve the
above issues:

- The word 'xPL' is used instead of 'SPL' to mean a non-proper build
- A new CONFIG_XPL_BUILD define indicates that the current build is an
  'xPL' build
- The existing CONFIG_SPL_BUILD is changed to mean SPL; it is not now
  defined for TPL and VPL phases
- The existing SPL_ Makefile variable is renamed to SPL_
- The existing SPL_TPL Makefile variable is renamed to PHASE_

It should be noted that xpl_phase() can generally be used instead of
the above CONFIGs without a code-space or run-time penalty.

This series does not attempt to convert all of U-Boot to use this new
terminology but it makes a start. In particular, renaming spl.h and
common/spl seems like a bridge too far at this point.

The series is fully bisectable. It has also been checked to ensure there
are no code-size changes on any commit.
49 files changed:
Makefile
README
arch/arm/lib/Makefile
arch/arm/lib/cache.c
arch/arm/mach-imx/imx8m/soc.c
arch/arm/mach-sc5xx/Makefile
arch/arm/mach-stm32mp/stm32mp1/stm32mp15x.c
arch/arm/mach-tegra/board2.c
arch/riscv/lib/Makefile
board/atmel/at91sam9m10g45ek/at91sam9m10g45ek.c
board/atmel/at91sam9n12ek/at91sam9n12ek.c
board/atmel/at91sam9x5ek/at91sam9x5ek.c
board/atmel/sama5d27_som1_ek/sama5d27_som1_ek.c
board/atmel/sama5d27_wlsom1_ek/sama5d27_wlsom1_ek.c
board/atmel/sama5d2_icp/sama5d2_icp.c
board/atmel/sama5d2_xplained/sama5d2_xplained.c
board/atmel/sama5d3_xplained/sama5d3_xplained.c
board/atmel/sama5d3xek/sama5d3xek.c
board/atmel/sama5d4_xplained/sama5d4_xplained.c
board/atmel/sama5d4ek/sama5d4ek.c
board/conclusive/kstr-sama5d27/kstr-sama5d27.c
board/dhelectronics/dh_stm32mp1/board.c
board/google/veyron/veyron.c
board/siemens/corvus/board.c
board/siemens/smartweb/smartweb.c
board/siemens/taurus/taurus.c
boot/image-android.c
doc/develop/index.rst
drivers/core/ofnode.c
drivers/gpio/Makefile
drivers/misc/Makefile
drivers/mmc/mmc.c
drivers/mmc/rockchip_dw_mmc.c
drivers/mmc/rockchip_sdhci.c
drivers/mtd/spi/spi-nor-core.c
drivers/net/Kconfig
drivers/pinctrl/mediatek/pinctrl-mtk-common.c
drivers/power/regulator/rk8xx.c
drivers/serial/ns16550.c
drivers/spi/rockchip_sfc.c
drivers/spi/spi-uclass.c
drivers/usb/gadget/Makefile
drivers/watchdog/Makefile
env/mmc.c
fs/Makefile
include/env_callback.h
include/mmc.h
lib/fdtdec.c
net/net.c