[U-Boot] about nand_read_byte() interface
HeLei
leon.he at msn.com
Mon Nov 2 04:07:37 CET 2009
Thank you, Scott :)
> Date: Fri, 30 Oct 2009 11:42:19 -0500
> From: scottwood at freescale.com
> To: leon.he at msn.com
> CC: u-boot at 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/
More information about the U-Boot
mailing list