Re: [PATCH 9/9] MN10300: Fix MTD JEDEC probe so that the ASB2303bootprom can be detected [2.6.24-rc3-mm2]

From: David Woodhouse
Date: Fri Nov 30 2007 - 08:47:00 EST


On Thu, 2007-11-29 at 22:53 +0000, David Howells wrote:
>
> + /* the MN10300 ASB2303 board doesn't detect its bootprom if this test
> + * is allowed to take place, presumably because the flash is
> + * write-protected and so cannot be commanded for the purposes of
> + * probing
> + */
> +#ifndef CONFIG_MN10300_UNIT_ASB2303
> if (uaddr != MTD_UADDR_NOT_SUPPORTED ) {
> /* ASSERT("The unlock addresses for non-8-bit mode
> are bollocks. We don't really need an array."); */
> uaddr = finfo->uaddr[0];
> }
> +#endif
>
> uaddr_done:
> return uaddr;

I don't like this -- it shouldn't be necessary.

The 'uaddr' field represents the magic 'unlock address'; the address to
which you have to send a sequence of write cycles before you're allowed
to send certain commands.

Although we can use 16-bit chips in 8-bit mode, the unlock address
doesn't change when we do that -- it's still the same levels on the same
pins of the address bus. Having an array of uaddr[] in the chip
definition was a mistake, and that 'assert' you've just removed for your
board was added within a few months of Thayne doing the array thing. I
really should have followed up by _removing_ the array again, by now.

We _used_ to mangle (shift) the unlock address based on the mode, but
now we don't (I turned that off at the same time I added the above
assert. I think the definition in the table for the LV800TA is wrong,
and it should be
[0] = MTD_UADDR_0x0555_0x02AA,

--
dwmw2

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/