[PATCH] NAND: AMD Au1550 driver reads write only register
Pete Popov
ppopov at embeddedalley.com
Sat Oct 29 14:50:49 EDT 2005
On Sat, 2005-10-29 at 22:35 +0400, Sergei Shtylylov wrote:
> Hello.
>
> I have noticed that during the last commit to AMD Au1550 NAND driver the
> old buglet was reintroduced: as MEM_STNDCTL register is write only, and
> seem to always read as 0x31, read-modify-write of it in au1xxx_nand_init()
> will cause undesirable effect of enabling -RCS0/1 pin override (bits 4/5 of
> this reg.), thus possibly causing a contention on the static bus when the NOR
> flash (which uses -RCS0) or board control status regs. (using -RCS2) are
> read. Luckily, this now goes away with a first NAND access, since
> au1550_hwcontrol() doesn't try to read this register before writing anymore.
> There's another issue with that though -- to be addressed by the next
> patch...
Thanks for catching that. I'll make a note in the code so it doesn't
happen again.
Pete
> WBR, Sergei
>
>
>
> plain text document attachment (Au1550-NAND-STNDCTL-write-only.patch)
> Signed-off-by: Sergei Shtylyov <sshtylyov at ru.mvista.com>
>
> Index: au1550nd.c
> ===================================================================
> RCS file: /home/cvs/mtd/drivers/mtd/nand/au1550nd.c,v
> retrieving revision 1.12
> diff -a -u -p -r1.12 au1550nd.c
> --- au1550nd.c 23 Sep 2005 01:44:55 -0000 1.12
> +++ au1550nd.c 29 Oct 2005 18:21:04 -0000
> @@ -343,11 +343,8 @@ int __init au1xxx_nand_init (void)
> au1550_mtd->priv = this;
>
>
> - /* disable interrupts */
> - au_writel(au_readl(MEM_STNDCTL) & ~(1<<8), MEM_STNDCTL);
> -
> - /* disable NAND boot */
> - au_writel(au_readl(MEM_STNDCTL) & ~(1<<0), MEM_STNDCTL);
> + /* MEM_STNDCTL: disable ints, disable nand boot */
> + au_writel(0, MEM_STNDCTL);
>
> #ifdef CONFIG_MIPS_PB1550
> /* set gpio206 high */
>
>
>
More information about the linux-mtd
mailing list