minor fixes for safecopy & safemap tests
[minix.git] / drivers / mmc / README.txt
blobcd353ed95bdfca84f6d657acbf9c4d9c1237d94a
1 This directory contains code to access MMC based devices.
3 It was created during the initial port of MINIX to the ARM platform. mmbclk
4 implements a normal MINIX block device. It uses the interfaces defined in
5 mmchost.h to perform it's operations.
7 mmchost_mmchs is the MMC host controller driver for the TI omap device range.
8 It contains the logic to access SD cards on that device.
10  drivers/mmc
11  |-- Makefile        (The makefile)
12  |-- mmclog.h        (A simpel logging system)
13  |-- omap_mmc.h      (TI Omap register definitions)
14  |-- sdhcreg.h       (BSD headers for the MMC layer)
15  |-- sdmmcreg.h      (BSD headers for the MMC layer)
16  |-- mmcblk.c        (MINIX 3 block device)
17  |-- mmchost.h       (interface between the block device and the MMC layer)
18  |-- mmchost_mmchs.c (Driver to use on the ARM port/beagle) 
19  '-- README.txt      (This file)
22 Future work:
23 ============
25 * Creating a more generic MMC layer
26 The SD protocol is well defined and the imported the netbsd sdhcreg and
27 sdmmcreg headers will allow us to make the MMC interface more generic. We would
28 like  mmchost_mmchs to be split in a generic part and a specific part. 
30 * Using interrupts
31 At time of writing the interrupt handlers on the ARM port are not implemented.
32 Once that is done we will be able to rewrite the code to use proper interrupt
33 handlers.
35 * 4 and 8 bits access
36 The driver currently only reads data over a single data line. Adding support
37 for 4 or 8 bits(for movinands) mode is very welcome.
39 * DMA.
40 The OMAP driver allows the usage of DMA. Adding DMA support will increase the
41 performance of the driver
43 * Removal of the PRIVCTL call.
44 The MMC driver uses memory mapped IO to perform it's operations. On i386 it is
45 the pci driver that will grant access to certain piece of memory to a driver.
46 On the ARM port we lack pci and other self describing busses. In the current
47 driver the driver will itself grant itself access to the correct piece of
48 memory but this is unwanted behavior.  We currently as thinking about two
49 possible solutions. The first would be to add the memory ranges in system.conf.
50 The second would be to modify the PCI driver to grant access to memory based on
51 a fixed configuration. For example we could use the driver tree to perform
52 device discovery and granting access to devices.
55 * TODO removal
56 The driver contains (quite a few) TODO's where the code need to be improved.