[U-Boot] SPL framework re-design
Wolfgang Denk
wd at denx.de
Sat Jun 25 14:10:50 CEST 2011
Dear Aneesh V,
In message <4E00799A.5040302 at ti.com> you wrote:
>
> > Here is a crude implementation of the top-down approach you had been
> > suggesting (or my interpretation of it). This is not complete yet and
> > serves only as a material for further discussions on this topic.
>
> Here is an updated version of my prototype implementation with fixes
> for some issues pointed out by Scott. Please let me know your views
> about this.
>
> ---
> Makefile | 5 ++
> include/configs/omap4_sdp4430.h | 1 +
> spl/Makefile | 94
> +++++++++++++++++++++++++++++++++++++++
> spl/mmc/Makefile | 55 +++++++++++++++++++++++
> 4 files changed, 155 insertions(+), 0 deletions(-)
> create mode 100644 spl/Makefile
> create mode 100644 spl/mmc/Makefile
>
> diff --git a/Makefile b/Makefile
> index 8540e39..0321634 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -316,6 +316,7 @@ BOARD_SIZE_CHECK =
> endif
>
> # Always append ALL so that arch config.mk's can add custom ones
> +ALL += spl
> ALL += $(obj)u-boot.srec $(obj)u-boot.bin $(obj)System.map
This patch seems strangely white-space corrupted.
> ifeq ($(CONFIG_NAND_U_BOOT),y)
> @@ -428,6 +429,9 @@ $(obj)u-boot-onenand.bin: onenand_ipl $(obj)u-boot.bin
> mmc_spl: $(TIMESTAMP_FILE) $(VERSION_FILE) depend
> $(MAKE) -C mmc_spl/board/$(BOARDDIR) all
>
> +spl: $(TIMESTAMP_FILE) $(VERSION_FILE) depend
> + $(MAKE) -C spl/ all
> +
> $(obj)mmc_spl/u-boot-mmc-spl.bin: mmc_spl
The mmc_spl/ is suppoed to be moved into spl/, isn't it?
> $(VERSION_FILE):
> @@ -1142,6 +1146,7 @@ clean:
> @rm -f $(obj)spl/{u-boot-spl-generated.lds,u-boot-spl,u-boot-spl.map}
> @rm -f $(obj)onenand_ipl/onenand-{ipl,ipl.bin,ipl.map}
Dito here for onenand_ipl/ ?
> @rm -f
> $(obj)mmc_spl/{u-boot.lds,u-boot-spl,u-boot-spl.map,u-boot-spl.bin,u-boot-mmc-spl.bin}
...also line-wrapped.
> + @rm -f
> $(obj)spl/{u-boot.lds,u-boot-spl,u-boot-spl.map,u-boot-spl.bin,u-boot-mmc-spl.bin}
Make this:
@rm -f $(obj)spl/u-boot{.lds,-spl,-spl.map,-spl.bin,-mmc-spl.bin}
instead.
> @rm -f $(ONENAND_BIN)
> @rm -f $(obj)onenand_ipl/u-boot.lds
Goes away?
> --- /dev/null
> +++ b/spl/Makefile
> @@ -0,0 +1,94 @@
> +#
> +# (C) Copyright 2011 Daniel Schwierzeck, daniel.schwierzeck at googlemail.com.
Really???
> +# This file is released under the terms of GPL v2 and any later version.
> +# See the file COPYING in the root directory of the source tree for
> details.
> +#
> +
> +include $(TOPDIR)/config.mk
> +LIBS-$(CONFIG_SYS_SPL_MMC_SUPPORT) = mmc/libmmc.o
> +LIBS-$(CONFIG_SYS_SPL_FAT_SUPPORT) += fat/libfat.o
> +LIBS-$(CONFIG_SYS_SPL_NAND_SUPPORT) += nand/libnand.o
> +LIBS-$(CONFIG_SYS_SPL_ONENAND_SUPPORT) += onenand/libonenand.o
As Mike mentioned, we can eventually directly include the OBJSs here
and omit the building of libraries?
> +LIBS-y += $(shell if [ -f $(ARCH)/Makefile ]; then echo \
> + "$(ARCH)/lib$(ARCH).o"; fi)
> +LIBS-y += $(shell if [ -f $(ARCH)/$(CPU)/Makefile ]; then echo \
> + "$(ARCH)/$(CPU)/lib$(CPU).o"; fi)
> +LIBS-y += $(shell if [ -f $(ARCH)/$(CPU)/$(SOC)/Makefile ]; then echo \
> + "$(ARCH)/$(CPU)/$(SOC)/lib$(SOC).o"; fi)
> +LIBS-y += $(shell if [ -f $(ARCH)/$(CPU)/$(SOC)/$(BOARD)/Makefile ];
> then echo \
> + "$(ARCH)/$(CPU)/$(SOC)/$(BOARD)/lib$(BOARD).o"; fi)
We should probably use /$(BOARDDIR)? here instead of /$(BOARD)/ to
allow for vendor directories (where "BOARDDIR = $(VENDOR)/$(BOARD)").
> +ALL = $(obj)u-boot-spl.bin
> +
> +all: $(ALL)
Do we need ALL then at all?
...
> diff --git a/spl/mmc/Makefile b/spl/mmc/Makefile
> new file mode 100644
> index 0000000..b4f7efd
> --- /dev/null
> +++ b/spl/mmc/Makefile
> @@ -0,0 +1,55 @@
> +#
> +# (C) Copyright 2000-2003
> +# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
Really???
> +$(obj)mmc.c:
> + @rm -f $@
> + @ln -s $(TOPDIR)/drivers/mmc/mmc.c $@
> +
> +$(obj)omap_hsmmc.c:
> + @rm -f $@
> + @ln -s $(TOPDIR)/drivers/mmc/omap_hsmmc.c $@
Hm... can we try to do without the symlinks?
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"The whole problem with the world is that fools and fanatics are
always so certain of themselves, but wiser people so full of doubts."
- Bertrand Russell
More information about the U-Boot
mailing list