RFC: PCI SD host controller driver & mmc/mmcsd modules improvements

M. Warner Losh imp at bsdimp.com
Sun Sep 28 09:30:45 UTC 2008

In message: <48DEA8E7.2080503 at FreeBSD.org>
            Alexander Motin <mav at FreeBSD.org> writes:
: Hi.
: I would like to present initial revision of my generic PCI SD Host 
: Controller driver (sdhci). It support PCI devices with class 8 and 
: subclass 5 according to SD Host Controller Specification. With some 
: limitations it successfully works on my Acer TM6292 notebook with ENE 
: CB714 card reader.
: Things that are working now:
:   - PIO mode single and multiple block read and write,
:   - 1 and 4 bits bus width support.
: In PIO mode with 4GB SD card on 30MHz 4bit bus I have reached about 
: 3.5MB/s (limited by CPU) linear read and 7MB/s (limited by card) linear 
: write. Small blocks read/write performance limited by card.
: Things that are not working yet:
:   - DMA modes (code is written, but as my controller looks like has 
: broken DMA I have no ability to debug it),
:   - card insert/remove detection (need more thinking), you should reload 
: mmc module to rescan cards,
:   - SDHC and MMC cards (have no such cards now to debug that code), only 
: standard capacity SD Memory cards up to 4GB size are supported now,
:   - high speed (double rate) bus mode (need more thinking and DMA support).
: Also to get such results I have improved existing mmc and mmcsd drivers 
: a bit. mmc driver got:
:   - 4 bit bus width support,
:   - write protection switch support,
:   - cards with more then 2GB capacity support.
: mmcsd driver got:
:   - multiple block read and write support,
:   - cards with more then 2GB capacity support,
:   - I/O error reporting,
:   - write protection switch support.
: Latest patches against 8-CURRENT (should also fit 7-STABLE) may be found at:
: http://people.freebsd.org/~mav/sdhci/
: I will be grateful for any feedbacks, comments and support.

I'll take a look at the driver and post a code review...


More information about the freebsd-current mailing list