[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