On 07/09/2013 04:50:49 AM, [email protected] wrote:
+During the TPL build a variable named CONFIG_TPL_BUILD is exported
+in the make environment and also appended to CPPFLAGS with
-DCONFIG_TPL_BUILD.
+Source files can therefore be compiled for TPL with different
settings.
+
+For example:
+
+ifeq ($(CONFIG_TPL_BUILD),y)
+COBJS-y += board_tpl.o
+else
+COBJS-y += board.o
+endif
+
+COBJS-$(CONFIG_TPL_BUILD) += foo.o
This is not how it should normally be done. Normally the board config
file should determine which SPL options to choose, based on whether
CONFIG_TPL_BUILD is set.
diff --git a/drivers/mtd/nand/Makefile b/drivers/mtd/nand/Makefile
index bb81e84..6507fcf 100644
--- a/drivers/mtd/nand/Makefile
+++ b/drivers/mtd/nand/Makefile
@@ -29,6 +29,8 @@ ifdef CONFIG_CMD_NAND
ifdef CONFIG_SPL_BUILD
+ifndef CONFIG_TPL_BUILD
Why? Let the board file define what it wants for the TPL case, just as
in SPL.
ifdef CONFIG_SPL_NAND_DRIVERS
NORMAL_DRIVERS=y
endif
@@ -40,6 +42,10 @@ COBJS-$(CONFIG_SPL_NAND_LOAD) += nand_spl_load.o
COBJS-$(CONFIG_SPL_NAND_ECC) += nand_ecc.o
COBJS-$(CONFIG_SPL_NAND_BASE) += nand_base.o
+else
+COBJS-y += nand.o
+endif
What do you need nand.c for? Why do you think all other TPLs will have
the same need?
else # not spl
NORMAL_DRIVERS=y
@@ -82,9 +88,11 @@ COBJS-$(CONFIG_NAND_DOCG4) += docg4.o
else # minimal SPL drivers
+ifdef CONFIG_SPL_BUILD
COBJS-$(CONFIG_NAND_FSL_ELBC) += fsl_elbc_spl.o
COBJS-$(CONFIG_NAND_FSL_IFC) += fsl_ifc_spl.o
COBJS-$(CONFIG_NAND_MXC) += mxc_nand_spl.o
+endif
How are you going to get here in the first place without
CONFIG_SPL_BUILD?
@@ -162,6 +173,17 @@ $(OBJTREE)/SPL : $(obj)u-boot-spl.bin depend
$(MAKE) -C $(SRCTREE)/arch/arm/imx-common $@
ALL-y += $(obj)u-boot-spl.bin
+else
+$(OBJTREE)/MLO: $(obj)u-boot-tpl.bin
+ $(OBJTREE)/tools/mkimage -T omapimage \
+ -a $(CONFIG_SPL_TEXT_BASE) -d $< $@
+
+$(OBJTREE)/MLO.byteswap: $(obj)u-boot-tpl.bin
+ $(OBJTREE)/tools/mkimage -T omapimage -n byteswap \
+ -a $(CONFIG_SPL_TEXT_BASE) -d $< $@
+
+ALL-y += $(obj)u-boot-tpl.bin
+endif
Why? There's not even a user of MLO with TPL.
In any case, is there no way we can just set filename variables based
on SPL/TPL here, rather than duplicating code?
+ifndef CONFIG_TPL_BUILD
$(obj)u-boot-spl.bin: $(obj)u-boot-spl
$(OBJCOPY) $(OBJCFLAGS) -O binary $< $@
@@ -185,6 +208,18 @@ GEN_UBOOT = \
$(obj)u-boot-spl: depend $(START) $(LIBS) $(obj)u-boot-spl.lds
$(GEN_UBOOT)
+else
+$(obj)u-boot-tpl.bin: $(obj)u-boot-tpl
+ $(OBJCOPY) $(OBJCFLAGS) -O binary $< $@
+
+GEN_UBOOT = \
+ cd $(obj) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) $(__START) \
+ --start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
+ -Map u-boot-tpl.map -o u-boot-tpl
+
+$(obj)u-boot-tpl: depend $(START) $(LIBS) $(obj)u-boot-spl.lds
+ $(GEN_UBOOT)
+endif
Likewise.
-Scott
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot