All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wolfgang Denk <wd@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 3/8 v2] Introduce the Tertiary Program loader
Date: Mon, 24 Jan 2011 13:49:19 +0100	[thread overview]
Message-ID: <20110124124919.E02EFB187@gemini.denx.de> (raw)
In-Reply-To: <1295842861.2196.38.camel@haiying-laptop>

Dear Haiying Wang,

In message <1295842861.2196.38.camel@haiying-laptop> you wrote:
> On Sat, 2011-01-22 at 23:04 +0100, Wolfgang Denk wrote:
> > > 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.
> TPL_BOOT works like NAND_SPL but after NAND_SPL is executed. It is a
> middle stage boot loader to balance the 4K nand spl limitation which can
> not include ddr spd code and the 256K L2 SRAM size which can not
> accommodate the final uboot image on some Freescale Qoriq P1 platforms.

Yes, I understand what you are atempting to do.

What I do not understand is what the TPL_BOOT variable in the
Makefile is good for.  I cannot understand the current use.

> The main purpose of tpl is to initialize the ddr with spd code in l2
> sram then load the final uboot image to ddr. The reason to call tpl is
> because it runs after spl, the Second Program Loader. My original patch
> used CONFIG_MIDDLE_STAGE_SRAM_BOOT but you recommended to use
> CONFIG_SYS_2ND_STAGE_BOOT(http://lists.denx.de/pipermail/u-boot/2010-August/075653.html). However, 2ND STAGE is not correct here since it runs after SPL.


> > >  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?
> No, I don't think there is a build error.

WEell, if CONFIG_TPL_U_BOOT is not 'y', then TPL_BOOT is not
defined, which results in this make rule:

	: $(TIMESTAMP_FILE) $(VERSION_FILE) depend
		$(MAKE) -C tpl/board/$(BOARDDIR) all

i. e. there would be no target name befoe the semicolon.

> > Has this code ever been tested?
> Yes, I tested it on P1021MDS board, and also built for other 85xx NAND_config without error.

Did you run a "MAKEALL ppc", i. e. build for all PPC board, not only
NAND booting versions?

> > > +		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?
> 
> I did not get it. Could you please give a recommendation?

Well, I see a pollution with such CONFIG_ settings.  I don;t have a
solution ready to recommend, but if you can find a way not to define
so many different settings for a single purpose that wouldbe great.

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
Every program has at least one bug and can be shortened by  at  least
one  instruction  --  from  which,  by induction, one can deduce that
every program can be reduced to one instruction which doesn't work.

  reply	other threads:[~2011-01-24 12:49 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-01 15:35 [U-Boot] [PATCH 0/8 v2] Add support to tpl boot and p1021mds board Haiying.Wang at freescale.com
2010-12-01 15:35 ` [U-Boot] [PATCH 1/8] powerpc/85xx: do not reloc l2srbar if CONFIG_FLASH_BASE is not defined Haiying.Wang at freescale.com
2010-12-01 16:01   ` Kumar Gala
2010-12-01 15:35 ` [U-Boot] [PATCH 2/8] 8xxx/ddr: add support to only compute the ddr sdram size Haiying.Wang at freescale.com
2011-01-14 16:29   ` Kumar Gala
2010-12-01 15:35 ` [U-Boot] [PATCH 3/8 v2] Introduce the Tertiary Program loader Haiying.Wang at freescale.com
2011-01-21  8:14   ` Kumar Gala
2011-01-22 22:05     ` Wolfgang Denk
2011-01-22 22:04   ` Wolfgang Denk
2011-01-24  4:21     ` Haiying Wang
2011-01-24 12:49       ` Wolfgang Denk [this message]
2011-01-24 19:38         ` Scott Wood
2011-01-24 20:08           ` Wolfgang Denk
2011-01-24 21:54         ` Haiying Wang
2011-01-24 22:09           ` Wolfgang Denk
2011-01-24 22:17             ` Haiying Wang
2011-01-24 22:29               ` Wolfgang Denk
2011-01-24 23:34                 ` Scott Wood
2011-01-26 21:07                 ` Haiying Wang
2011-01-26 21:34                   ` Wolfgang Denk

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=20110124124919.E02EFB187@gemini.denx.de \
    --to=wd@denx.de \
    --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.