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
next prev parent 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.