[PATCH] ARM: Use armlinux_bootparams address for DTB

Sascha Hauer s.hauer at pengutronix.de
Tue Jul 9 14:11:31 EDT 2013


On Tue, Jul 09, 2013 at 10:00:41PM +0400, Alexander Shiyan wrote:
> > On Tue, Jul 09, 2013 at 04:56:40PM +0400, Alexander Shiyan wrote:
> > > In some cases, the address of the devicetree, which is obtained
> > > dynamically, may be located in the kernel text area, which leads
> > > to malfunction of the devicetree. The patch uses the address of
> > > the devicetree, designed for the board, if it possible.
> > > 
> > > Signed-off-by: Alexander Shiyan <shc_work at mail.ru>
> > > ---
> > >  arch/arm/lib/armlinux.c | 20 ++++++++++++--------
> > >  1 file changed, 12 insertions(+), 8 deletions(-)
> > > 
> > > diff --git a/arch/arm/lib/armlinux.c b/arch/arm/lib/armlinux.c
> > > index 40a63ea..12fb06d 100644
> > > --- a/arch/arm/lib/armlinux.c
> > > +++ b/arch/arm/lib/armlinux.c
> > > @@ -261,16 +261,20 @@ void start_linux(void *adr, int swap, unsigned long initrd_address,
> > >  		unsigned long initrd_size, void *oftree)
> > >  {
> > >  	void (*kernel)(int zero, int arch, void *params) = adr;
> > > -	void *params = NULL;
> > >  	int architecture;
> > >  
> > >  	if (oftree) {
> > > -		printf("booting Linux kernel with devicetree\n");
> > 
> > This is a useful information that gets removed here. Could you keep it?
> 
> Yes, but I think this is duplicate previous message "using internal devicetree".

Not really a duplicate since the 'internal devicetree' message will only
come if we are using an internal devicetree (i.e. no devicetree
specified on the commandline).
We could move the message to common/bootm.c instead of removing it.

> 
> > > -		params = oftree;
> > > -	} else {
> > > +		if (armlinux_bootparams) {
> > > +			struct fdt_header *header = oftree;
> > > +
> > > +			printf("Relocate DTB to 0x%p\n", armlinux_bootparams);
> > 
> > This is more useful for verbose mode, but I think not for the normal
> > case.
> 
> This is note about address, since barebox reports us address of devicetree
> before and it different than armlinux_params. Remove anyway?

My idea was not to remove them but encapsulate it in bootm_verbose().
That's not so easy though since this code is called from non bootm code.

We could add an additional verbose argument to this function.

Often the boot code is critical. During normal boot you don't want to
see many messages because they add to the boot time, but when something
doesn't work one is happy about every line that comes out, so I think
it's worth it to pass a verbose parameter around.

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list