[U-Boot] [PATCH] Correct corrupted NAND Flash access on KARO TX25 modules

Marek Vasut marex at denx.de
Mon Apr 2 15:39:05 CEST 2012


Dear Gachet Daniel,

> Hi Marek,
> 
> Thanks for your answer. Have I to do more?

Did you submit the new patch into the ML? If so, did you CC sbabic at denx.de? If 
so, the patch will be picked by him and applied :)

Thanks for your patch!

> 
> Have a good day.
> 
> Cordially,
> 
> Daniel
> 
> -----Original Message-----
> From: Marek Vasut [mailto:marex at denx.de]
> Sent: dimanche 1 avril 2012 23:02
> To: u-boot at lists.denx.de
> Cc: Gachet Daniel
> Subject: Re: [U-Boot] [PATCH] Correct corrupted NAND Flash access on KARO
> TX25 modules
> 
> Dear Gachet Daniel,
> 
> > Hi Stefano and Marek,
> > 
> > -----Original Message-----
> > From: stefano babic [mailto:sbabic at denx.de]
> > Sent: dimanche 1 avril 2012 12:33
> > To: Gachet Daniel
> > Cc: u-boot at lists.denx.de
> > Subject: Re: [U-Boot] [PATCH] Correct corrupted NAND Flash access on
> > KARO
> > TX25 modules
> > 
> > >Am 31/03/2012 09:31, schrieb Gachet Daniel:
> > >> This short patch correct corrupted data while reading NAND flash
> > >> modules on the KARO TX25 module.
> > >> 
> > >> The current version of the mxc_nand driver uses the symmetric mode
> > >> to access the NAND flash, but the devices
> > >>
> > >>populated on the KARO TX25 only support an asymmetric mode (i.MX25:
> > >>bit 8  within NAND_FLASH_CONFIG1 register cleared).
> > >>
> > >> Signed-off-by: Daniel Gachet <daniel.gachet at hefr.ch>
> > >> Cc: Wolfgang Denk <wd at denx.de >
> > >> 
> > >> diff -upr drivers/mtd/nand/mxc_nand.c drivers/mtd/nand/mxc_nand.c
> > >> --- drivers/mtd/nand/mxc_nand.c	2011-12-23 20:25:35.000000000 +0100
> > >> +++ drivers/mtd/nand/mxc_nand.c	2012-03-30 08:10:13.000000000 +0200
> > >> @@ -1290,7 +1290,9 @@ static void mxc_setup_config1(void)
> > >> 
> > >>  	uint16_t tmp;
> > >>  	
> > >>  	tmp = readw(&host->regs->nfc_config1);
> > >> 
> > >> +#ifndef MACH_TYPE_TX25
> > >> 
> > >>  	tmp |= NFC_ONE_CYCLE;
> > >> 
> > >> +#endif
> > >
> > >NAK. We cleaned up all u-boot occurrencies of machine id, except the
> > >machid passed to the kernel. And when the device tree will be
> > >effective, also the machid will be obsolete.
> > >
> > >This change seems not strictly related to the Karo's SOM, but it it a
> > >configuration of the mxc_nand driver, such as CONFIG_NAND_MXC_V1_1.
> > >You can add a CONFIG_NAND_MXC_* value (please add documentation, too)
> > >and use it in the driver code.
> > >
> > >Can I also ask you if the same setup is used in the Linux driver
> > >(this SOM is not mainlined, I suppose you have a porting from the
> > >manufacturer) ? As far as I can see, this setup is not used for the
> > >Freescale's mx25pdk (the only MX25 board in mainline kernel).
> > >
> > >Best regards,
> > >Stefano Babic
> > >
> > >--
> > >=====================================================================
> > >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
> > >=====================================================================
> > 
> > I found the proposition of Stefano very interesting. My proposition
> > will be to define a specific value for that bit, for instance
> > CONFIG_NAND_MXC_V1_1_NFC_ONE_CYCLE. If this value is defined, the
> > NFC_ONE_CYCLE bit will be set, otherwise not. This value could be
> > defined in the specific board configuration file (./include/configs/...).
> > 
> > The patch will be the following:
> > diff -upr drivers/mtd/nand/mxc_nand.c drivers/mtd/nand/mxc_nand.c
> > --- drivers/mtd/nand/mxc_nand.c	2011-12-23 20:25:35.000000000 +0100
> > +++ drivers/mtd/nand/mxc_nand.c	2012-04-01 21:07:13.000000000 +0200
> > @@ -1290,7 +1290,9 @@ static void mxc_setup_config1(void)
> > 
> >  	uint16_t tmp;
> >  	
> >  	tmp = readw(&host->regs->nfc_config1);
> > 
> > +#ifdef CONFIG_NAND_MXC_V1_1_NFC_ONE_CYCLE
> > 
> >  	tmp |= NFC_ONE_CYCLE;
> > 
> > +#endif
> > 
> >  	tmp |= NFC_4_8N_ECC;
> >  	writew(tmp, &host->regs->nfc_config1);
> >  	if (host->pagesize_2k)
> > 
> > Is that a valuable solution for you?
> 
> Ain't that basically what I said? Though, I might have not been clear
> enough ;-) Yes, that's it. Thanks!
> 
> > Cordially,
> > 
> > Daniel

Best regards,
Marek Vasut


More information about the U-Boot mailing list