Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: mini-PCI express проблема с IRQ (sp605) Spartan-6
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > ISA/PCI/PCI-X/PCI Express
vilkin
Здравствуйте.

Взяв за основу кит sp605 (Spartan-6) сделано собственное железо. Отлажена работа под Linux на большом компьютере с PCIex1 разъемом.
Сделал переходник на разъем mini-PCIe и столкнулся с тем, что с моей платы драйвер не получает запросы на прерывания.
Устройство регистрируется, BAR читаются пишутся, а IRQ не проходят.
На PCIe работает, а на mini-PCIe нет... куда смотреть? Подключил к разъему на ноутбуке, тоже не работает.

Спасибо!
vilkin
Для того что бы однозначно убедиться в том, что проблема где-то в железной реализации mini-PCIe и быть уверенным в настройках софта просто переставил винчестер с большого компьютера с PCIe на котором все работает
на маленький компьютер (Intel NUC D34010WYK) с mini-PCIe ну и переткнул туда свою железку. В итоге проблема с прерываниями не ушла все работает кроме прерываний.
Прерывания ни с какими больше устройствами не шарятся.
Для проверки в драйвере жестко задал свободное прерывание ret = request_irq (14, mydevice_isr, "mydevice", dev);
В выводе cat /proc/interupts вижу назначенное прерывание
CPU0 CPU1 CPU2 CPU3
14: 0 0 0 0 IO-APIC-edge mydevice
Создаю воздействие на мою железку - жму кнопку, что бы возникло прерывание.
Но ни одной сработки прерываний не происходит...
Функция static irqreturn_t mydevice_isr(int irq, void * devdata ) вообще не вызывается ни разу даже при инициализации драйвера.
Обмен данными через BAR продолжает нормально работать...
Переставляю винчестер и мой девайс на плату с большим PCIe - там все продолжает работать наряду с прерываниями...
Как хоть отследить где это прерывание теряется?
vilkin
Вроде разобрался, теперь работает и на PCIe и на mini-PCIe. Спасибо, вопрос снят!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.