[U-Boot-Users] Can U-boot Autodetect arch/ppcversusarch/powerpc from info in the uImage?
joakim.tjernlund at transmode.se
Thu Dec 6 23:43:48 CET 2007
> -----Original Message-----
> From: u-boot-users-bounces at lists.sourceforge.net
> [mailto:u-boot-users-bounces at lists.sourceforge.net] On Behalf
> Of Joakim Tjernlund
> Sent: den 4 december 2007 02:06
> To: wd at denx.de
> Cc: 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?
> > -----Original Message-----
> > From: wd at denx.de [mailto:wd at denx.de]
> > Sent: den 4 december 2007 01:24
> > To: Joakim Tjernlund
> > Cc: 'Darcy Watkins'; u-boot-users at lists.sourceforge.net
> > Subject: Re: [U-Boot-Users] Can U-boot Autodetect arch/ppc
> > versusarch/powerpc from info in the uImage?
> > Dear Jocke,
> > in message <057d01c83604$e0bb9ce0$5267a8c0 at Jocke> you wrote:
> > >
> > > Wolfgang, have you read the "Passing the OF tree to bootm
> > from board code?"
> > > thread? Would you mind explain why it was removed and why
> > you don't think
> > > it should be in u-boot?
> > Is there a thread to it? I can just find a single posting from you,
> > without any replies...
> Yes, there were a few replies.
> > But as for your question:
> > I cannot remember that, or when, or why exactly this feature was
> > removed; I cannot even remember that it ever exited.
> Was a long time ago, I too can't recall details.
> > But in genral I think it is a very bad idea to compile
> the device
> > tree into the U-Boot image, because that means you can
> never replace
> > / change / update it. Also I fail to understand why you
> would want to
> > do that. To me it seems much more sensible to have
> separate U-Boot
> > and device tree images, which can be replaced
> independent of each
> > other. If you want, you can still store these in adjacent
> > in flash. You can even attach these (you probably want to
> insert some
> > padding to align on flash sector boundaries) images to
> for a single
> > file which can be downloaded and flashed in a single operation.
> I create a template tree that is compiled into u-boot. Then runtime
> code adjusts/amends the tree as needed for that particular board.
> We do have many diffrent boards that more or less look the same to
> u-boot and kernel. For all these boards I do only one
> u-boot/kernel that
> runs on all boards. Reason for that is too ease SW updates and save
> space. This might not be the best methond of doing things but thats
> how it has been the last 7 years so it is not something that
> is easy to
> change now.
> Even if the above method isn't something you want in u-boot I still
> think there should be a way to pass the dev. tree to the bootm command
> without using the environment/command arguments. For instance if
> one has several trees, board code should be able decide which
> tree to use.
> Command args should still overide this builtin tree.
> > As far as I understand your request, this offers all the
> same options
> > you can get with a compiled in device tree blob, but with
> the added
> > benefit of allowing many more things at the same time, too.
> > Maybe I'm missing something?
Yes, here are some things to consider.
The extension I made can just as easily be a function that returns a dev. tree.
- One can have a dev. tree update procedure similar to
rendundant env. The funktion then selects which dev. tree is valid and passes
- The function can construct a dev. tree from builtin rules/code.
- One can even make it tftp a tree at boot and pass that back. Great
in a development env. especially if you are debugging the dev. tree.
and the kicker is that you can still override this tree at runtime by passing
a dev. tree argument to bootm.
All this will be possible by the simple patch I posted earlier, included
[PATCH] Make it possible to use a builtin OF tree.
Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund at transmode.se>
common/cmd_bootm.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c
index d816349..8405de7 100644
@@ -507,6 +507,9 @@ fixup_silent_linux ()
#endif /* CONFIG_SILENT_CONSOLE */
+ #define DEFAULT_OF_TREE NULL
static void __attribute__((noinline))
do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
int argc, char *argv,
@@ -527,7 +530,7 @@ do_bootm_linux (cmd_tbl_t *cmdtp, int flag,
void (*kernel)(bd_t *, ulong, ulong, ulong, ulong);
image_header_t *hdr = &header;
#if defined(CONFIG_OF_FLAT_TREE) || defined(CONFIG_OF_LIBFDT)
- char *of_flat_tree = NULL;
+ char *of_flat_tree = DEFAULT_OF_TREE;
ulong of_data = 0;
> > Best regards,
> > Wolfgang Denk
More information about the U-Boot