Thank you, Scott :) > Date: Fri, 30 Oct 2009 11:42:19 -0500 > From: scottw...@freescale.com > To: leon...@msn.com > CC: u-boot@lists.denx.de > Subject: Re: [U-Boot] about nand_read_byte() interface > > On Fri, Oct 30, 2009 at 01:20:58PM +0800, HeLei wrote: > > > > Hi, all > > Hi, please wrap your lines at 75 or so characters -- and definitely don't > paste code as all one line.
Sorry, I change to another email client, I hope it will be okay this time. > > I'm a little confused on NAND read operation. > > According to NAND character, NAND flash is read page by page, which mean's > > once you read, at least you should read data with page size (such as > > 512Bytes) > > Yes, unless you're reading from the out-of-band area. So, this means we have to call nand_read() to get the whole page, even if we just need a single byte in the page. And the call chain is as following: mtd->nand => nand_read => nand_do_read_ops =>nand_read_page_raw => ... Do I get it ? > > But the nand_read_byte() is implemented as following: static u_char > > nand_read_byte(struct mtd_info *mtd) { struct nand_chip *this = mtd->priv; > > return readb(this->IO_ADDR_R); } > > it seems only one byte is read out. > > It's reading one byte out of a buffer that was previously filled with some > operation. It is used for reading status bytes and OOB bad block markers. Yes, interface nand_read_byte() is often used to read out status byte or OOB byte, after I review the code. > -Scott _________________________________________________________________ 全新 Windows 7:寻找最适合您的 PC。了解详情。 http://www.microsoft.com/china/windows/buy/
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot