LINUX.ORG.RU

Сообщения White_Pony

 

Перестал работать PCI-девайс :(

Вообщем, на работке дали мне 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 всё окей.

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

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

White_Pony
()

RSS подписка на новые темы