From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefan Roese Date: Tue, 12 Feb 2008 06:12:46 +0100 Subject: [U-Boot-Users] 440EPX is not booting from 1Gb/128MB NAND flash In-Reply-To: References: <200802111726.12126.sr@denx.de> Message-ID: <200802120612.46861.sr@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Nikhil, On Tuesday 12 February 2008, Nikhil Gautam wrote: > After looking at nand_command_lp( ), I added following piece of code > everytime I send address to NAND flash. > > #ifdef CFG_NAND_4_ADDR_CYCLE > /* Begin command latch cycle */ > this->hwcontrol(mtd, NAND_CTL_SETCLE); > /* Write out the start read command */ > this->write_byte(mtd, NAND_CMD_READSTART); > /* End command latch cycle */ > this->hwcontrol(mtd, NAND_CTL_CLRCLE); > #endif /* CFG_NAND_4_ADDR_CYCLE */ > > This change along with the change in nand_spl padding and change in > board configuration file defines, I got the 440EPx to boot from the > 1Gb NAND flash. Great. We definitely need another config option than CFG_NAND_4_ADDR_CYCLE to select the 2k page NAND booting option. Thinking about it, we already have this option: CFG_NAND_PAGE_SIZE This is set to 512 for small page devices and set to 2k for large page devices. So the code can be "selected" via this #if statement: #if (CFG_NAND_PAGE_SIZE > 512) Since the difference between both nand_command() functions is quite big, I suggest to implement a 2nd version of this large page nand_command() function. Like this: #if (CFG_NAND_PAGE_SIZE > 512) /* * NAND command for large page NAND devices (2k) */ static int nand_command(struct mtd_info *mtd, int block, int page, int offs, u8 cmd) { ... } #else /* * NAND command for small page NAND devices (512) */ static int nand_command(struct mtd_info *mtd, int block, int page, int offs, u8 cmd) { ... } #endif Another questions: Is the bad page detection now working correctly? Please provide a proper patch with the 2k NAND booting support. Take a look at this links for guidance: http://www.denx.de/wiki/Training/ContributingCode http://www.denx.de/wiki/UBoot/Patches http://www.denx.de/wiki/UBoot/CodingStyle Hope this helps. Best regards, Stefan ===================================================================== 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 =====================================================================