linux/drivers/block
unsik Kim 3fbed4c61a mflash: initial support
This driver supports mflash IO mode for linux.

Mflash is embedded flash drive and mainly targeted mobile and consumer
electronic devices.

Internally, mflash has nand flash and other hardware logics and supports 2
different operation (ATA, IO) modes.  ATA mode doesn't need any new driver
and currently works well under standard IDE subsystem.  Actually it's one
chip SSD.  IO mode is ATA-like custom mode for the host that doesn't have
IDE interface.

Followings are brief descriptions about IO mode.
A. IO mode based on ATA protocol and uses some custom command. (read confirm,
write confirm)
B. IO mode uses SRAM bus interface.
C. IO mode supports 4kB boot area, so host can boot from mflash.

This driver is quitely similar to a standard ATA driver, but because of
following reasons it is currently seperated with ATA layer.

1. ATA layer deals standard ATA protocol.  ATA layer have many low-
   level device specific interface, but data transfer keeps ATA rule.
   But, mflash IO mode doesn't.

2. Even though currently not used in mflash driver code, mflash has
   some custom command and modes.  (nand fusing, firmware patch, etc) If
   this feature supported in linux kernel, ATA layer more altered.

3. Currently PATA platform device driver doesn't support interrupt.
   (I'm not sure) But, mflash uses interrupt (polling mode is just for
   debug).

4. mflash is somewhat under-develop product.  Even though some company
   already using mflash their own product, I think more time is needed for
   standardization of custom command and mode.  That time (maybe October)
   I will talk to with ATA people.  If they accept integration, I will
   integrate.

Signed-off-by: unsik Kim <donari75@gmail.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2009-04-07 08:12:38 +02:00
..
aoe aoe: WIN_* -> ATA_CMD_* 2009-04-01 21:42:24 +02:00
paride paride/pg.c: xs(): &&/|| confusion 2009-02-18 10:32:01 +01:00
amiflop.c m68k: amiflop - Get rid of sleep_on calls 2009-01-12 20:56:33 +01:00
ataflop.c m68k: atari - Rename "mfp" to "st_mfp" 2009-02-22 09:23:02 -08:00
brd.c [PATCH] switch brd 2008-10-21 07:47:44 -04:00
cciss_cmd.h cciss: kernel scan thread for MSA2012 2009-04-07 08:12:38 +02:00
cciss_scsi.c cciss: Fix cciss SCSI rescan code to better notice device changes 2008-10-09 08:56:18 +02:00
cciss_scsi.h cciss: Fix cciss SCSI rescan code to better notice device changes 2008-10-09 08:56:18 +02:00
cciss.c cciss: change to discover first memory BAR 2009-04-07 08:12:38 +02:00
cciss.h cciss: kernel scan thread for MSA2012 2009-04-07 08:12:38 +02:00
cpqarray.c cpqarray: enable bus mastering 2009-03-24 12:35:17 +01:00
cpqarray.h
cryptoloop.c drivers: Remove unnecessary inclusions of asm/semaphore.h 2008-04-18 22:16:32 -04:00
DAC960.c [PATCH] switch DAC960 2008-10-21 07:47:36 -04:00
DAC960.h
floppy.c floppy: provide a PNP device table in the module. 2009-04-02 19:04:49 -07:00
hd.c include/linux/hdreg.h: remove unused defines 2009-04-01 21:42:25 +02:00
ida_cmd.h
ida_ioctl.h
Kconfig mflash: initial support 2009-04-07 08:12:38 +02:00
loop.c loop: add ioctl to resize a loop device 2009-04-01 08:59:17 -07:00
Makefile mflash: initial support 2009-04-07 08:12:38 +02:00
mg_disk.c mflash: initial support 2009-04-07 08:12:38 +02:00
nbd.c nbd: trivial cleanups 2009-04-02 19:05:02 -07:00
pktcdvd.c pktcdvd: remove broken dev_t export of class devices 2008-12-10 10:03:32 -08:00
ps3disk.c powerpc/ps3: Printing fixups for l64 to ll64 conversion drivers/block 2009-01-16 16:15:13 +11:00
ps3vram.c proc 2/2: remove struct proc_dir_entry::owner 2009-03-31 01:14:44 +04:00
smart1,2.h
sunvdc.c sparc64: Fix unsigned long long warnings in drivers. 2009-01-06 13:20:38 -08:00
swim3.c [PATCH] switch swim3 2008-10-21 07:48:03 -04:00
swim_asm.S m68k: mac - Add SWIM floppy support 2009-03-26 21:15:27 +01:00
swim.c m68k: mac - Add SWIM floppy support 2009-03-26 21:15:27 +01:00
sx8.c block: replace remaining __FUNCTION__ occurrences 2008-04-21 09:51:04 +02:00
ub.c usb-storage: prepare for subdriver separation 2009-03-24 16:20:34 -07:00
umem.c
umem.h
viodasd.c [PATCH] switch viodasd 2008-10-21 07:48:07 -04:00
virtio_blk.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus 2008-12-30 17:37:25 -08:00
xd.c [PATCH] switch xd 2008-10-21 07:48:11 -04:00
xd.h [PATCH] switch xd 2008-10-21 07:48:11 -04:00
xen-blkfront.c Fix kernel NULL pointer dereference in xen-blkfront 2009-03-05 12:04:57 +01:00
xsysace.c xsysace: make it 'struct hd_driveid'-free 2009-04-01 21:42:22 +02:00
z2ram.c [PATCH] switch z2ram 2008-10-21 07:48:17 -04:00