[U-Boot-Users] Can U-boot Autodetect arch/ppcversusarch/powerpc from info in the uImage?

Joakim Tjernlund joakim.tjernlund at transmode.se
Sun Dec 9 18:32:59 CET 2007


> -----Original Message-----
> From: wd at denx.de [mailto:wd at denx.de] 
> Sent: den 9 december 2007 16:01
> To: joakim.tjernlund at transmode.se
> 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 
> <1197205927.937.51.camel at gentoo-jocke.transmode.se> you wrote:
> > 
> > Made a new patch with Jerrys comments addressed. Also renamed
> > DEFAULT_OF_TREE to CFG_OF_TREE. OK?
> 
> I still object against this modification.
> 
> > +#ifdef CFG_OF_TREE
> > +	char	*of_flat_tree = CFG_OF_TREE;
> > +#else
> >  	char	*of_flat_tree = NULL;
> > +#endif
> >  	ulong	of_data = 0;
> >  #endif
> 
> 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.

> 
> 2) The patch causes confusion. Documented behaviour is that "bootm"
>    with one or two arguments (kernel address, or kernel plus ramdisk
>    addresses) will boot a non-OF enabled kernel. With this patch,
>    "bootm" will behave different on systems where the CFG_OF_TREE has
>    been silected - which is usually not known to and cannot be
>    checked by the end user, thus causing confusion.
> 
> 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
  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.
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.

 Jocke





More information about the U-Boot mailing list