[U-Boot] [PATCH] fw_env: add NAND support

Guennadi Liakhovetski lg at denx.de
Wed Sep 3 16:26:46 CEST 2008


On Wed, 3 Sep 2008, Markus Klotzbücher wrote:

> Dear Guennadi,
> 
> On Tue, Sep 02, 2008 at 07:05:29PM +0200, Guennadi Liakhovetski wrote:
> 
> > +static int flash_flag_obsolete (int dev, int fd, off_t offset)
> > +{
> > +	struct mtd_info_user mtdinfo;
> > +	int rc;
> > +
> > +	rc = ioctl (fd, MEMGETINFO, &mtdinfo);
> > +	if (rc < 0) {
> > +		perror ("Cannot get MTD information");
> > +		return -1;
> > +	}
> > +
> > +	if (mtdinfo.type == MTD_NANDFLASH) {
> > +		/*
> > +		 * No luck on NAND - we could save the erase, but have to write
> > +		 * a whole erase block anyway
> > +		 */
> > +		rc = __flash_write_buf (dev, fd, &obsolete_flag,
> > +					sizeof (obsolete_flag), offset,
> > +					&mtdinfo);
> 
> Hmmm, what exactly are you doing here? IIRC environment in NAND was
> implemented slightly differently than NOR in that it reused the
> obsolete flag as a serial number. This number is incremented for every
> write so the env with the higher number is always the current one
> (besides the corner case where the number overflows, see
> env_nand.c). This way the obsoleting can be completly avoided.
> 
> I can't see this in your patch?

No, it is not there, because I had no idea about it:-( Thanks for pointing 
out - will implement in the next version.

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.

DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de


More information about the U-Boot mailing list