Skip to contentSkip to conversation

expicitly use XT_PIC interrupt for an old device?

DISCUSSION Dieter Schön 2 participants 4 messages Aug 11, 2008 – Aug 13, 2008 ACPI

lore
Share & tools
lore
#0 lore raw

hi group,

i have to migrate a character device driver for an old synchronus serial PCI board (Moxa C502/PCI)
from 2.2.something to 2.6.5-smp x86_64.
the problem is, that no interrupts are routed to the driver. i was able to get interrupts when i used a non-SMP kernel and the "noapic" boot option.

is there a way to explicitly force the use of the 8259 when i request an interrupt to get the interrupts for this card not routed via the APIC?
any pointers are appreciated.

thanks in advance,
dieter

#1 lore raw
Quoted 9 lines · Dieter Schön

hi group,

i have to migrate a character device driver for an old synchronus serial PCI board (Moxa C502/PCI)
from 2.2.something to 2.6.5-smp x86_64.
the problem is, that no interrupts are routed to the driver. i was able to get interrupts when i used a non-SMP kernel and the "noapic" boot option.

Quoted 4 lines

is there a way to explicitly force the use of the 8259 when i request an interrupt to get the interrupts for this card not routed via the APIC?
any pointers are appreciated.

doubt whether the I8259 and I/O APIC can be used at the same time. When the non-smp kernel is used and boot option of "noapic" is added, there exists the interrupt for PCI UART card.
Do you try it with the boot option of "noapic" on smp kernel? Can you try it on the latest kernel?
Thanks.

Quoted 6 lines

thanks in advance,
dieter
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#2 lore raw

hi,

thanks for the answer,

Quoted 10 lines · Zhao Yakui
Quoted 9 lines · Dieter Schön

hi group,

i have to migrate a character device driver for an old synchronus serial PCI board (Moxa C502/PCI)
from 2.2.something to 2.6.5-smp x86_64.
the problem is, that no interrupts are routed to the driver. i was able to get interrupts when i used a non-SMP kernel and the "noapic" boot option.

Quoted 8 lines
Quoted 4 lines

is there a way to explicitly force the use of the 8259 when i request an interrupt to get the interrupts for this card not routed via the APIC?
any pointers are appreciated.

doubt whether the I8259 and I/O APIC can be used at the same time.
When the non-smp kernel is used and boot option of "noapic" is added,
there exists the interrupt for PCI UART card. Do you try it with the boot option of "noapic" on smp kernel? Can you try it on the latest kernel?

i have tried it with 2.6.25 on suse11, and also on another hardware platform (i have heard that some motherboards/BIOSes have problems with the APIC) to rule that out.

and it seems that it is possible to operate both ways at the same time:
the cascade driver seems to use the 8259.
my driver is one line below, the Moxa. another idea: would it be possible to force a IO-APIC-level interrupt instead of an edge-triggered?

user@host $ cat /proc/interrupts
CPU0 CPU1

  0:     145319     102178    IO-APIC-edge  timer
  1:        368        485    IO-APIC-edge  i8042
  2:          0          0          XT-PIC  cascade
  6:          0          0    IO-APIC-edge  Moxa
  8:          0          0    IO-APIC-edge  rtc
  9:          0          0   IO-APIC-level  acpi
 12:        668       1190    IO-APIC-edge  i8042
 14:        494        624    IO-APIC-edge  ide0
 16:          0          0   IO-APIC-level  eth0, ehci_hcd, uhci_hcd
 17:          0          0   IO-APIC-level  eth1, uhci_hcd
 18:       6783       3973   IO-APIC-level  libata
NMI:     247349     247309
LOC:     246859     247246
ERR:          0
MIS:          0

user@host $ uname -a
Linux host 2.6.5-7.244-smp #1 SMP Mon Dec 12 18:32:25 UTC 2005 x86_64 x86_64 x86_64 GNU/Linux

user@host $ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 6
model name : Intel(R) Pentium(R) D CPU 3.40GHz
stepping : 4
cpu MHz : 3400.280
cache size : 2048 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
fpu : yes
fpu_exception : yes
cpuid level : 6
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall lm pni monitor ds_cpl tm2 cid cmpxchg16b lahf_lm
bogomips : 6717.44
clflush size : 64
cache_alignment : 128
address sizes : 36 bits physical, 48 bits virtual
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 15
model : 6
model name : Intel(R) Pentium(R) D CPU 3.40GHz
stepping : 4
cpu MHz : 3400.280
cache size : 2048 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
fpu : yes
fpu_exception : yes
cpuid level : 6
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall lm pni monitor ds_cpl tm2 cid cmpxchg16b lahf_lm
bogomips : 6782.97
clflush size : 64
cache_alignment : 128
address sizes : 36 bits physical, 48 bits virtual
power management:

kind regards,
dieter
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#3 lore raw
Quoted 25 lines · Dieter Schön

hi,

thanks for the answer,

Quoted 14 lines · Zhao Yakui
Quoted 9 lines · Dieter Schön

hi group,

i have to migrate a character device driver for an old synchronus serial PCI board (Moxa C502/PCI)
from 2.2.something to 2.6.5-smp x86_64.
the problem is, that no interrupts are routed to the driver. i was able to get interrupts when i used a non-SMP kernel and the "noapic" boot option.

Quoted 4 lines

is there a way to explicitly force the use of the 8259 when i request an interrupt to get the interrupts for this card not routed via the APIC?
any pointers are appreciated.

Quoted 5 lines

doubt whether the I8259 and I/O APIC can be used at the same time. When the non-smp kernel is used and boot option of "noapic" is added, there exists the interrupt for PCI UART card.
Do you try it with the boot option of "noapic" on smp kernel? Can you try it on the latest kernel?

Quoted 8 lines

i have tried it with 2.6.25 on suse11, and also on another hardware platform (i have heard that some motherboards/BIOSes have problems with the APIC) to rule that out.

and it seems that it is possible to operate both ways at the same time:
the cascade driver seems to use the 8259.
my driver is one line below, the Moxa. another idea: would it be possible to force a IO-APIC-level interrupt instead of an edge-triggered?

If the interrupt for Moxa is below 16, you can try to use it as edge-triggered. But you should confirm that it won't be shared by other devices.

Maybe after you do so, the Moxa still can't work unless you can confirm that the interrupt Pin of Moxa card is already connected with the I/O APIC input pin.

Have you tried it with the boot option of "noapic" on smp-kernel? Thanks.

Quoted 75 lines

user@host $ cat /proc/interrupts
CPU0 CPU1

   0:     145319     102178    IO-APIC-edge  timer
   1:        368        485    IO-APIC-edge  i8042
   2:          0          0          XT-PIC  cascade
   6:          0          0    IO-APIC-edge  Moxa
   8:          0          0    IO-APIC-edge  rtc
   9:          0          0   IO-APIC-level  acpi
  12:        668       1190    IO-APIC-edge  i8042
  14:        494        624    IO-APIC-edge  ide0
  16:          0          0   IO-APIC-level  eth0, ehci_hcd, uhci_hcd
  17:          0          0   IO-APIC-level  eth1, uhci_hcd
  18:       6783       3973   IO-APIC-level  libata
NMI:     247349     247309
LOC:     246859     247246
ERR:          0
MIS:          0

user@host $ uname -a
Linux host 2.6.5-7.244-smp #1 SMP Mon Dec 12 18:32:25 UTC 2005 x86_64 x86_64 x86_64 GNU/Linux

user@host $ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 6
model name : Intel(R) Pentium(R) D CPU 3.40GHz
stepping : 4
cpu MHz : 3400.280
cache size : 2048 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
fpu : yes
fpu_exception : yes
cpuid level : 6
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall lm pni monitor ds_cpl tm2 cid cmpxchg16b lahf_lm
bogomips : 6717.44
clflush size : 64
cache_alignment : 128
address sizes : 36 bits physical, 48 bits virtual
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 15
model : 6
model name : Intel(R) Pentium(R) D CPU 3.40GHz
stepping : 4
cpu MHz : 3400.280
cache size : 2048 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
fpu : yes
fpu_exception : yes
cpuid level : 6
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall lm pni monitor ds_cpl tm2 cid cmpxchg16b lahf_lm
bogomips : 6782.97
clflush size : 64
cache_alignment : 128
address sizes : 36 bits physical, 48 bits virtual
power management:

Quoted 2 lines

kind regards,
dieter

--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html