public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Joakim Tjernlund <joakim.tjernlund@transmode.se>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] Can U-boot Autodetect arch/ppcversusarch/powerpc from info in the uImage?
Date: Sun, 9 Dec 2007 22:14:43 +0100	[thread overview]
Message-ID: <011301c83aa8$84a60a50$02ac10ac@Jocke> (raw)
In-Reply-To: <20071209192816.41800242FA@gemini.denx.de>

> -----Original Message-----
> From: wd at denx.de [mailto:wd at denx.de] 
> Sent: den 9 december 2007 20:28
> To: Joakim Tjernlund
> Cc: 'Jerry Van Baren'; u-boot-users at lists.sourceforge.net; 
> 'Darcy Watkins'
> Subject: Re: [U-Boot-Users] Can U-boot Autodetect 
> arch/ppcversusarch/powerpc from info in the uImage?
> 
> In message <010601c83a89$8b22bfa0$02ac10ac@Jocke> you wrote:
> >
> > > I hereby NAK this patch for 3 reasons:
> > > 
> > > 1) The patch does not solve a problem. Instead of harwiring the
> > >    address, you can just pass it as argument to the bootm command
> > >    which seems more straightforward to me
> > 
> > It is not a hardwired address, it is a function call which 
> returns an address to
> > the OF tree of your choise. You can define it to an address 
> too if you like.
> 
> Thanks for the correction. But actually it makes little difference;
> it's a static thingy as we can't pass (varying) arguments to it. Or am
> I missing something?

No args can be passed but this function can have other criteria for
selecting/constructing an OF tree, a time stamp, an env variable or
perhaps just checking a CRC among two OF images and select one
that has a vaild CRC. The selection of OF tree also takes place
during bootm which makes it possible to have the CFG_OF_TREE function
tftp an OF tree and pass that to the bootm command.
  
So there are a few interesting options with CFG_OF_TREE which
is easier to do within a function than playing with env variables.

> 
> > > 3) With the patch applied and CFG_OF_TREE defined, there 
> is no way to
> > >    boot a non-OF kernel, thus breaking backward compatibility.
> > 
> > hmm, backwards compatibility. Current u-boot breaks 
> backwards compatibility
> > with older u-boots that didn't require an OF tree to be 
> passed as an argument to
> > bootm. Dunno when that happened but 1.1.4 has
> 
> In which way? We use OF-enabled versions of U-Boot on several boards
> that are in use both with old (2.4.25) and new (2.6.23.X) non-OF
> kernels, and with OF-enabled kernels as well. There are problems,
> indeed, in certain constellations using multi-file images, but as long
> as you use separate kernel, ramdisk and/or dtb images it works fine.

You need to pass an extra arg to bootm. Our boards don't do that.

> 
> >   extern const unsigned char oftree_dtb[];
> >   extern const unsigned int oftree_dtb_len;
> > That needs to be defined in board code and holds the OF tree.
> 
> These lines were removed by this commit:
> 
> Author: Matthew McClintock <msm@freescale.com>  2006-06-28 17:41:37
> Committer: Jon Loeliger <jdl@freescale.com>  2006-08-09 20:50:11
> Parent: d87080b721e4f8dca977af7571c5338ae7bb8db7 (GCC-4.x 
> fixes: clean up global data pointer initialization for all boards.)
> Child:  5498d90312aad9f6bdbf047986027c35b03cd163 (* Patch to 
> modify ft_build.c to update flat device trees in place Patch 
> by Matthew McClintock 26-June-2006)
> Follows: NIOS2-5_0_0
> Precedes: U-Boot-1_1_6
> 
>     * Modify bootm command to support booting with flat device trees
>       Patch by Matthew McClintock 26-June-2006
> 
> > The CFG_OF_TREE(or some variation there of) is the only way I can
> > think of to support uppgrade of the older boards in the field in a
> > easy and non error prone way.
> 
> Sorry, but I don't get you.
> 
> You started this discussion by mentioning that you want to embed  the
> DTB into the U-Boot image (and I commented you could just append it).
> If  you  upgrade  an  old board by installing a new U-Boot image, you
> will also overwrite the old embedded DTB and install a new  one  with
> the  new  image, and this new address is well known to you so you can
> easily pass it on the bootm command line.

That would involve updating the bootcmd env. variable as part of the
upgrade and I was hoping to avoid that. Futhermore if you downgrade
I must reverse that change to bootcmd and the old code don't know anything
about that so I need to invent some method to ensure this happens.

> 
> Assuming the DTB image was NOT part of the U-Boot image it's  address
> would be known, too, so the same method could be used.
> 
> Finally, you could even compute the address by some code (although  I
> have  to  admit  that I cannot image how that could be needed, but my
> imagination is definitely limited) - nothing prevents you to add some
> board specific code that is run automatically (for example,  as  part
> of  your  misc_init_r()  or  last_stage_init()  code) or manually (by
> defining a board-specific command). This code could define or  modify
> an  environment  variable  which  then  in  turn  gets  used as third
> argument to the bootm call. [Yes,  this  sounds  complicated,  and  I
> agree  that  it's  probably  never needed, but it would implement the
> same what you want to do in  a  board-specific  way,  i.  e.  without
> impact on other boards.]

Computing the address isn't the problem, the problem is the new
syntax of bootm. The CFG_OF_TREE was the best I could come up with.
Maybe other boards will face the same problem in the future when
they upgrade boards? I really have no idea.

> 
> 
> 
> I feel we are pretty much stuck here. You insist you need this, and I
> fail to see any such need.
> 
> Could please somebody else (probaly with a  deeper  understanding  of
> DTB  magic than me) try to moderate this discussion so we can come to
> a decision that is based on mutual understanding?

Wolgang, thanks for bearing with me for so long. If you still think
CFG_OF_TREE(or some variation there of) is inappropriate for u-boot
I will accept that and move on.

> 
> Volunteers welcome...
> 
> Best regards,
> 
> Wolfgang Denk
> 

  reply	other threads:[~2007-12-09 21:14 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-03 18:49 [U-Boot-Users] Can U-boot Autodetect arch/ppc versus arch/powerpc from info in the uImage? Darcy Watkins
2007-12-03 21:36 ` Wolfgang Denk
2007-12-03 23:33   ` [U-Boot-Users] Can U-boot Autodetect arch/ppc versusarch/powerpc " Joakim Tjernlund
2007-12-04  0:23     ` Wolfgang Denk
2007-12-04  1:06       ` Joakim Tjernlund
2007-12-06 22:43         ` [U-Boot-Users] Can U-boot Autodetect arch/ppcversusarch/powerpc " Joakim Tjernlund
2007-12-07  0:57           ` Wolfgang Denk
2007-12-07  6:55             ` Joakim Tjernlund
2007-12-07 11:11               ` Wolfgang Denk
2007-12-07 13:14           ` Jerry Van Baren
2007-12-09 13:12             ` Joakim Tjernlund
2007-12-09 15:00               ` Wolfgang Denk
2007-12-09 17:32                 ` Joakim Tjernlund
2007-12-09 19:28                   ` Wolfgang Denk
2007-12-09 21:14                     ` Joakim Tjernlund [this message]
2007-12-09 21:36                       ` Wolfgang Denk
2007-12-09 21:59                         ` Joakim Tjernlund
2007-12-09 22:47                           ` [U-Boot-Users] Can U-boot Autodetect arch/ppcversusarch/powerpcfrom " Joakim Tjernlund
2007-12-13 18:49                 ` [U-Boot-Users] Can U-boot Autodetect arch/ppcversusarch/powerpc from " Jerry Van Baren
2007-12-13 23:03                   ` Joakim Tjernlund
2007-12-14 15:53                     ` Joakim Tjernlund
2007-12-16 20:14                       ` Wolfgang Denk
2007-12-16 21:27                         ` Joakim Tjernlund
2007-12-17 14:42                           ` Joakim Tjernlund

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='011301c83aa8$84a60a50$02ac10ac@Jocke' \
    --to=joakim.tjernlund@transmode.se \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox