RFC: PCI SD host controller driver & mmc/mmcsd modules improvements
mav at FreeBSD.org
Sat Sep 27 21:43:09 UTC 2008
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:
I will be grateful for any feedbacks, comments and support.
More information about the freebsd-arm