From 474ecd2c84d97314b8145fbe3a57887f41b2edb3 Mon Sep 17 00:00:00 2001 From: York Sun Date: Tue, 26 Jun 2018 10:03:22 -0700 Subject: [PATCH] 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 --- env/Kconfig | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ env/Makefile | 40 ++++++--------------- 2 files changed, 126 insertions(+), 29 deletions(-) diff --git a/env/Kconfig b/env/Kconfig index 787b487..be99efb 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 fa635c8..90144d6 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)