![unsik Kim](/assets/img/avatar_default.png)
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>
40 lines
1.2 KiB
Makefile
40 lines
1.2 KiB
Makefile
#
|
|
# Makefile for the kernel block device drivers.
|
|
#
|
|
# 12 June 2000, Christoph Hellwig <hch@infradead.org>
|
|
# Rewritten to use lists instead of if-statements.
|
|
#
|
|
|
|
obj-$(CONFIG_MAC_FLOPPY) += swim3.o
|
|
obj-$(CONFIG_BLK_DEV_SWIM) += swim_mod.o
|
|
obj-$(CONFIG_BLK_DEV_FD) += floppy.o
|
|
obj-$(CONFIG_AMIGA_FLOPPY) += amiflop.o
|
|
obj-$(CONFIG_PS3_DISK) += ps3disk.o
|
|
obj-$(CONFIG_PS3_VRAM) += ps3vram.o
|
|
obj-$(CONFIG_ATARI_FLOPPY) += ataflop.o
|
|
obj-$(CONFIG_AMIGA_Z2RAM) += z2ram.o
|
|
obj-$(CONFIG_BLK_DEV_RAM) += brd.o
|
|
obj-$(CONFIG_BLK_DEV_LOOP) += loop.o
|
|
obj-$(CONFIG_BLK_DEV_XD) += xd.o
|
|
obj-$(CONFIG_BLK_CPQ_DA) += cpqarray.o
|
|
obj-$(CONFIG_BLK_CPQ_CISS_DA) += cciss.o
|
|
obj-$(CONFIG_BLK_DEV_DAC960) += DAC960.o
|
|
obj-$(CONFIG_XILINX_SYSACE) += xsysace.o
|
|
obj-$(CONFIG_CDROM_PKTCDVD) += pktcdvd.o
|
|
obj-$(CONFIG_MG_DISK) += mg_disk.o
|
|
obj-$(CONFIG_SUNVDC) += sunvdc.o
|
|
|
|
obj-$(CONFIG_BLK_DEV_UMEM) += umem.o
|
|
obj-$(CONFIG_BLK_DEV_NBD) += nbd.o
|
|
obj-$(CONFIG_BLK_DEV_CRYPTOLOOP) += cryptoloop.o
|
|
obj-$(CONFIG_VIRTIO_BLK) += virtio_blk.o
|
|
|
|
obj-$(CONFIG_VIODASD) += viodasd.o
|
|
obj-$(CONFIG_BLK_DEV_SX8) += sx8.o
|
|
obj-$(CONFIG_BLK_DEV_UB) += ub.o
|
|
obj-$(CONFIG_BLK_DEV_HD) += hd.o
|
|
|
|
obj-$(CONFIG_XEN_BLKDEV_FRONTEND) += xen-blkfront.o
|
|
|
|
swim_mod-objs := swim.o swim_asm.o
|