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

Joakim Tjernlund joakim.tjernlund at transmode.se
Sun Dec 16 22:27:34 CET 2007


> -----Original Message-----
> From: wd at denx.de [mailto:wd at denx.de] 
> Sent: den 16 december 2007 21:15
> To: joakim.tjernlund at transmode.se
> Cc: 'Jerry Van Baren'; u-boot-users at lists.sourceforge.net
> Subject: Re: [U-Boot-Users] Can U-boot Autodetect 
> arch/ppcversusarch/powerpc from info in the uImage?
> 
> In message 
> <1197647601.21876.12.camel at gentoo-jocke.transmode.se> you wrote:
> >
> > This is what I came up with to make $dtb a hush variable that don't
> > end up in the environment:
> 
> > #define FLAG_PARSE_SEMICOLON (1 << 1)
> > #define FLAG_EXIT_FROM_LOOP 1
> > int misc_init_r (void)
> > {
> > 	char *bootstr, dtb_str[30], workstr[256];
> > 
> > 	u_boot_hush_start();
> 
> Be careful. You are invoking undefined behaviour heare. The  idea  is
> that  u_boot_hush_start() is supposed to be called exactly once only.
> [Yes, I know from looking at the code that at the moment  this  seems
> to be OK, but ther eis no guarantee for it.]

Yes, I suspected this. Maybe it would be a good idea to move the call
to u_boot_hush_start() earlier in common code so that there is no need
to do it here?

> 
> > 	sprintf(dtb_str, "dtb=0x%lx", (ulong)dt_blob_start);
> > 	/* Set $dtb in local HUSH env.to my OF tree */
> > 	if (parse_string_outer(dtb_str,
> > 			       FLAG_PARSE_SEMICOLON | 
> FLAG_EXIT_FROM_LOOP) != 0) {
> > 		/* Add " - $dtb" to $bootcmd if it is missing */
> > 		bootstr = getenv("bootcmd");
> > 		if (bootstr && !strstr(bootstr, "- $dtb")) {
> > 			strcpy(workstr, bootstr);
> > 			strcat(workstr, " - $dtb");
> > 			setenv("bootcmd", workstr);
> > 		}
> > 	}
> > 	return 0;
> > }
> > 
> > It is fairly ugly, but it works. Comments?
> 
> I don't understand why you make it so complicated when a preboot
> command would do exactly the same?

hmm, didn't think of that. Will look into that tmw, thanks

> 
> Best regards,
> 
> Wolfgang Denk





More information about the U-Boot mailing list