Name
Multimedia Card Interface (MMC/SD) Driver — Using MMC/SD cards with block drivers and filesystems
Overview
The MultiMedia Card Interface (MMC/SD) driver in the OMAP processor HAL allows use of MultiMedia Cards (MMC cards) and Secure Digital (SD) flash storage cards within eCos, exported as block devices. This makes them suitable for use as the underlying devices for filesystems such as FAT.
Configuration
This driver provides the necessary support for the generic MMC bus
layer within the CYGPKG_DEVS_DISK_MMC
package
to export a disk block device. The disk block device is only
available if the generic disk I/O layer found in the package
CYGPKG_IO_DISK
is included in the
configuration.
The block device may then be used as the device layer for a
filesystem such as FAT. Example devices are
"/dev/mmcsd0/1
" to refer to the first
partition on the card, or "/dev/mmcsd0/0
" to
address the whole device including potentially the partition table
at the start.
The driver may be forcibly disabled within this processor HAL
package with the configuration option
CYGPKG_HAL_ARM_ARM9_OMAP_L1XX_MMC
.
If the driver is enabled, the following options are available to control it:
-
CYGPKG_HAL_ARM_ARM9_OMAP_L1XX_MMC_DEVICE
- The OMAP_L1XX has two MMC/SD devices. At present the generic MMC/SD code can only handle one device. This option selects which device that is.
-
CYGIMP_HAL_ARM_ARM9_OMAP_L1XX_MMC_INTMODE
- This indicates that the driver should operate in interrupt-driven mode if possible. This is enabled by default if the eCos kernel is enabled. Note though that if the driver finds that global interrupts are off when running, then it will fall back to polled mode even if this option is enabled. This allows for use of the MMC/SD driver in an initialisation context.
-
CYGNUM_HAL_ARM_ARM9_OMAP_L1XX_MMC_INT_PRI
- This is the MMC/SD bus interrupt priority. It may range from 1 to 29.
Usage Notes
The driver will detect the appropriate card sizes. Hotswapping of
cards is supported by the driver, and in the case of eCosPro, the
FAT filesystem. Although any cards removed before explicit
unmounting or a sync()
call to flush
filesystem buffers will likely result in a corrupted filesystem on
the removed card.
The MMC/SD bus layer will parse partition tables, although it can be configured to allow handling of cards with no partition table.
This driver implements multi-sector I/O operations. If you are using the FAT filesystem, see the generic MMC/SD driver documentation which describes how to exploit this feature when using FAT.
2024-03-18 | eCosPro Non-Commercial Public License |