[U-Boot] [PATCH v4] palmtreo680: add utility that writes u-boot to flash

Marek Vasut marex at denx.de
Thu Apr 18 18:13:01 CEST 2013


Dear Mike Dunn,

> On 04/18/2013 06:54 AM, Marek Vasut wrote:
> > Dear Mike Dunn,
> > 
> > [...]
> > 
> >> +	if (argc != 3) {
> >> +		printf("usage: %s <image file> <mtd dev node>\n", argv[0]);
> > 
> > btw is this /dev/mtdX or /dev/mtdblockX ?
> 
> /dev/mtdx  You must have defined a partition that starts at the offset at
> which you are placing the u-boot image, and of course is big enough to
> hold the image.
> 
> >> +		return -1;
> > 
> > errno.h didn't work? Like ... return -EINVAL or such ?
> 
> 'return -EINVAL' works, sure.  Are you suggesting that the utility should
> return an intelligent error code at all failure exit points?  Like if the
> call to calloc() fails, it should return -ENOMEM?  I could do that if you
> prefer.  I didn't worry about it because I always print the reason for the
> failure to stderr, usually by way of perror().  Sorry, I guess I didn't
> understand your initial suggestion.

I think it's more "correct" to return proper error code, maybe try getting 
opinion from the others.

> > [...]
> > 
> >> +	blockbuf = calloc(RELIABLE_BLOCKSIZE, 1);
> > 
> > calloc() semantics are misunderstood by so many :-(
> 
> calloc(RELIABLE_BLOCKSIZE, sizeof(char)) ?

from malloc(3):

       void *calloc(size_t nmemb, size_t size);

[...]

The  calloc() function allocates memory for an array of nmemb elements of size
bytes each and returns a pointer to the allocated memory.  The memory is set to
zero.  If nmemb or size is 0, then calloc() returns either NULL, or  a  unique
pointer value that can later be successfully passed to free().

Best regards,
Marek Vasut


More information about the U-Boot mailing list