[U-Boot] [PATCH 3/8 v2] Introduce the Tertiary Program loader
Wolfgang Denk
wd at denx.de
Sat Jan 22 23:04:38 CET 2011
Dear Haiying.Wang at freescale.com,
In message <1291217737-3870-4-git-send-email-Haiying.Wang at freescale.com> you wrote:
> From: Haiying Wang <Haiying.Wang at freescale.com>
>
> TPL is introduced to enable a loader stub that boots out of some type of RAM,
> after being loaded by an SPL or similar platform-specific mechanism.
>
> One example of using this tpl loader is to initialize the ddr through spd code
> in case the L2 SRAM size is not big enough to hold the final uboot image and
> the nand spl code needs to be limitated to 4K byte, then tpl code will load the
> final uboot image after ddr is initialized.
>
> Signed-off-by: Haiying Wang <Haiying.Wang at freescale.com>
> ---
> Incorporate Mike's comment to use new variable NAND_SPL_OBJS-y
> Makefile | 17 +++++++++++++++--
> README | 27 +++++++++++++++++++++++++++
> 2 files changed, 42 insertions(+), 2 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 87a383d..94af465 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -290,6 +290,10 @@ LDPPFLAGS += \
> $(shell $(LD) --version | \
> sed -ne 's/GNU ld version \([0-9][0-9]*\)\.\([0-9][0-9]*\).*/-DLD_MAJOR=\1 -DLD_MINOR=\2/p')
>
> +ifeq ($(CONFIG_TPL_U_BOOT),y)
> +TPL_BOOT = tpl
> +endif
I don't understand what the "TPL_BOOT" is good for, or how it's
supposed to work.
> ifeq ($(CONFIG_NAND_U_BOOT),y)
> NAND_SPL = nand_spl
> U_BOOT_NAND = $(obj)u-boot-nand.bin
> @@ -407,8 +411,15 @@ $(obj)u-boot.lds: $(LDSCRIPT)
> $(NAND_SPL): $(TIMESTAMP_FILE) $(VERSION_FILE) depend
> $(MAKE) -C nand_spl/board/$(BOARDDIR) all
>
> -$(U_BOOT_NAND): $(NAND_SPL) $(obj)u-boot.bin
> - cat $(obj)nand_spl/u-boot-spl-16k.bin $(obj)u-boot.bin > $(obj)u-boot-nand.bin
> +$(TPL_BOOT): $(TIMESTAMP_FILE) $(VERSION_FILE) depend
> + $(MAKE) -C tpl/board/$(BOARDDIR) all
Assume CONFIG_TPL_U_BOOT is not defined, then TPL_BOOT is not defined,
and this rule will probably cause a build error, doesn't it?
Has this code ever been tested?
And if we use a variable for the "tlp" string, should this not be
...
$(MAKE) -C $(TPL_BOOT)/board/$(BOARDDIR) all
??
> +NAND_SPL_OBJS-y += $(obj)nand_spl/u-boot-spl-16k.bin
> +NAND_SPL_OBJS-$(CONFIG_TPL_U_BOOT) += $(obj)tpl/u-boot-tpl.bin
> +NAND_SPL_OBJS-y += $(obj)u-boot.bin
Ditto here and in the following - but how is NAND_SPL related to TPL
building? These should be completely independent?
> +- TPL Boot Support
> + CONFIG_TPL_U_BOOT
> +
> + Builds a U-Boot image that contains a loader stub (tertiary
> + program loader -- TPL) that boots out of some type of RAM,
> + after being loaded by an SPL or similar platform-specific
> + mechanism. This symbol will be set in all build phases.
> +
> + CONFIG_TPL_BOOT
> +
> + This is set by the build system when compiling code to go into
> + the TPL. It is not set when building the code that the TPL
> + loads, or when building the SPL.
Can we not do with a single variable definition?
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
Things that try to look like things often do look more like things
than things. Well-known fact. - Terry Pratchett, _Wyrd Sisters_
More information about the U-Boot
mailing list