All of lore.kernel.org
 help / color / mirror / Atom feed
From: Scott Wood <scottwood@freescale.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 6/7 v6] nand: tpl : introduce the TPL based on the SPL
Date: Wed, 26 Jun 2013 17:33:12 -0500	[thread overview]
Message-ID: <1372285992.8183.44@snotra> (raw)
In-Reply-To: <1372231112-25185-6-git-send-email-ying.zhang@freescale.com> (from ying.zhang@freescale.com on Wed Jun 26 02:18:31 2013)

On 06/26/2013 02:18:31 AM, ying.zhang at freescale.com wrote:
> From: Ying Zhang <b40530@freescale.com>
> 
> Due to the nand SPL on some board(e.g. P1022DS)has a size limit, it  
> can
> not be more than 4K. So, the SPL cannot initialize the DDR with the  
> SPD
> code. This patch introduces TPL to enable a loader stub that runs in  
> the
> L2 SRAM, after being loaded by the code from the SPL. It initializes  
> the
> DDR with the SPD or other operations.
> 
> The TPL's size is sizeable, the maximum size must not exceed the size  
> of L2
> SRAM.

Using L2 SRAM for this is an implementation detail, and not appropriate  
for a description of the generic TPL infrastructure.  For example, on  
newer QorIQ chips you'd be using CPC (L3) SRAM.

> It initializes the DDR through SPD code, and copys final uboot image
> to DDR. So there are three stage uboot images:
> 	* spl_boot, * tpl_boot, * final uboot image,
> 
> This patch is on top of the patch:
> SPL : spi flash : support to start from eSPI with SPL

You don't need to mention a dependency on an earlier patch in the same  
patchset (and when you do need to mention a dependency, it should be  
below the --- line so it doesn't go into the git history).  OTOH, you  
do need to mention the dependency on the patch to have a separate  
autoconf.mk.

> Signed-off-by: Ying Zhang <b40530@freescale.com>
> ---
> Compared with the original version, Changed as below:
> 1. Split from "powerpc/p1022ds: nand: introduce the TPL based on the  
> SPL".
> 2. No change.
> 3. No change.
> 4. No change.
> 5. Use ifdef to define "nand_load_image" to non-static for non-SPL
> 
>  Makefile                                           |   21 +++-
>  README                                             |   57 +++++++-
>  arch/powerpc/config.mk                             |    2 +
>  .../cpu/mpc8xxx/ddr/lc_common_dimm_params.c        |    4 +-
>  arch/powerpc/lib/Makefile                          |    2 +
>  common/Makefile                                    |    9 +
>  common/cmd_nvedit.c                                |    8 +-
>  config.mk                                          |   32 ++++
>  doc/README.TPL                                     |   69 +++++++++
>  drivers/mtd/nand/Makefile                          |    7 +
>  drivers/mtd/nand/fsl_elbc_spl.c                    |    5 +-
>  drivers/serial/serial.c                            |    2 +-
>  include/bootstage.h                                |    3 +-
>  tpl/Makefile                                       |  161  
> ++++++++++++++++++++
>  14 files changed, 368 insertions(+), 14 deletions(-)
>  create mode 100644 doc/README.TPL
>  create mode 100644 tpl/Makefile
> 
> diff --git a/Makefile b/Makefile
> index fdaddb9..0513e4d 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -118,10 +118,11 @@ endif # ifneq ($(BUILD_DIR),)
> 
>  OBJTREE		:= $(if $(BUILD_DIR),$(BUILD_DIR),$(CURDIR))
>  SPLTREE		:= $(OBJTREE)/spl
> +TPLTREE		:= $(OBJTREE)/tpl
>  SRCTREE		:= $(CURDIR)
>  TOPDIR		:= $(SRCTREE)
>  LNDIR		:= $(OBJTREE)
> -export	TOPDIR SRCTREE OBJTREE SPLTREE
> +export	TOPDIR SRCTREE OBJTREE SPLTREE TPLTREE
> 
>  MKCONFIG	:= $(SRCTREE)/mkconfig
>  export MKCONFIG
> @@ -412,6 +413,7 @@ ALL-y += $(obj)u-boot.srec $(obj)u-boot.bin  
> $(obj)System.map
>  ALL-$(CONFIG_NAND_U_BOOT) += $(obj)u-boot-nand.bin
>  ALL-$(CONFIG_ONENAND_U_BOOT) += $(obj)u-boot-onenand.bin
>  ALL-$(CONFIG_SPL) += $(obj)spl/u-boot-spl.bin
> +ALL-$(CONFIG_TPL) += $(obj)tpl/u-boot-tpl.bin
>  ALL-$(CONFIG_OF_SEPARATE) += $(obj)u-boot.dtb $(obj)u-boot-dtb.bin
>  ifneq ($(CONFIG_SPL_TARGET),)
>  ALL-$(CONFIG_SPL) += $(obj)$(subst ",,$(CONFIG_SPL_TARGET))
> @@ -498,6 +500,18 @@ $(obj)u-boot-with-spl.bin:  
> $(obj)spl/u-boot-spl.bin $(obj)u-boot.bin
>  		cat $(obj)spl/u-boot-spl-pad.bin $(obj)u-boot.bin > $@
>  		rm $(obj)spl/u-boot-spl-pad.bin
> 
> +$(obj)u-boot-with-tpl.bin: $(obj)spl/u-boot-spl.bin  
> $(obj)tpl/u-boot-tpl.bin \
> +		$(obj)u-boot.bin
> +		$(OBJCOPY) ${OBJCFLAGS} --pad-to=$(CONFIG_SPL_PAD_TO) \
> +			-I binary -O binary \
> +			$(obj)spl/u-boot-spl.bin  
> $(obj)spl/u-boot-spl-pad.bin
> +		$(OBJCOPY) ${OBJCFLAGS} --pad-to=$(CONFIG_SYS_PAD_TO) \
> +			-I binary -O binary \
> +			$(obj)tpl/u-boot-tpl.bin  
> $(obj)tpl/u-boot-tpl-pad.bin
> +		cat $(obj)spl/u-boot-spl-pad.bin  
> $(obj)tpl/u-boot-tpl-pad.bin \
> +			$(obj)u-boot.bin > $@
> +		rm $(obj)spl/u-boot-spl-pad.bin  
> $(obj)tpl/u-boot-tpl-pad.bin

Can we do this with less duplication?  Ideally u-boot-with-tpl.bin  
would be just TPL and the main U-Boot, and then we'd feed that into the  
u-boot-with-spl.bin rule.  Or even call the same code twice (pattern  
rule, make function, etc).

> @@ -877,6 +894,8 @@ clobber:	tidy
>  	@rm -f  
> $(obj)nand_spl/{u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map}
>  	@rm -f $(obj)spl/{u-boot-spl,u-boot-spl.bin,u-boot-spl.map}
>  	@rm -f $(obj)spl/u-boot-spl.lds
> +	@rm -f $(obj)tpl/{u-boot-tpl,u-boot-tpl.bin,u-boot-tpl.map}
> +	@rm -f $(obj)tpl/u-boot-tpl.lds
>  	@rm -f $(obj)MLO MLO.byteswap
>  	@rm -f $(obj)SPL
>  	@rm -f $(obj)tools/xway-swap-bytes
> diff --git a/README b/README
> index b941a56..0c20253 100644
> --- a/README
> +++ b/README
> @@ -2999,9 +2999,10 @@ FIT uImage format:
>  		Set for the SPL on PPC mpc8xxx targets, support for
>  		arch/powerpc/cpu/mpc8xxx/ddr/libddr.o in SPL binary.
> 
> -		CONFIG_SPL_COMMON_INIT_DDR
> +		CONFIG_COMMON_INIT_DDR
>  		Set for common ddr init with serial presence detect in
> -		SPL binary.
> +		SPL binary or TPL binary.

Please keep SPL in the name of these.  Consider TPL as a type of SPL.   
Changing the name just causes a lot of churn, and it is confusing  
because you end up with a name that looks like it applies to the main  
U-Boot, when it actually applies just to SPL/TPL.

> +- CONFIG_SYS_MPC8XXX_INIT_DDR_SUPPORT
> +		Set for the SPL on PPC mpc8xxx targets, support for
> +		arch/powerpc/cpu/mpc8xxx/ddr/libddr.o.
> +
> +- CONFIG_SYS_ENV_SUPPORT
> +		Support for the environment operating.
> +
> +- CONFIG_SYS_SERIAL_SUPPORT
> +		Support for drivers/serial/libserial.o.
> +
> +- CONFIG_SYS_LIBGENERIC_SUPPORT
> +		Support for lib/libgeneric.o.
> +
> +- CONFIG_SYS_LIBCOMMON_SUPPORT
> +		Support for common/libcommon.o.
> +
> +- CONFIG_SYS_I2C_SUPPORT
> +		Support for drivers/i2c/libi2c.o.
> +
> +- CONFIG_SYS_NAND_SUPPORT
> +		Support for drivers/mtd/nand/libnand.o.

Likewise, except here you seem to still be duplicating the SPL defines  
rather than renaming them.  Also, CONFIG_SYS_ is generally used to  
describe the hardware or similar, not to indicate which parts of the  
source code to enable.

> diff --git a/tpl/Makefile b/tpl/Makefile
> new file mode 100644
> index 0000000..bb947e5
> --- /dev/null
> +++ b/tpl/Makefile
> @@ -0,0 +1,161 @@
> +#
> +# Copyright 2013 Freescale Semiconductor, Inc.
> +#
> +# This program is free software; you can redistribute it and/or  
> modify it
> +# under the terms of the GNU General Public License as published by  
> the Free
> +# Software Foundation; either version 2 of the License, or (at your  
> option)
> +# any later version.
> +#
> +
> +CONFIG_TPL_BUILD := y
> +export CONFIG_TPL_BUILD

Please find a way to reuse spl/Makefile by invoking it twice.

-Scott

  reply	other threads:[~2013-06-26 22:33 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-26  7:18 [U-Boot] [PATCH 1/7 v6] powerpc: deleted unused symbol CONFIG_SPL_NAND_MINIMAL and enabled some functionality for common SPL ying.zhang at freescale.com
2013-06-26  7:18 ` [U-Boot] [PATCH 2/7 v6] spl: env_common.c: add new symbol CONFIG_SPL_ENV_IMPORT to contain function env_import ying.zhang at freescale.com
2013-06-26  7:18 ` [U-Boot] [PATCH 3/7 v6] powerpc/p1022ds: boot from SD Card with SPL ying.zhang at freescale.com
2013-06-26  7:18 ` [U-Boot] [PATCH 4/7 v6] SPL : spi flash : support to start from eSPI " ying.zhang at freescale.com
2013-06-26  7:18 ` [U-Boot] [PATCH 5/7 v6] powerpc : p1022ds : enable p1022ds " ying.zhang at freescale.com
2013-06-26  7:18 ` [U-Boot] [PATCH 6/7 v6] nand: tpl : introduce the TPL based on the SPL ying.zhang at freescale.com
2013-06-26 22:33   ` Scott Wood [this message]
2013-06-28  7:57     ` Zhang Ying-B40530
2013-06-28 19:39       ` Scott Wood
2013-07-01  8:48         ` Zhang Ying-B40530
2013-07-01 16:57           ` Scott Wood
2013-06-26  7:18 ` [U-Boot] [PATCH 7/7 v6] powerpc: p1022ds: support TPL on the P1022DS ying.zhang at freescale.com
2013-06-26 22:38   ` Scott Wood

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1372285992.8183.44@snotra \
    --to=scottwood@freescale.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.