Bug 15233 - Неработоспособность драйвера eepro100 и e100 на PC/104 процессорной плате
Summary: Неработоспособность драйвера eepro100 и e100 на PC/104 процессорной плате
Status: CLOSED WORKSFORME
Alias: None
Product: Sisyphus
Classification: Development
Component: kernel-image-std-def (show other bugs)
Version: unstable
Hardware: all Linux
: P2 normal
Assignee: Vitaly Chikunov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-04-04 13:10 MSD by Roman Savochenko
Modified: 2008-10-02 19:07 MSD (History)
4 users (show)

See Also:


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

Note You need to log in before you can comment on or make changes to this bug.
Description Roman Savochenko 2008-04-04 13:10:45 MSD
Драйвер 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 Roman Savochenko 2008-04-04 13:14:37 MSD
Created attachment 2548 [details]
Архив основных логов

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

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

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

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

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

Можно ещё попробовать проверить работу USB без использования irqpoll - это тоже сломалось в новых ядрах?
Comment 19 Roman Savochenko 2008-09-23 19:19:00 MSD
Попробовал. Оказывается 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 Sergey Vlasov 2008-09-23 22:41:16 MSD
(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 Roman Savochenko 2008-09-24 13:18:54 MSD
Нашёл модуль-виновник всего этого.
Называется он geode_aes.
Поместил его в blacklist и всё заработало.

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

Может куда уведомить про проблемы с этим модулем?
Comment 22 Sergey Vlasov 2008-09-24 14:38:56 MSD
(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 Roman Savochenko 2008-09-25 19:43:34 MSD
Created attachment 2951 [details]
lspci2618 lspci2626 lspci2626_aes

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

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