On Wed, Oct 12, 2011 at 09:32:02AM +0200, Christian Hitz wrote:
> @@ -1862,6 +1927,13 @@ static int nand_do_write_ops(struct mtd_info *mtd, 
> loff_t to,
>       if (!writelen)
>               return 0;
>  
> +     /* reject writes, which are not page aligned */
> +     if (NOTALIGNED(to) || NOTALIGNED(ops->len)) {
> +             printk(KERN_NOTICE "%s: Attempt to write not "
> +                             "page aligned data\n", __func__);
> +             return -EINVAL;
> +     }
> +

We deliberately removed this check (see commit
f9a5254111a6be2a39464f65a96f4fc2305e3c76).  The length part breaks things
like "nand write <address> <offset> $filesize", and later in the
function there is already support for partial page writes with the rest
filled in by 0xff.

> @@ -2272,8 +2334,8 @@ int nand_erase_nand(struct mtd_info *mtd, struct 
> erase_info *instr,
>                */
>               if (bbt_masked_page != 0xffffffff &&
>                   (page & BBT_PAGE_MASK) == bbt_masked_page)
> -                     rewrite_bbt[chipnr] =
> -                             ((loff_t)page << chip->page_shift);
> +                         rewrite_bbt[chipnr] =
> +                                     ((loff_t)page << chip->page_shift);

This looks like we're importing a whitespace glitch from Linux, with
no other change.

> +     chip->cmdfunc(mtd, NAND_CMD_READID, 0x00, -1);
> +
> +     /* Read entire ID string */
> +
> +     for (i = 0; i < 8; i++)
> +             id_data[i] = chip->read_byte(mtd);

fsl_elbc_nand.c will now need NAND_CMD_READID to be updated to read 8
bytes (or more for ONFI, though that wouldn't be a regression) rather
than the current 5.

-Scott

_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to