Bug 15233 - Неработоспособность драйвера eepro100 и e100 на PC/104 процессорной плате
: Неработоспособность драйвера eepro100 и e100 на PC/104 процессорной плате
Status: CLOSED WORKSFORME
: Sisyphus
(All bugs in Sisyphus/kernel-image-std-def)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2008-04-04 13:10 by
Modified: 2008-10-02 19:07 (History)


Attachments
Архив основных логов (9.68 KB, application/octet-stream)
2008-04-04 13:14, Roman Savochenko
no flags Details
dmesg2.6.24-std-def-alt6 (4.40 KB, application/octet-stream)
2008-04-04 16:30, Roman Savochenko
no flags Details
Dmesg e100 debug16 (10.24 KB, application/octet-stream)
2008-04-06 18:55, Roman Savochenko
no flags Details
dmesg irqpoll 2.6.26 (14.63 KB, text/x-log)
2008-09-22 20:06, Roman Savochenko
no flags Details
lspci2618 lspci2626 lspci2626_aes (2.11 KB, application/x-tgz)
2008-09-25 19:43, Roman Savochenko
no flags Details


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2008-04-04 13:10:45
Драйвер eepro100 сетевого контроллера Intel Corporation 8255xER/82551IT Fast 
Ethernet Controller (rev 10) перестал работать. Замечено на PC/104 процессорной 
плате с такой сеткой. На ядре 2.6.18-wks-smp-alt2 драйвер работает. Вобщем-то 
драйвер подгружается, инициируется, интерфейс поднимается и даже линк виден 
через ethtool, но пакеты в сеть не идут, ничего не пингуется и не видно. 
Информация о сетевом контроллере:
00:09.0 Ethernet controller: Intel Corporation 8255xER/82551IT Fast Ethernet 
Controller (rev 10)
       Flags: bus master, medium devsel, latency 64, IRQ 11
       Memory at effff000 (32-bit, non-prefetchable) [size=4K]
       I/O ports at ff00 [size=64]
       Memory at effa0000 (32-bit, non-prefetchable) [size=128K]
       [virtual] Expansion ROM at 10000000 [disabled] [size=64K]
       Capabilities: [dc] Power Management version 2 

Про eepro100 сообщает pciscan, на самом деле грузится e100. Пробовал ставить 
use_io=1 - в dmesg сообщило о использовании io режима. Однако пакеты в сеть не 
идут.
Попробовал руками подгрузить eepro100 - результат тотже.
Прерывания не приходят. Вообще одиннадцатое прерывание разделяют между собой 
eth0, usb0 и usb1.
Ругани не наблюдается. Единственно e100_watchdog сообщает о поднятии линка 
100Mbps и всё.
В случае с ядром 2.6.18 используется модуль e100. Сеть работает. Прерывания 
идут:
[root@plx8 ~]# cat /proc/interrupts
          CPU0
 0:      91555          XT-PIC  timer
 2:          0          XT-PIC  cascade
 7:          1          XT-PIC  parport0
 8:          1          XT-PIC  rtc
11:        709          XT-PIC  ohci_hcd:usb1, ehci_hcd:usb2, eth0
14:      50174          XT-PIC  ide0
NMI:          0
LOC:          0
ERR:          0
MIS:          0

В случае с 2.6.24 всё тоже, только вместо 709 на 11 прерывании 0. 
Отключение ACPI (noacpi,noapic,nolapic) проблемы не исправляет. Вкладываю логи 
для ядра 2.6.18 (сеть работает) и 2.6.24 (не работает).
------- Comment #1 From 2008-04-04 13:14:37 -------
Created an attachment (id=2548) [details]
Архив основных логов

Архив основных логов: lspci, pciscan, dmesg, /proc/interrupts
------- Comment #2 From 2008-04-04 13:27:03 -------
>Попробовал руками подгрузить eepro100 - результат тотже.
Вы перед этим e100 выгружали?
------- Comment #3 From 2008-04-04 13:51:07 -------
Конечно выгружал.
------- Comment #4 From 2008-04-04 14:09:26 -------
>На ядре 2.6.18-wks-smp-alt2 драйвер работает
А на std-smp?
------- Comment #5 From 2008-04-04 14:22:30 -------
и ещё судя по dmesg там был запущен wks-alt1, вы это  на каком ядре проверяли?
Можно dmesg с std-def?
------- Comment #6 From 2008-04-04 16:05:27 -------
(In reply to comment #5)
> и ещё судя по dmesg там был запущен wks-alt1, вы это  на каком ядре 
проверяли?
Логи делал на wks-alt1. А недавно решил попробовать на последних сборках, может 
исправилось. Взял std-def - проблема осталась. А поскольку ядро появилось в 
сизифе решил багу повесить. Логи переделывать не стал, поскольку суть не 
поменялась.
> Можно dmesg с std-def?
Можно. Сейчас сделаю и залью.
------- Comment #7 From 2008-04-04 16:30:08 -------
Created an attachment (id=2549) [details]
dmesg2.6.24-std-def-alt6

Лог dmesg ядра 2.6.24-std-def-alt6
На ядре 2.6.18-std-smp-alt12 сетевая карта работает.
------- Comment #8 From 2008-04-04 23:21:21 -------
Там в модуле, есть возможность включить дебаг, попробуйте пожалуйста, и вывод
сюда киньте
------- Comment #9 From 2008-04-06 18:55:21 -------
Created an attachment (id=2552) [details]
Dmesg e100 debug16

Опция debug для драйвера e100 установлена в 16. В архиве лог dmesg как для
2.6.18, так и для 2.6.24.
------- Comment #10 From 2008-04-09 14:05:39 -------
На ядре kernel-image-led-ws-2.6.25-alt0.3.i586.rpm тоже не работает.
------- Comment #11 From 2008-04-10 13:14:45 -------
Уже не работает на ядрах:
kernel-image-led-std-2.6.22-alt13.i586.rpm
kernel-image-led-ws-2.6.22-alt13.i586.rpm
------- Comment #12 From 2008-06-23 15:40:52 -------
С новыми ядрами не пробовали?
------- Comment #13 From 2008-07-02 10:32:20 -------
Вообще я регулярно пробую, с тем-же результатом. Но попробую ещё раз.
------- Comment #14 From 2008-08-22 18:10:44 -------
kernel-image-2.6.25-std-def
Не работает!
------- Comment #15 From 2008-09-21 15:29:08 -------
Подскажите хотя бы процедуру отладки, что-бы самостоятельно выявить проблему.
------- Comment #16 From 2008-09-21 17:09:33 -------
Что происходит при загрузке с опцией irqpoll?  Покажите dmesg в таком варианте
(хотя debug=16 с этой опцией будет бесполезен из-за постоянных вызовов
e100_intr, разве что пересобрать драйвер, переместив вывод после проверки
stat_ack).
------- Comment #17 From 2008-09-22 20:06:36 -------
Created an attachment (id=2941) [details]
dmesg irqpoll 2.6.26

C irqpoll сеть работает.
Это получается прерывания от железа не идут? Или пересечение мешает. Может
как-то развести их?
------- Comment #18 From 2008-09-22 22:03:41 -------
В 2.6.18 те же разделяемые прерывания работали правильно:

 11:        840          XT-PIC  ohci_hcd:usb1, ehci_hcd:usb2, eth0

Можно ещё попробовать проверить работу USB без использования irqpoll - это тоже
сломалось в новых ядрах?
------- Comment #19 From 2008-09-23 19:19:00 -------
Попробовал. Оказывается USB тоже не работает.
Пробовал вставлять usb-flash на 2.6.26 реакции никакой и счётчик прерываний не
меняется.
При загрузке на 2.6.18 или с irqpoll всё работает.
И ещё один интересный момент.
Сделал загружаемую флешку с rescue (тестю для создания прошивки).
Bios видит и начинает грузиться, но где-то после стадии populate /dev погнали
ошибки доступа на чтение.
При загрузке с этой флешкой и irqpoll всё корректно грузится.

Это получается целиком прерывание 11 где-то лочится?
И кстати, в 2.6.26 якобы используются 3 и 4 прерывание, но кем не понятно. В
2.6.18 они не используются.
------- Comment #20 From 2008-09-23 22:41:16 -------
(In reply to comment #19)
> Сделал загружаемую флешку с rescue (тестю для создания прошивки).
> Bios видит и начинает грузиться, но где-то после стадии populate /dev погнали ошибки
> доступа на чтение.

Вот это действительно очень интересно.  Загрузка действительно доходит до этой
стадии (это уже после монтирования корня из initramfs)?  Тогда получается, что
как минимум на начальном этапе загрузки USB работает.  В этом случае можно
попытаться снять логи при загрузке с init=/sbin/sash, а потом попробовать
отловить, какой модуль при загрузке всё ломает:

dmesg -n8
mount -t sysfs sysfs /sys
find /sys/devices -type f -name modalias |
while read f; do
        mod="$(cat "$f")"; printf '\n%s\n%s\n' "$f" "$mod"
        modprobe -vb "$mod"
        sleep 1
done
------- Comment #21 From 2008-09-24 13:18:54 -------
Нашёл модуль-виновник всего этого.
Называется он geode_aes.
Поместил его в blacklist и всё заработало.

Большое спасибо Сергей за помощь!

Может куда уведомить про проблемы с этим модулем?
------- Comment #22 From 2008-09-24 14:38:56 -------
(In reply to comment #21)
> Может куда уведомить про проблемы с этим модулем?

Видимо, по адресу, указанному в файле MAINTAINERS:

AMD GEODE PROCESSOR/CHIPSET SUPPORT
P:    Jordan Crouse
L:    linux-geode@lists.infradead.org (moderated for non-subscribers)
W:   
http://www.amd.com/us-en/ConnectivitySolutions/TechnicalResources/0,,50_2334_2452_11363,00.html
S:    Supported

Ну и Cc: по адресу из git log:

commit 9fe757b0cfcee0724027a675c533077287a21b96
Author: Jordan Crouse <jordan.crouse@amd.com>
Date:   Wed Oct 4 18:48:57 2006 +1000

    [PATCH] crypto: Add support for the Geode LX AES hardware

    Add a driver to support the AES hardware on the Geode LX processor.

Этот драйвер сейчас вряд ли используется при работе, а в инициализации с тех
пор ничего вроде бы не меняли. Не совсем понятно, каким образом эта
инициализация влияет на IRQ 11, назначенное другим устройствам, если для
00:01.2 назначается IRQ 10 (и в дальнейшем это прерывание вообще не
используется драйвером).

Ещё странное явление: в dmesg от 2.6.18 при определении прерываний для
PCI-устройств пишется:

PCI: Found IRQ 11 for device 0000:00:09.0

В аналогичной ситуации под 2.6.24:

PCI: Assigned IRQ 11 for device 0000:00:09.0

Причём в логе для 2.6.24-std-def-alt6 ситуация ещё более интересная - до
загрузки модуля geode_aes пишется Found, а после этого - Assigned (включая
сообщение для самого устройства AES). Создаётся впечатление, что после загрузки
модуля geode_aes пропадает доступ к конфигурации CS5536.

Приложите ещё вывод lspci -vvxxx, снятый при загрузке с 2.6.18, и два вывода со
свежим ядром - до и после загрузки модуля geode_aes.
------- Comment #23 From 2008-09-25 19:43:34 -------
Created an attachment (id=2951) [details]
lspci2618 lspci2626 lspci2626_aes

Оказывается в 2.6.18 проблемного модуля ещё нет.
И хотя geode_aes вешается на 12 прерывание, а не на 11 у них всё равно есть
одна общая черта. Оба эти прерывания конфигурируются в BIOS как "Основное" и
"Дополнительное" прерывание PCI шины.

Есть подозрение, что он лочит и 12 прерывание. А поскольку видео с иксовым
драйвером я не поднимал, то оно и не проявлялось.
------- Comment #24 From 2008-10-02 19:02:45 -------
Уведомление про проблемы с модулем я выслал по указанным адресам.
Багу закрываю.
------- Comment #25 From 2008-10-02 19:07:32 -------
Закрываю.
Спасибо за помощь!