[U-Boot-Users] [PATCH] ARTOS boot support for u-boot

Wolfgang Denk wd at denx.de
Sun Apr 20 15:55:54 CEST 2003


Dear Pantelis,

in message <3E9E9B5C.30904 at intracom.gr> you wrote:
> 
> The following patch against u-boot-0.3.0 adds support for booting ARTOS 
> images
> using u-boot. ARTOS is a custom in-house operating system in use by my 
> company.

I will not add  the  patch  for  now,  as  it  contains  some  severe
problems:

> +	/*
> +	 * Booting an ARTOS kernel image + application
> +	 */
> +
> +	/* place data at the top of memory */
> +	top = gd->bd->bi_memstart + gd->bd->bi_memsize;
> +
> +	/* first check the artos specific boot args, then the linux args*/
> +	if ((s = getenv("abootargs")) == NULL && (s = getenv("bootargs")) == NULL)
> +		s = "";
> +
> +	/* get length of cmdline, and place it */
> +	len = strlen(s);
> +	top = (top - (len + 1)) & ~0xF;
> +	cmdline = (char *)top;
> +	debug ("## cmdline at 0x%08lX ", top);
> +	strcpy(cmdline, s);
^^^^^^^^^^^^^^^^^^^^^^^^^^^
> +	/* copy bdinfo */
> +	top = (top - sizeof(bd_t)) & ~0xF;
> +	debug ("## bd at 0x%08lX ", top);
> +	kbd = (bd_t *)top;
> +	memcpy(kbd, gd->bd, sizeof(bd_t));
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

You cannot do that. U-Boot copies itself to the top of memory, so you
are overwriting U-Boot's data here. It was pure luck  if  this  wrked
for you. but the behaviour is completely undefined.

Please implement this in a way that is compatible to U-Boot's memory
map.

Also, since this is a proprietary OS with a very limited  propagation
I  would  like to ask to make the ARTOS boot code configurable, i. e.
add a #define so it can enabled it in the board config file, but will
not add to the code size for those systems that don't want it.

Best regards,

Wolfgang Denk

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
It seems intuitively obvious to me, which  means  that  it  might  be
wrong.                                                 -- Chris Torek




More information about the U-Boot mailing list