[U-Boot-Custodians] SPL / TPL

Simon Glass sjg at chromium.org
Thu Oct 10 19:41:57 UTC 2019


Hi,

On Thu, 10 Oct 2019 at 13:08, Tom Rini <trini at konsulko.com> wrote:
>
> On Thu, Oct 10, 2019 at 09:46:38AM +0200, Marek Vasut wrote:
> > On 10/10/19 9:40 AM, Wolfgang Denk wrote:
> > > Dear Masahiro,
> > >
> > > In message <CAK7LNAR45-6SEAeGyjT8o5jP=6iNcSP=A4pW2rQV9V_JfGTi0w at mail.gmail.com> you wrote:
> > >>
> > >> This discussion started from this patch:
> > >> https://patchwork.ozlabs.org/patch/662396/
> > >>
> > >> It happened before the rockchip stuff.
> > >
> > > Yes, thanks for the link. Apparently I missed that discussion then :-(
> > >
> > > I still cannot see where this thinking that "SPL is big and has all
> > > features" and "TPL is small" is coming from.  If someone has
> > > implemented it in this way, then he did a major mistake.
> >
> > Note that back in the old OneNAND days, TPL was used as the 1 kiB tiny
> > loader and that loaded the SPL. Even today, there are less features
> > available for TPL than for SPL, although they are constantly being added
> > to make these two things virtually identical. So I have a feeling that
> > this situation naturally evolved that TPL is smaller than SPL and goes
> > before SPL.
> >
> > Just out of curiosity, how many platforms are there that do
> > SPL->TPL->U-Boot and how many do TPL->SPL->U-Boot ?
>
> This last point here is what I'm also wondering about.  My gut is that
> README.TPL is more "old aspiration" than "what we have implemented".
> And, setting aside some of the back-and-forth jumps we can have, the
> flow is:
> ROM/etc -> Tiny Program Loader -> SPL -> U-Boot or Linux
>
> and CONFIG_TPL_xxx is used to control the building, or not building, of
> various portions.

Yes that's right. TPL is the first stage (as implemented) and is much
smaller than SPL.

It also makes at least some sense:

- Secondary PL loads primary (U-Boot)
- Tertiary PL loads secondary (SPL)

Regards,
Simon


More information about the U-Boot-Custodians mailing list