Всем доброго времени суток!


Вообщем, на работке дали мне pci-плату, которая обменивается с компом данными в DOS'е прогой на C++. Моя задача была - написать такое же ПО для Ubuntu 9.04 (ну и улучшения потом).

Написал простенькую прогу, обмен проиходит по известному алгоритму, скопированному из досовской проги, из "железных" функций использую только in_p, out_p, iopl(). Всё работало зашибись.

Потом, когда делал к проге всякие навороты, плата вдруг работать перестала. Причём не работают даже первые примитивные варианты проги, которые раньше работали.

Посмотрел lspci -v, раньше было так:

02:00.0 DPIO module: PLX Technology, Inc. PCI <-> IOBus Bridge (rev 02)
    Subsystem: Device ddd1:0002
    Flags: medium devsel, IRQ 18
    I/O ports at 9000 [size=128]
    I/O ports at 9400 [size=256]
    Memory at fb004000 (32-bit, non-prefetchable) [size=256]
    I/O ports at 9800 [size=256]
    Memory at fb005000 (32-bit, non-prefetchable) [size=256]
    Kernel modules: hisax, com20020-pci

А теперь так:

02:00.0 DPIO module: PLX Technology, Inc. PCI <-> IOBus Bridge (rev 02)
    Subsystem: Device ddd1:0002
    Flags: medium devsel, IRQ 18
    I/O ports at 9000 [disabled] [size=128]
    I/O ports at 9400 [disabled] [size=256]
    Memory at fa000000 (32-bit, non-prefetchable) [disabled] [size=256]
    [virtual] Memory at 00009800 (32-bit, non-prefetchable) [disabled] [size=256]
    Memory at fa000100 (32-bit, non-prefetchable) [disabled] [size=256]
    Kernel modules: hisax, com20020-pci

Кроме того, теперь при загрузке комп выдаёт (можно потом посмотреть с помощью dmesg):

Starting up ...
[    0.551277] pci 0000:02:00.0: BAR 4: error updating (0x009801 != 0xffffffff)

Пробовал презагружаться, пихать плату в другой pci-слот, загружаться через recovery mode. Не помогает, все порты остаются disabled:( При этом в DOS'е всё работает окей. Ставил плату в другой комп с Xubuntu - всё работает.

В самой плате, вроде, ничего нет, что можно было бы сломать экспериментами с ПО. Неужели механически, что-то треснуло? Глазами повреждений не нашёл, контакты протирал. Да и опять таки в ДОСе и Xubuntu всё работает.

Что тут можно сделать в принципе?
Может в самой Убунте можно как-то обнулить записи про эту плату, сделать так, чтоб порты не были disabled?

Заранее спасибо)