summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYork Sun <york.sun@nxp.com>2018-06-26 10:03:22 -0700
committerTom Rini <trini@konsulko.com>2018-07-21 12:24:31 -0400
commit474ecd2c84d97314b8145fbe3a57887f41b2edb3 (patch)
treeaf23d2f9097bfaef92c69a4ed3177f85454c2907
parent646f1ab4bcfedf2db7df47a46ac2353366b7b2b7 (diff)
downloadu-boot-474ecd2c84d97314b8145fbe3a57887f41b2edb3.tar.gz
u-boot-474ecd2c84d97314b8145fbe3a57887f41b2edb3.tar.bz2
u-boot-474ecd2c84d97314b8145fbe3a57887f41b2edb3.zip
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>
-rw-r--r--env/Kconfig115
-rw-r--r--env/Makefile40
2 files changed, 126 insertions, 29 deletions
diff --git a/env/Kconfig b/env/Kconfig
index 787b487bb2..be99efb937 100644
--- a/env/Kconfig
+++ b/env/Kconfig
@@ -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
diff --git a/env/Makefile b/env/Makefile
index fa635c8082..90144d6caf 100644
--- a/env/Makefile
+++ b/env/Makefile
@@ -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
-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
+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
+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)