On Thu, Dec 11, 2008 at 07:58:26PM +0530, Rohit Hagargundgi wrote:
> +     env_addr = FLEXONENAND(this) ? CONFIG_ENV_ADDR_FLEX :
> +                                     CONFIG_ENV_ADDR;
> +
> +     env_len = FLEXONENAND(this) ? CONFIG_ENV_SIZE_FLEX :
> +                                     CONFIG_ENV_SIZE;

Is there any reason why this has to be done at runtime, rather than just
using one set of CONFIG_ parameters regardless of whether it's flex?

>  
>       /* Check OneNAND exist */
> -     if (onenand_mtd.writesize)
> -             /* Ignore read fail */
> -             onenand_read(&onenand_mtd, env_addr, onenand_mtd.writesize,
> -                          &retlen, (u_char *) env_ptr);
> -     else
> +     if (onenand_mtd.writesize) {
> +             while (env_addr < env_addr + env_len) {

This is a tautology, unless you're checking for wraparound of unsigned
long.

> +     onenand_get_block(this, ofs, &slc);
> +     if (slc)
> +             instr.len += 1 << (this->erase_shift -1);

this->erase_shift - 1

> +     if (mtd->erase(mtd, &instr)) {
> +             printf("writeenv: erase failed at 0x%08lx\n", ofs);
> +             if(mtd->block_markbad(mtd, ofs))
> +                     printf("writeenv: Mark bad failed at 0x%08lx\n", ofs);

Space after "if".

-Scott
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to