Краш PCI драйвера на i945 чипсете
От: Shpuntik  
Дата: 19.10.06 07:07
Оценка:
Может кто-нибудь подскажет как бороться с проблемой...
Драйвер для XP на основе NDIS miniport driver based on E100BEX sample.
DDK 2600.1106. Используется компилятор из DDK.

Компьютер ресетится в момент чтения из платы буфера данных в строке: Val = readl_p(Adapter->NicBuffer + Tail);
#define readl_p(addr) __le32_to_cpu(readl((void*)(addr)))
Этот-же драйвер нормально работает на компьютере AMD Athlon c winXP и P3 i815 c win2k.(скомпилирован под win2k)
Пробовали 2 разные матери на i945 (dell и intell) и разные процессоры (celeron и pentium D)
С чем может быть это связано и как действовать в такой ситуации? У меня уже нет идей.
Re: Краш PCI драйвера на i945 чипсете
От: 486 США  
Дата: 19.10.06 13:11
Оценка:
S>Компьютер ресетится в момент чтения из платы буфера данных в строке: Val = readl_p(Adapter->NicBuffer + Tail);

Если есть возможность , то посмотри что пишет/читает драйвер и что действительно принимает PCI плата.

У меня глухо вешался компьютер время от времени. Причем нельзя даже было добраться, через JTAG порт, к внутренним регистрам DSP (которое сидело на PCI шине). Через Софтайз я смотрел, что посылает драйвер, а через хардверный дебагер (который подключил к DSP), контролировал правильность данных. Оказалось что драйвер посылал N слов, а фирмварь ждал N+1. Не правильно программировались внутренние DMAи у DSP и DMAи начинали писать за пределы физической памяти DSP, что приводило к зависанию всей системы.
Re[2]: Краш PCI драйвера на i945 чипсете
От: Shpuntik  
Дата: 19.10.06 15:30
Оценка:
Здравствуйте, 486, Вы писали:
486>Если есть возможность , то посмотри что пишет/читает драйвер и что действительно принимает PCI плата.

486>У меня глухо вешался компьютер время от времени. Причем нельзя даже было добраться, через JTAG порт, к внутренним регистрам DSP (которое сидело на PCI шине). Через Софтайз я смотрел, что посылает драйвер, а через хардверный дебагер (который подключил к DSP), контролировал правильность данных. Оказалось что драйвер посылал N слов, а фирмварь ждал N+1. Не правильно программировались внутренние DMAи у DSP и DMAи начинали писать за пределы физической памяти DSP, что приводило к зависанию всей системы.


Спасибо за ответ.

Плата не зависает, попробую сравнить что оказалось у нее в памяти после зависания PC.
DMA не используется ни с той ни с другой стороны. Очень странно что это зависит от чипсета. Думаю что прямых логических ошибок в коде нет
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.