|
Дата: 8 Сен, 11:19
При работе с NIC NationalSemiconductor DP83815 обнаружил такой глюк: при работе через длинный кабель (более 20м) резко ухудшается связь на 100М с любым режимом дуплеком. Начинает расти количество ошибок приема: 1) инверсия полярности, 2) фальшивая несущая, 3) ошибки приема (внутри пакета) и, как следствие, 4) ошибка CRC принятого пакета. Первые три обнаруживаются просмотров регистров PHY даже без загрузки QNX - после зигрузки BIOS'а, т.е. после иницаилюзации PCI устройства. Может непрерывно гореть индикатор активности. Четвертая ошибка регистрирутся драйвером devn-ns83815.so.
При тестировании сбойных экземпляров тестовой утилитой от NationalSemiconductor проблым обнаружено не было, ровно как и при загрузке винды.
При анализе исходников этой самой тестовой утилиты (благо NS их выложила) и драйва под Linux был найден алгоритм корректировки работы внутреннего DSP через недокументированные регистры PHY контроллера (воистину буржуйсая политика). Далее IDA'ой был просмотрен дайвер QNX на подобную коррекцию: он там есть, но очень-очень кривой, по крайней мере совсем не такой какой предлагает производитель. Коррекция делается только однократно - при загрузке драйвера, в то время как в Linux'овском драйвере это делается периодически через 100мс.
Была написана написана примочка к драйверу - она только то и делает, что периодически выполняет алгорит коррекции. После загрузки ее проблем со связью не было.
Вопрос такой, как заставить QNX скорректировать драйвер или открыть искходники его?
|
|
Дата: 23 Сен, 14:34
|
|
Дата: 23 Сен, 14:40
|
|
Дата: 30 Сен, 12:43 · Поправил: aluv
to sysenter
Действительно, есть такая проблема! И очень давно! Сколько с ней пришлось помучиться. Особенно под QNX 4! Последний патч Net.ns83815 проблему не решил :-/
Мы тогда пришли к выводу, что это чисто аппаратная проблема, поскольку проявлялась далеко не на всех платах.
Буду весьма благодарен, если пришлете вашу "примочку" с исходниками на пробу сюда: aluv[a]yandex.ru!
|
|
Дата: 30 Сен, 12:56
to sysenter
У нас на платах стоят DP83815D. На DP83816 таких проблем вроде не было...
|