how to read NAND(and input Chinese)

Andy Green andy at
Thu Jun 26 10:00:49 CEST 2008

Hash: SHA1

Somebody in the thread at some point said:
| Andy Green wrote:
|> ~ - reading block data from NAND and getting OOB data with it too
|> ~ - try to use hardware ECC (error correction) like U-Boot
|> ~ - look in OOB and find if it marks block bad
|> - -Andy
| i search some knowledge about NAND, but i still have no idea about READ
| a program from NAND.
| so i need some tip.
| something like:
| step    1. initialization  NAND.
|          2. what the blink_led program should be in NAND.

First job is just to prove you can read and write a block of data in
NAND, don't worry about moving code there yet.

Look at

~ ./cpu/arm920t/s3c24x0/nand_read.c

this has the low level access functions for cpu NAND.

~ ./drivers/mtd/nand/nand_base.c

and others in that directory implement main functions for cpu NAND.

If you didn't use NAND before, the big thing to understand is that it is
NOT memory mapped like normal storage.  Instead, just a couple of
registers are memory mapped.  You send commands down the registers to
request a block, then you read the a register to get the block data back.

If U-Boot is too confusing, maybe it can be quicker to read the s3c2442
datasheet NAND section.

| By the way there are another two question:

I don't know anything about this side, sorry.  Someone in .tw can help

- -Andy
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora -


More information about the openmoko-kernel mailing list