Hi Stefano and Marek, -----Original Message----- From: stefano babic [mailto:sba...@denx.de] Sent: dimanche 1 avril 2012 12:33 To: Gachet Daniel Cc: u-boot@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.gac...@hefr.ch> >> Cc: Wolfgang Denk <w...@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: off...@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? Cordially, Daniel _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot