[U-Boot] [PATCH v2] dfu, nand: before write a buffer to nand, erase the nand sectors

Scott Wood scottwood at freescale.com
Thu Jun 20 19:22:45 CEST 2013


On 06/19/2013 11:36:17 PM, Heiko Schocher wrote:
> Hello Scott,
> 
> Am 18.06.2013 02:51, schrieb Scott Wood:
> > Maybe we need an opts.limit?
> 
> Yes, I think so ... whats with the following proposal:
> 
> diff --git a/drivers/mtd/nand/nand_util.c  
> b/drivers/mtd/nand/nand_util.c
> index d81972c..b877c7d 100644
> --- a/drivers/mtd/nand/nand_util.c
> +++ b/drivers/mtd/nand/nand_util.c
> @@ -120,6 +120,10 @@ int nand_erase_opts(nand_info_t *meminfo, const  
> nand_erase_options_t *opts)
> 
>                 WATCHDOG_RESET();
> 
> +               if ((opts->limit) && (erase.addr > opts->limit)) {
> +                       puts("Size of write exceeds partition or  
> device limit\n");
> +                       return -EFBIG;
> +               }

This is treating limit as an address rather than a size.

Also, unnecessary parens.

> diff --git a/include/nand.h b/include/nand.h
> index 26190e4..d799df3 100644
> --- a/include/nand.h
> +++ b/include/nand.h
> @@ -125,6 +125,8 @@ struct nand_erase_options {
> 
>         /* Don't include skipped bad blocks in size to be erased */
>         int spread;
> +       /* maximum size that actual may be in order to not exceed the  
> buf */
> +       loff_t limit;
>  };
> 
>  typedef struct nand_erase_options nand_erase_options_t;
> 
> I checked for all calls from nand_erase_opts, that the  
> nand_erase_options_t
> parameters are initialized with 0 ... so this patch should not change
> current behaviour.
> 
> Should I do this in a seperate patch, or add it to the "dfu, nand:
> before write a buffer to nand, erase the nand sectors" patch, so it  
> adds
> no dead code ...

A separate patch within a patchset should be fine, but I'm also OK with  
combining them since the whole thing would still be small and  
straightforward enough to be easily reviewed.

-Scott


More information about the U-Boot mailing list