env: Simplify Makefile using $(SPL_TPL_)

Add Kconfig options SPL_ENV_* and TPL_ENV_* and simplify Makefile.
This allows SPL/TPL image has different environment setting from
full feature U-Boot.

Signed-off-by: York Sun <york.sun@nxp.com>
This commit is contained in:
York Sun 2018-06-26 10:03:22 -07:00 committed by Tom Rini
parent 646f1ab4bc
commit 474ecd2c84
2 changed files with 126 additions and 29 deletions

115
env/Kconfig vendored
View File

@ -533,4 +533,119 @@ config ENV_VARS_UBOOT_RUNTIME_CONFIG
run-time determined information about the hardware to the
environment. These will be named board_name, board_rev.
if SPL_ENV_SUPPORT
config SPL_ENV_IS_NOWHERE
bool "SPL Environment is not stored"
default y if ENV_IS_NOWHERE
help
Similar to ENV_IS_NOWHERE, used for SPL environment.
config SPL_ENV_IS_IN_MMC
bool "SPL Environment in an MMC device"
depends on !SPL_ENV_IS_NOWHERE
depends on ENV_IS_IN_MMC
default y
help
Similar to ENV_IS_IN_MMC, used for SPL environment.
config SPL_ENV_IS_IN_FAT
bool "SPL Environment is in a FAT filesystem"
depends on !SPL_ENV_IS_NOWHERE
depends on ENV_IS_IN_FAT
default y
help
Similar to ENV_IS_IN_FAT, used for SPL environment.
config SPL_ENV_IS_IN_EXT4
bool "SPL Environment is in a EXT4 filesystem"
depends on !SPL_ENV_IS_NOWHERE
depends on ENV_IS_IN_EXT4
default y
help
Similar to ENV_IS_IN_EXT4, used for SPL environment.
config SPL_ENV_IS_IN_NAND
bool "SPL Environment in a NAND device"
depends on !SPL_ENV_IS_NOWHERE
depends on ENV_IS_IN_NAND
default y
help
Similar to ENV_IS_IN_NAND, used for SPL environment.
config SPL_ENV_IS_IN_SPI_FLASH
bool "SPL Environment is in SPI flash"
depends on !SPL_ENV_IS_NOWHERE
depends on ENV_IS_IN_SPI_FLASH
default y
help
Similar to ENV_IS_IN_SPI_FLASH, used for SPL environment.
config SPL_ENV_IS_IN_FLASH
bool "SPL Environment in flash memory"
depends on !SPL_ENV_IS_NOWHERE
depends on ENV_IS_IN_FLASH
default y
help
Similar to ENV_IS_IN_FLASH, used for SPL environment.
endif
if TPL_ENV_SUPPORT
config TPL_ENV_IS_NOWHERE
bool "TPL Environment is not stored"
default y if ENV_IS_NOWHERE
help
Similar to ENV_IS_NOWHERE, used for TPL environment.
config TPL_ENV_IS_IN_MMC
bool "TPL Environment in an MMC device"
depends on !TPL_ENV_IS_NOWHERE
depends on ENV_IS_IN_MMC
default y
help
Similar to ENV_IS_IN_MMC, used for TPL environment.
config TPL_ENV_IS_IN_FAT
bool "TPL Environment is in a FAT filesystem"
depends on !TPL_ENV_IS_NOWHERE
depends on ENV_IS_IN_FAT
default y
help
Similar to ENV_IS_IN_FAT, used for TPL environment.
config TPL_ENV_IS_IN_EXT4
bool "TPL Environment is in a EXT4 filesystem"
depends on !TPL_ENV_IS_NOWHERE
depends on ENV_IS_IN_EXT4
default y
help
Similar to ENV_IS_IN_EXT4, used for TPL environment.
config TPL_ENV_IS_IN_NAND
bool "TPL Environment in a NAND device"
depends on !TPL_ENV_IS_NOWHERE
depends on ENV_IS_IN_NAND
default y
help
Similar to ENV_IS_IN_NAND, used for TPL environment.
config TPL_ENV_IS_IN_SPI_FLASH
bool "TPL Environment is in SPI flash"
depends on !TPL_ENV_IS_NOWHERE
depends on ENV_IS_IN_SPI_FLASH
default y
help
Similar to ENV_IS_IN_SPI_FLASH, used for TPL environment.
config TPL_ENV_IS_IN_FLASH
bool "TPL Environment in flash memory"
depends on !TPL_ENV_IS_NOWHERE
depends on ENV_IS_IN_FLASH
default y
help
Similar to ENV_IS_IN_FLASH, used for TPL environment.
endif
endmenu

40
env/Makefile vendored
View File

@ -14,41 +14,23 @@ extra-$(CONFIG_ENV_IS_EMBEDDED) += embedded.o
obj-$(CONFIG_ENV_IS_IN_EEPROM) += embedded.o
extra-$(CONFIG_ENV_IS_IN_FLASH) += embedded.o
obj-$(CONFIG_ENV_IS_IN_NVRAM) += embedded.o
obj-$(CONFIG_ENV_IS_IN_FLASH) += flash.o
obj-$(CONFIG_ENV_IS_IN_MMC) += mmc.o
obj-$(CONFIG_ENV_IS_IN_FAT) += fat.o
obj-$(CONFIG_ENV_IS_IN_EXT4) += ext4.o
obj-$(CONFIG_ENV_IS_IN_NAND) += nand.o
obj-$(CONFIG_ENV_IS_IN_NVRAM) += nvram.o
obj-$(CONFIG_ENV_IS_IN_ONENAND) += onenand.o
obj-$(CONFIG_ENV_IS_IN_SATA) += sata.o
obj-$(CONFIG_ENV_IS_IN_SPI_FLASH) += sf.o
obj-$(CONFIG_ENV_IS_IN_REMOTE) += remote.o
obj-$(CONFIG_ENV_IS_IN_UBI) += ubi.o
obj-$(CONFIG_ENV_IS_NOWHERE) += nowhere.o
else
obj-$(CONFIG_$(SPL_TPL_)ENV_SUPPORT) += attr.o
obj-$(CONFIG_$(SPL_TPL_)ENV_SUPPORT) += flags.o
obj-$(CONFIG_$(SPL_TPL_)ENV_SUPPORT) += callback.o
endif
ifdef CONFIG_SPL_BUILD
obj-$(CONFIG_ENV_IS_IN_FLASH) += flash.o
# environment
ifdef CONFIG_TPL_BUILD
obj-$(CONFIG_TPL_ENV_SUPPORT) += attr.o
obj-$(CONFIG_TPL_ENV_SUPPORT) += flags.o
obj-$(CONFIG_TPL_ENV_SUPPORT) += callback.o
else
obj-$(CONFIG_SPL_ENV_SUPPORT) += attr.o
obj-$(CONFIG_SPL_ENV_SUPPORT) += flags.o
obj-$(CONFIG_SPL_ENV_SUPPORT) += callback.o
endif
ifneq ($(CONFIG_TPL_ENV_SUPPORT)$(CONFIG_SPL_ENV_SUPPORT),)
obj-$(CONFIG_ENV_IS_NOWHERE) += nowhere.o
obj-$(CONFIG_ENV_IS_IN_MMC) += mmc.o
obj-$(CONFIG_ENV_IS_IN_FAT) += fat.o
obj-$(CONFIG_ENV_IS_IN_EXT4) += ext4.o
obj-$(CONFIG_ENV_IS_IN_NAND) += nand.o
obj-$(CONFIG_ENV_IS_IN_SPI_FLASH) += sf.o
obj-$(CONFIG_ENV_IS_IN_FLASH) += flash.o
endif
endif
obj-$(CONFIG_$(SPL_TPL_)ENV_IS_NOWHERE) += nowhere.o
obj-$(CONFIG_$(SPL_TPL_)ENV_IS_IN_MMC) += mmc.o
obj-$(CONFIG_$(SPL_TPL_)ENV_IS_IN_FAT) += fat.o
obj-$(CONFIG_$(SPL_TPL_)ENV_IS_IN_EXT4) += ext4.o
obj-$(CONFIG_$(SPL_TPL_)ENV_IS_IN_NAND) += nand.o
obj-$(CONFIG_$(SPL_TPL_)ENV_IS_IN_SPI_FLASH) += sf.o
obj-$(CONFIG_$(SPL_TPL_)ENV_IS_IN_FLASH) += flash.o
CFLAGS_embedded.o := -Wa,--no-warn -DENV_CRC=$(shell tools/envcrc 2>/dev/null)