[U-Boot-Users] Can U-boot Autodetect arch/ppcversusarch/powerpc from info in the uImage?
Jerry Van Baren
gerald.vanbaren at ge.com
Fri Dec 7 14:14:37 CET 2007
Joakim Tjernlund wrote:
[snip]
>> Jocke
>>> 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
> that back.
>
> - 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
> below.
>
> [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
> --- a/common/cmd_bootm.c
> +++ b/common/cmd_bootm.c
> @@ -507,6 +507,9 @@ fixup_silent_linux ()
> #endif /* CONFIG_SILENT_CONSOLE */
>
> #ifdef CONFIG_PPC
> +#ifndef DEFAULT_OF_TREE
> + #define DEFAULT_OF_TREE NULL
> +#endif
> 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;
> #endif
FWIIW, while I appreciate and agree with Wolfgang's points, I don't see
why we cannot add Joakim's configuration tweak. It is a pretty minor
issue and, if he finds it useful, perhaps it would be useful to others.
Having said that, the patch could be made better by IMHO using the
#ifdef logic embedded rather than defining DEFAULT_OF_TREE to NULL if it
isn't already defined:
#if defined(CONFIG_OF_FLAT_TREE) || defined(CONFIG_OF_LIBFDT)
#ifdef DEFAULT_OF_TREE
char *of_flat_tree = DEFAULT_OF_TREE;
#else
char *of_flat_tree = NULL;
#endif
ulong of_data = 0;
#endif
Also, we should have an update to the README to explain that
DEFAULT_OF_TREE can be defined in the board-specific config file to be
the address of a FDT embedded in u-boot or a function that
builds/modifies a FDT and returns the address.
This should probably go somewhere in the section on LIBFDT line 332 ff.
(I would put it at line 342, your line numbers may vary).
<http://www.denx.de/cgi-bin/gitweb.cgi?p=u-boot/u-boot-fdt.git;a=blob;f=README;h=09eb76fe4528dfedca027b119ac760fce2570e35;hb=HEAD#l341>
Best regards,
gvb
More information about the U-Boot
mailing list