ЗАО «ЗЭО»
Техническая поддержка пользователей => Тион, Тион-Про, Тион-Про v2, Сириус => Тема начата: shark-bmt от 06 Мая, 2010, 16:02:50
-
Здравствуйте!
А кто-нибудь использовал MDMA - режим обмена по IDE? - а то с ним возникли проблемы.
IDE используется для обмена ТИОН-ПРО с ПЛИС.
ТИОН обменивается с ПЛИС по PIO нормально, производится настройка MDMA, от ПЛИС приходит сигнал запроса DMARQ...а EP9315 его будто и не замечает. Обратил внимание, что в драйвере IDE для ep93xx (ядро 2.6.20.21) MDMA игнорится и даже встречаются комменты типа "ep93xx cant do MDMA". Но ведь в даташите на проц все расписано куда радужней!!!
-
MDMA не поддерживается процессором, начиная с какой-то ревизии. См. errata на сайте Cirrus.
-
О, точно!!! я как-то об errata'х никогда не думал... теперь осознаю, какая это весчь важная! грабли - великое дело! :)
Огромное спасибо!
-
Хм...в UDMA тожа в один моментик уперся...
В принципе работает. но пока только на 25% - IDE контроллер высылает DMAide request если в буфер пришло 4 слова (слово = 32 бита по терминологии ep93xx userguide'a), при этом DMA контроллер, получив запрос, считывает 1 слово (т.н. peripheral width - 32/16/8 бит на выбор), затем request снимается (судя по результату). И в итоге получается, что из каждых 4 полученных слов вычитывается в указанный для dma - контроллер буфер только 1 слово, по крайней мере я пока достиг только этого. Кто-нибудь сталкивался с этим?
p.s. смотрел драйвер ep93xx-ide.c, там это вроде никак особо не разруливается... а диски на udma у кого-нибудь гонялись?
-
Есть такой диск, что хотите проверить?
hda: CF300, CFA DISK drive
device configured for speed X66
ide0 at 0x800-0x807,0x406 on irq 40
hda: max request size: 128KiB
hda: 1006992 sectors (515 MB) w/1KiB Cache, CHS=999/16/63, UDMA(33)
-
О... все наладилось! в управляющем регистре dma-контроллера как раз биты peripheral width (PW) некорректно записывались. теперь работает как надо. пардон за дезу, спасибо за внимание! 8)