Если карточку вставить после загрузки контроллера и вручную примонтировать, то все хорошо.
А если контроллер загружается с уже вставленной карточкой, то она не монтируется автоматически и после вручную не удается её примонтировать:
Freeing init memory: 108K
umount: Couldn't umount /mnt/mmc: Invalid argument
rmmod: at91_mci: No such file or directory
mmc0: new MMC card at address 0001
mmcblk0: mmc0:0001 000000 1003520KiB
mmcblk0:<7>mmc0: starting CMD18 arg 00000000 flags 000000b5
p1
mount: Mounting /dev/mmc1 on /mnt/mmc failed: No such file or directory
...
[@SK-MAT91SAM9 /]$mount_mmc
umount: Couldn't umount /mnt/mmc: Invalid argument
mmc0: card 0001 removed
mmc0: unrecognised EXT_CSD structure version 255
mmc0: error -22 whilst initialising MMC card
mount: Mounting /dev/mmc1 on /mnt/mmc failed: No such device or address
Там все проблемы связаны с драйвером. Чтобы карточка правильно работала после каждого изъятия ее из коннектора нужно модуль at91_mci выгружать а потом снова подгружать и естественно перед изъятием карточки нужно ее отмонтировать если она была смонтирована. В скрипте mount_mmc именно это и прописано.
Похоже модуль некорректно работает с инициализацией карточек.
Есть еще момент ...
У меня две карточки, с которыми тестирую перед отправкой, одна "обычная" другая высокоскоростная (Х150), "обычная" монтируется всегда без проблем, высокоскоростная примерно 50/50 (причем замечал шаманство, если сразу монтировать высокоскоростную, завершается ошибкой, а если в ручную монтировать обычную а потом высокоскоростную, тогда все ок).
Проблему с автомонтированием после подачи питания я решил - в образе RAM-диска, в /etc/rc.d монтирование MMC я перенес и поставил ниже - перед строкой #Load modules.
Из трех загрузок - все три завершились успешным монтированием MMC. Размер карты 1Gb и не знаю какого она типа.
Осталась проблема автомонтирования после нажатия на кнопку reset.
Еще, я время задержки sleep в скрипте mount_mmc уменьшил с 5 до 3.
После обновления ядра до 2.6.27.8 и соответственно модуля at91_mci.ko, ошибка после reset сменилась на такую:
mmc0: error -84 whilst initialising MMC card
Действительно есть проблема с инициализацией некоторых карточек после reset. Проблемная карта фирмы PQI MMC mobile 1GB. Я попробовал другую карту - microSD Kingston 2GB с переходником на SD - все отлично и после reset.