MSS framework
The overall project goal of MSS framework is to provide better MMC support
and extend the existing MMC framework to support SD, SDIO and CE-ATA protocol. Currently there is some support in the kernel for MMC/SD, however it
has some limitations:-
- Currently, MMC framework are often tightly coupled to the MMC block
driver. This is not quite ideal and leads to the framework is hard to
support future SDIO device, which support I/O device on SD-like protocol.
- There is no standard multiple card support. It is up to the hardware
driver take care of multiple card support.
- There is no clear separation among different protocols. SD code and MMC
code are mixed together. It is hard to maintain.
MSS Framework Design
The MSS framework is designed to address these issues and provide the
following features:
- multiple protocol support
- common multiple card support (including multi-slot and multi-controller).
MSS framework support multiple MMC/SD card, multiple MMC/SD card with SDIO
card and multiple SDIO card.
- power management event
- Hot removable support
- device driver support, including block device driver and others.
- MMC block mode
Below is the example architecture:

To achieve all this, MSS basically splits it into three components:
- Platform driver: The platform driver contains the real code to talk with
the hardware. This is the only platform-dependent part in MSS.
- Protocol driver: The protocol driver contains the basic protocol
primitives and operations.
- Device driver: The device driver work as the interface to other part of
the kernel
MSS is still very much work in progress and currently the only supported
platform is the pxa2xx.
Supported platform:
Mainstone II
Supported protocol:
MMC
Supported device driver:
block device
Latest release:
The latest MSS framework snapshot(version 0.10) was release on 20th October 2006 and can be found at
http://pxa-linux.sf.net/mss_snapshot20061020.tgz.