From: Alif Zakuan Yuslaimi <[email protected]> Add configuration option to compile the entire NAND framework into U-Boot SPL. This is required by some drivers, like the Denali NAND, which use a lot of functionality from the NAND core.
Signed-off-by: Marek Vasut <[email protected]> Signed-off-by: Tien Fong Chee <[email protected]> Signed-off-by: Alif Zakuan Yuslaimi <[email protected]> --- drivers/mtd/nand/raw/Kconfig | 8 ++++++++ drivers/mtd/nand/raw/Makefile | 28 ++++++++++++---------------- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/drivers/mtd/nand/raw/Kconfig b/drivers/mtd/nand/raw/Kconfig index adb271dfb8f..28b48d53def 100644 --- a/drivers/mtd/nand/raw/Kconfig +++ b/drivers/mtd/nand/raw/Kconfig @@ -208,6 +208,7 @@ config NAND_CADENCE config NAND_DENALI bool select SYS_NAND_SELF_INIT + select SYS_NAND_ONFI_DETECTION if TARGET_SOCFPGA_SOC64 imply CMD_NAND config NAND_DENALI_DT @@ -826,4 +827,11 @@ config SYS_NAND_HW_ECC_OOBFIRST endif # if SPL +config SPL_NAND_FRAMEWORK + bool "Compile the entire NAND framework into the SPL" + help + Some drivers require a lot of functionality from the NAND framework + core when used in SPL. This option allows compiling the full NAND + framework into the SPL instead of it's reduced version. + endif # if MTD_RAW_NAND diff --git a/drivers/mtd/nand/raw/Makefile b/drivers/mtd/nand/raw/Makefile index 34cba77046a..08829406902 100644 --- a/drivers/mtd/nand/raw/Makefile +++ b/drivers/mtd/nand/raw/Makefile @@ -3,8 +3,18 @@ # (C) Copyright 2006 # Wolfgang Denk, DENX Software Engineering, [email protected]. +nand-framework-objs := nand.o nand_bbt.o nand_ids.o nand_util.o \ + nand_ecc.o nand_base.o nand_timings.o nand_amd.o \ + nand_hynix.o nand_macronix.o nand_micron.o \ + nand_samsung.o nand_toshiba.o + ifdef CONFIG_XPL_BUILD +ifdef CONFIG_SPL_NAND_FRAMEWORK +obj-y += $(nand-framework-objs) +NORMAL_DRIVERS=y +endif + ifdef CONFIG_SPL_NAND_DRIVERS NORMAL_DRIVERS=y endif @@ -15,9 +25,7 @@ obj-$(CONFIG_SPL_NAND_DENALI) += denali_spl.o obj-$(CONFIG_SPL_NAND_SIMPLE) += nand_spl_simple.o obj-$(CONFIG_SPL_NAND_LOAD) += nand_spl_load.o obj-$(CONFIG_SPL_NAND_ECC) += nand_ecc.o -obj-$(CONFIG_SPL_NAND_BASE) += nand_base.o nand_amd.o nand_hynix.o \ - nand_macronix.o nand_micron.o \ - nand_samsung.o nand_toshiba.o +obj-$(CONFIG_SPL_NAND_BASE) += nand_base.o obj-$(CONFIG_SPL_NAND_IDENT) += nand_ids.o nand_timings.o obj-$(CONFIG_$(PHASE_)NAND_INIT) += nand.o ifeq ($(CONFIG_SPL_ENV_SUPPORT),y) @@ -28,19 +36,7 @@ else # not spl NORMAL_DRIVERS=y -obj-y += nand.o -obj-y += nand_bbt.o -obj-y += nand_ids.o -obj-y += nand_util.o -obj-y += nand_ecc.o -obj-y += nand_base.o -obj-y += nand_amd.o -obj-y += nand_hynix.o -obj-y += nand_macronix.o -obj-y += nand_micron.o -obj-y += nand_samsung.o -obj-y += nand_toshiba.o -obj-y += nand_timings.o +obj-y += $(nand-framework-objs) endif # not spl -- 2.25.1

