[Comm] PCMCI_NIC_Xircom

Sergey Vlasov =?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Сб Мар 8 11:58:16 MSK 2008


On Sat, Mar 08, 2008 at 01:35:54AM +0200, andriy wrote:
> но сеть работает только в момент 
> проигрывания звука (или с помощью mpg123 или 
> amarok'ом значения не имеет).

Похоже, этим устройствам по каким-то причинам было назначено одно и то
же прерывание, но при этом прерывания от сетевой карты не приходят;
при проигрывании звука по прерываниям от звуковой карты вызываются оба
обработчика, и сеть тоже начинает как-то работать.


> Yenta: CardBus bridge found at 0000:00:03.0 [1028:00bb]
> Yenta: Using CSCINT to route CSC interrupts to PCI
> Yenta: Routing CardBus interrupts to PCI
> Yenta TI: socket 0000:00:03.0, mfunc 0x01261222, devctl 0x66
> Yenta: ISA IRQ mask 0x04b8, PCI irq 11
> Socket status: 30000010
> Yenta: CardBus bridge found at 0000:00:03.1 [1028:00bb]
> Yenta: Using CSCINT to route CSC interrupts to PCI
> Yenta: Routing CardBus interrupts to PCI
> Yenta TI: socket 0000:00:03.1, mfunc 0x01261222, devctl 0x66
> Linux agpgart interface v0.102 (c) Dave Jones
> input: PC Speaker as /class/input/input1
> Yenta: ISA IRQ mask 0x04b8, PCI irq 11
> Socket status: 30000006

По ISA IRQ mask для ISA-подобных устройств (старых PCMCIA, как эта
карта Xircom) доступны прерывания 3, 4, 5, 7, 10 (хотя при этом IRQ 3
и 4 уже заняты встроенными последовательными портами, а 7 -
параллельным).

> ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 5
> PCI: setting IRQ 5 as level-triggered
> ACPI: PCI Interrupt 0000:00:08.0[A] -> Link [LNKB] -> GSI 5 (level, low) -> IRQ 5

Для звуковой карты было назначено IRQ 5 (причём потребовалось
переключить его режим на PCI-совместимый).

> eth0: Xircom: port 0x300, irq 5, hwaddr 00:10:A4:A1:E2:45

Потом это же прерывание было выбрано для сетевой карты..

> 0.1: ttyS3 at I/O 0x2e8 (irq = 5) is a 16550A

...и оно же для ещё одного последовательного порта (это что, модем на
той же карте Xircom?).

Стоит проверить, нет ли для этой машины обновлений BIOS - возможно, в
новых версиях исправлено что-то в IRQ routing (впрочем, иногда
оказывается, что новые версии как раз сломаны).  Также можно
попробовать следующие варианты:

1. Загрузить систему с параметром:

	acpi_irq_isa=5

   В этом случае ACPI не будет назначать IRQ 5 для PCI-устройств -
   возможно, после этого прерывания от PCMCIA будут приходить
   нормально.  Возможно, стоит сделать даже acpi_irq_isa=5,10 (на
   случай, если какому-то другому устройству понадобится IRQ 10).

2. Если первый способ не помогает, можно ещё попробовать какие-то
   опции из стандартного набора для борьбы с кривыми BIOS:

	pci=noacpi
	acpi=noirq

3. Можно пойти другим путём - запретить PCMCIA использовать IRQ 5; для
   этого нужно найти в sysfs файлы

	/sys/class/pcmcia_socket/*/card_irq_mask

   и записать туда 0x0498 вместо 0x04b8.  Восстановить первоначальное
   значение записью в этот файл не удастся (биты можно только
   сбрасывать); для восстановления настроек придётся перезагрузить
   модуль yenta_socket.  Менять настройки нужно перед вставкой карты
   (сама по себе запись в этот файл не приводит к переназначению
   ресурсов, а только влияет на выделение IRQ при подключении нового
   устройства).
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/community/attachments/20080308/cdfa578d/attachment-0002.bin>


Подробная информация о списке рассылки community