public inbox for linux-mtd@lists.infradead.org
 help / color / mirror / Atom feed
* [RFC] adding support for OneNAND flash memory
@ 2005-02-14  8:40 kyungmin park
  2005-02-14  8:58 ` Artem B. Bityuckiy
  2005-02-14  9:00 ` Thomas Gleixner
  0 siblings, 2 replies; 9+ messages in thread
From: kyungmin park @ 2005-02-14  8:40 UTC (permalink / raw)
  To: 'David Woodhouse', 'Thomas Gleixner'; +Cc: linux-mtd

Dear,

I'm working on a MTD driver-level support for OneNAND flash memory.
OneNAND is a new type of fusion flash memory which has a small control logic inside.
It is connected to the CPU via NOR flash interface, but acts like NAND device.

At first, I've tried using the existing nand framework and extending it. However, due to the difference in the interfacing scheme, the existing nand framework needs to be modified heavily. 
This is due to the fact that every NAND command is directly written to the OneNAND controller register accessed via address bus, while the data is read through specific buffer accessed via address bus and read via data bus.

E.g., write operation
In NAND nature, basic operations are based on address/command latch enable.

1. send start address (ALE)
2. send write command (CLE)
3. write data
4. send write command (CLE)
5. send status command (CLE)
6. check status

But OneNAND operations are different from NAND flash.
The OneNAND uses register based access

1. select DataRAM* (REG)
2. write data into DataRAM
3. write block and page to Start Address Register (REG)
4. write Start Buffer Register (REG)
5. write 0 to interrupt register (REG)
6. write program command to command register (REG)
7. wait for write completed
8. read controller status register (REG)
9. check status
Note: (1) must happen before data input

So it's hard to apply OneNAND access method to current nand directory

Moreover,

To identify the OneNAND scheme is changed. There's no read id command.
Just it reads from device id register (read-only).
Also the device ids can be conflicted between NAND and OneNAND.

For this reason, I'd like to suggest adding another directory (ex. drivers/mtd/onenand) to mtd source tree for supporting OneNAND flash memory instead of modifying/extending existing nand framework.

Comments are always welcome.

Regards,

ps. for detailed info about OneNAND, please visit the following link http://www.samsung.com/Products/Semiconductor/Flash/OneNAND_TM/512Mbit/KFG1216Q2M/KFG1216Q2M.htm

--
 
Kyungmin Park
Embedded Linux Group, System Lab.
Samsung Electronics Co., Ltd.
E-mail: kyungmin.park@samsung.com
Office: +82-31-200-3109

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2005-02-14 11:30 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-02-14  8:40 [RFC] adding support for OneNAND flash memory kyungmin park
2005-02-14  8:58 ` Artem B. Bityuckiy
2005-02-14 10:05   ` kyungmin park
2005-02-14 10:23     ` Thomas Gleixner
2005-02-14 11:18       ` kyungmin park
2005-02-14 11:23         ` Thomas Gleixner
2005-02-14 11:29           ` Thomas Gleixner
2005-02-14 10:11   ` Thomas Gleixner
2005-02-14  9:00 ` Thomas Gleixner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox