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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]