Re: [Yaffs] cvs YAFFS + MTD cvs + 2.4.27-vrs1 problems

Top Page
Attachments:
Message as email
+ (text/plain)
Delete this message
Reply to this message
Author: Thomas Gleixner
Date:  
To: Aras Vaichas
CC: YAFFS
Subject: Re: [Yaffs] cvs YAFFS + MTD cvs + 2.4.27-vrs1 problems
On Mon, 2004-12-06 at 02:25, Aras Vaichas wrote:
> > It's quite easy, if the timing is wrong or if the rdy/busy check is not
> > reliable.
>
> Is there a utility that writes to every single page, reads back the data and
> then marks the pages correctly?


No.

> Or are those "bad eraseblocks" permanently lost?


You can hack nand_base.c to allow the erasing of the blocks which are
marked bad.


> static void at91_nand_command (struct mtd_info *mtd, unsigned command, int column, int page_addr)


    my_nand->cmdfunc = at91_nand_command;    /* we need our own */


You don't need your own command function. There is no reason for it. It
is just duplicated code.
    
>     /* Scan to find existance of the device */
> // ARASV
> #define CHIPS_TO_SCAN    1
>     if (nand_scan (at91_mtd, CHIPS_TO_SCAN)) {
>         err = -ENXIO;
>         goto out_ior;
>     }

>
>     /* Allocate memory for internal data buffer */
>     my_nand->data_buf = kmalloc (sizeof(u_char) * (at91_mtd->oobblock + at91_mtd->oobsize), GFP_KERNEL);
>     if (!my_nand->data_buf) {
>         printk ("Unable to allocate AT91 NAND data buffer.\n");
>         err = -ENOMEM;
>         goto out_ior;
>     }


The data buffer is already allocated inside nand_scan.

tglx