У меня есть устройство, управляемое 64-разрядным процессором ARM NXP LS1043. Пользовательская доска. ЦП подключен через PCI 3.0 x 1 (2,5 ГТ/с) к FPGA.
При холодном запуске ЦП загружается без устройства PCI на стороне FPGA, перепрограммируйте FPGA и запустите драйвер PCI. Для первой попытки - все работает нормально.
Далее я перезагружаю FPGA и перепрошиваю прошивку. Канал PCI в это время физически ВЫКЛЮЧЕН, логически - не изменен (если делаю /sys/bus/pci/rescan - устройство отвечает, что все ОК, но это не так (FPGA в состоянии сброса)).
После FPGA перезапускаю, я использую пользователя /sys/bus/pci/devices/%dev_num%/remove; /sys/bus/pci/rescan — перезапуск драйвера ядра, и он работает правильно.
НО, после первого удаления драйвера — устройство запускается случайным образом и обнаруживает ошибки сегментирования ядра. В основном в сетевом стеке (как наиболее используемая часть).
ПЕРЕД первой проверкой драйвера - ошибок нет.
Удалена вся логика из драйвера. В функциях проверки/удаления выделяется ТОЛЬКО память для частной структуры. Проблема все еще здесь.
Это не мой первый драйвер (но первый для разработчиков PCI), но мой первый драйвер, который вызвал проблемы такого типа.
Вопрос: что я могу сделать, чтобы обнаружить проблему с использованием общих ресурсов? Какие ресурсы я могу необоснованно освободить?
Подробнее здесь: https://stackoverflow.com/questions/792 ... -on-remove
Ошибка драйвера устройства Linux PCI Express при удалении ⇐ Linux
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Linux PCI iomem обнаруживает ошибки доступа к памяти в драйвере устройства
Anonymous » » в форуме Linux - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Linux PCI PCIBIOS_WINDOW_ALIGNMENT () не работает, как предназначено после обновления ядра
Anonymous » » в форуме Linux - 0 Ответы
- 5 Просмотры
-
Последнее сообщение Anonymous
-