OSDev http://osdev.su/ |
|
PCI-e to SATA контроллре на FPGA http://osdev.su/viewtopic.php?f=7&t=819 |
Страница 1 из 2 |
Автор: | MarK [ 11 ноя 2013, 09:26 ] |
Заголовок сообщения: | PCI-e to SATA контроллре на FPGA |
Добрый день. На ПЛИС сделал честный адаптер PCI-e to SATA II (legacy IDE). Поддерживает режиме PIO и SGDMA. VID/DID=0x8086/0x3b26 (слизал с встроенного контроллера на мат.плате MB950F), CC=0x010185. Работает нормально на UBUNTU 10.04 со стандартным драйвером atapiix. Попробовал под Fedora 17. Тут возникла проблема. Драйвер пишет что не может выполнить команду IDENTIFY_DEVICE, и ресетит линк по timeout, err_mask=0x02 (AC_ERR_HSM). В ПЛИС посмотрел отладчиком, команда отправляется, данные приходят, ATA Status Register=0x58 (все ок), хост считывает этот статус, но данные из буфера вычитывать даже не собирается. В чем может быть проблема? не могу понять что не нравится драйверу? |
Автор: | Yoda [ 11 ноя 2013, 10:33 ] |
Заголовок сообщения: | Re: PCI-e to SATA контроллре на FPGA |
Вопрос настолько специфичен, что вряд ли кто-нибудь сможет ответить по делу. Лучше всего в данной ситуации будет посмотреть в исходник линуксового драйвера. Т.е. ковырять не со стороны ПЛИС, а наоборот. |
Автор: | Nable [ 11 ноя 2013, 10:41 ] |
Заголовок сообщения: | Re: PCI-e to SATA контроллре на FPGA |
У меня (когда работал с пробросом физических устройств в VM) похожая проблема была, когда не доходило прерывание от устройства. Быть может, какие-то приколы с поддержкой MSI (в смысле Message-Signalled Interrupt). Могу предложить добавить к коммандной строке ядра apic=debug msi=debug и посмотреть что напишет. Ну или пытаться разобраться в драйвере, что в случае линухов весьма муторно. |
Автор: | MarK [ 11 ноя 2013, 12:18 ] |
Заголовок сообщения: | Re: PCI-e to SATA контроллре на FPGA |
Nable писал(а): (в смысле Message-Signalled Interrupt). Там MSI, но только не в чистом виде, а Legacy. То есть один msi посылается чтобы установить флаг interrupt, а другой чтобы сбросить. Но тут проблем не должно быть, так как хост, когда выполняет команду identify_device выключает прерывания и работает в режиме опроса. Разобраться с драйвером проблем нет, только я не пойму где исходники скачать для fedora 17, для убунты легко найти оказалось. Не подскажете где (сорри, возможно, за ламерский вопрос)? PS: Проверил сейчас на CentOS, тоже работает нормально. |
Автор: | SII [ 11 ноя 2013, 17:56 ] |
Заголовок сообщения: | Re: PCI-e to SATA контроллре на FPGA |
MarK писал(а): PS: Проверил сейчас на CentOS, тоже работает нормально. На одном и том же железе, только дистрибутивы разные? (а то, если разные материнки, то ещё и это роль сыграть может, в принципе). |
Автор: | pavia [ 11 ноя 2013, 18:16 ] |
Заголовок сообщения: | Re: PCI-e to SATA контроллре на FPGA |
Вопрос на засыпку SATA контролёр интеловский 2-х портовый или 4-рёх портовый? Собственно предлагаю вам сесть в параллели с SATA диском и записать оригинальный протокол.И сравнить с вашим. Но вообще странно. Вроде там нет ничего специфичного такого на что может реагировать драйвер. |
Автор: | pavia [ 11 ноя 2013, 18:19 ] |
Заголовок сообщения: | Re: PCI-e to SATA контроллре на FPGA |
Цитата: В чем может быть проблема? А ответ сразу даёте или с задержкой?Т.е. BSY и другие параметры меняете? |
Автор: | MarK [ 11 ноя 2013, 19:17 ] |
Заголовок сообщения: | Re: PCI-e to SATA контроллре на FPGA |
SII писал(а): На одном и том же железе, только дистрибутивы разные? (а то, если разные материнки, то ещё и это роль сыграть может, в принципе). Да, на одном и том же железе. pavia писал(а): Вопрос на засыпку SATA контролёр интеловский 2-х портовый или 4-рёх портовый? Собственно предлагаю вам сесть в параллели с SATA диском и записать оригинальный протокол.И сравнить с вашим. Контроллер интеловский. Вот только увы не представляю как можно " сесть в параллели с SATA диском"? pavia писал(а): А ответ сразу даёте или с задержкой?Т.е. BSY и другие параметры меняете? Если вы намекаете на 400нс ограничение спецификации, то там и 20 нс нет, все вовремя. После того как мой адаптер получил данные от диска он обновляет бит DRQ и BUSY. Но он не сам их рассчитывает, а берет из PIO Setup FIS в соответсвии со спекой. Проверял -- норм. |
Автор: | Nable [ 11 ноя 2013, 23:25 ] |
Заголовок сообщения: | Re: PCI-e to SATA контроллре на FPGA |
Насчёт исходников ядра - http://fedoraproject.org/wiki/Building_ ... the_Source + http://archives.fedoraproject.org/pub/a ... 17.src.rpm Правда, 17 - уже сравнительно несвежая версия, вроде, сейчас поддерживаются 18 и 19. |
Автор: | MarK [ 12 ноя 2013, 19:05 ] |
Заголовок сообщения: | Re: PCI-e to SATA контроллре на FPGA |
Спасибо попробую. |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |