[U-Boot] [PATCH V5 1/2] MTD/SPI: introduce table driven probing

Mike Frysinger vapier at gentoo.org
Mon Oct 11 09:28:07 CEST 2010


On Tuesday, October 05, 2010 10:56:39 Reinhard Meyer wrote:
> +	/*
> +	 * count the number of continuation bytes, but
> +	 * leave at least 3 bytes to the end of the buffer untouched
> +	 */
> +	for (shift = 0, idp = idbuf;
> +		shift < (sizeof(idbuf) - 3) && *idp == 0x7f;
> +			shift++, idp++)
> +		;
> +
> +	/* search the table for matches in shift and id */
> +	for (i = 0; i < ARRAY_SIZE(flashes); i++) {
> +		if (flashes[i].shift == shift && flashes[i].idcode == *idp) {
> +			/* we have a match, call probe */
> +			flash = flashes[i].probe(spi, idp);
> +			if (flash)
> +				break;
> +		}
>  	}

thinking about this some more, i see two problems.  (1) we've been providing 4 
bytes to probe funcs (like the spansion), so 3 is too small.  (2) all of the 
probe devices today expect to get the whole idcode buffer.  so if we're going 
to change this API, we need to fix all the probe funcs too.  but that is a lot 
of changes to roll into one commit, so let's first focus on converting to a 
table without changing any probe semantics.

see the follow up patch that addresses these issues and some other stuff.
-mike
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
Url : http://lists.denx.de/pipermail/u-boot/attachments/20101011/a8a0608b/attachment.pgp 


More information about the U-Boot mailing list