С usb - похоже ограничения драйвера ohci в ядре - во первых он usb 1.1 и скорей всего в low-speed режиме работает. C spi конечно ты прав - на sd 4 линии данных, если они все дрыгаются то это явно не spi режим :) У меня есть достаточно шустрая mmc - у нее скорость записи на плате около 600 кб/сек на нормальной системе на нее пишет со скоростью порядка 3 мб/сек, есть тормозная sd - на ней везде одинаково медленно пишет :) Да и в даташите на at91sam9260 написано что встроенный mci поддерживает спецификации sd и mmc (п. 35.1)
С USB согласен, забил.
У тебя 600 кбит/с или кБайт/с ?
Я ещё монтировал в асинхронном режиме, на больших файлах дает небольшое увеличение скорости. ММС у меня нет, а SD-шки медленные пишет медленнее, быстрые - быстрее, что тоже непонятно. Если медленная SD-шка на компе 1 мБайт/с, то тут она до 150 кБайт/с падает, а та которая на компе в 3 мБайт/с, тут до 600 кБайт/с поднимается.
Читал всякое на at91.com, мол отключи SPI и будет быстро, отключал - не помогло.
Может там какие тайминги есть, которые считываются из карточки, но неправильно пересчитываются в драйвере ?
Ну и остается проблемой поддержка Linux-ом карточек SDHC.
Скорость я приводил в кбайтах/сек. С sdhc пока не встречался - разве они не поддерживаются ядром linux ? Что-то не верится - они там быстро реагируют на подобные новшества.
У меня в руках была только одна SDHC - она монтируется, и линукс пишет, что мол SDHC, все дела, но про попытке чтения-записи вываливается с сообщением об ошибке (каким именно не помню, карточки нет под рукой).
Вчера откопал БП от старого АТ корпуса - посадил на него плату и попробовал внешний hdd 2,5" в контейнере usb-sata - скорость все так же удручающе низкая :)
Протестировал скорость чтения/записи на моей плате.
У меня немного друая платформа. Но выводы определенные можно сделать.
На плате стоит AT91SAM9260 и 4-х портовый USB host TUSB2046BIRHBR.
USB JetFlash TS2GJFV30 2Гб подключена
к AT91SAM9260 через этот hub. Копирование файла
(USB flash -> USB flash ) занимает около 35 секунд.
3200 /35 = ~90 кбайт/сек
Копирование этого же файла с USB flash на RAMDISK (USB flash > ramdisk) занимает около 4 секунд
3200/4 = ~800 кбайт/сек
Т.е. пропускная способность USB интерфейса нормальная.
Но почему медленно пишет ?
Эта же самая USB JetFlash TS2GJFV30 2Гб при подключению к PC довольно шустрая.
Для каждого теста проводил перезагрузку Linux,
чтобы избежать искажения результатов за счет кэширования
Надо смотреть с какими опциями монтируется флеш - если
-o sync ответ очевиден, отключено кеширование.
А вообще смотрим даташит на sam9260
USB 2.0 Full Speed (12 Mbits per second)
12 мегабит - с учетом оверхеда на протокол больше мегабайта в секунду не будет никогда.