[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-kernel
Subject:    IO-APIC and 2.1.123/2.1.124pre1
From:       "Eastep, Tom" <eastep () loc1 ! tandem ! com>
Date:       1998-09-30 22:24:12
[Download RAW message or body]

I've been unable to boot 2.1.123 or 2.1.124pre1 unless I use the 2.1.122 version
of arch/i386/kernel/io_apic.c and there have been several other reports of this
type of problem on linux-kernel.

I now have some additional information.

Under 2.1.122, I see the following during boot:

ENABLING IO-APIC IRQs
init IO_APIC IRQs
 IO-APIC pin 0broken BIOS, changing pin 10 to edge
broken BIOS, changing pin 11 to edge
broken BIOS, changing pin 15 to edge
 not connected.
number of MP IRQ sources: 15.
number of IO-APIC registers: 16.
testing the IO APIC.......................
.... register #00: 00000000
.......    : physical APIC id: 00
.... register #01: 000F0011
.......     : max redirection entries: 000F
.......       [IO-APIC cannot route PCI PIRQ 0-3]
.......     : IO APIC version: 0011
.... register #02: 00000000
.......     : arbitration: 00
.... IRQ redirection table:
 NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:
 00 000 00  1    0    0   0   0    0    0    00
 01 000 00  0    0    0   0   0    1    1    59
 02 0FF 0F  0    0    0   0   0    1    1    51
 03 000 00  0    0    0   0   0    1    1    61
 04 000 00  0    0    0   0   0    1    1    69
 05 000 00  0    0    0   0   0    1    1    71
 06 000 00  0    0    0   0   0    1    1    79
 07 000 00  0    0    0   0   0    1    1    81
 08 000 00  0    0    0   0   0    1    1    89
 09 000 00  0    0    0   0   0    1    1    91
 0a 000 00  0    0    0   0   0    1    1    99
 0b 000 00  0    0    0   0   0    1    1    A1
 0c 000 00  0    0    0   0   0    1    1    A9
 0d 000 00  1    0    0   0   0    0    0    00
 0e 000 00  0    0    0   0   0    1    1    B1
 0f 000 00  0    0    0   0   0    1    1    B9


In particular, notice that irqs 10,11 and 15 are reported with broken bios.
These irqs correspond to my three PCI cards:

[eastep@hozomeen eastep]$ cat /proc/interrupts
           CPU0       CPU1
  0:      15839      22265    IO-APIC-edge  timer
  1:        234        358    IO-APIC-edge  keyboard
  2:          0          0          XT-PIC  cascade
  5:        110        184    IO-APIC-edge  soundblaster
  7:          0          0    IO-APIC-edge  parport0
 10:       2833       3061    IO-APIC-edge  aic7xxx
 11:         13         17    IO-APIC-edge  HP J2585A
 12:       3345       4990    IO-APIC-edge  PS/2 Mouse
 13:          1          0          XT-PIC  fpu
 15:         74        128    IO-APIC-edge  Intel EtherExpress Pro 10/100 Ethern
et
NMI:          0
IPI:          0

With 2.1.123, I do not see the broken BIOS messages but the IRQ redirection
table looks as follows (hope this is correct as it flys by rather quickly):

 NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:
 00 000 00  1    0    0   0   0    0    0    00
 01 000 00  0    0    0   0   0    1    1    59
 02 0FF 0F  0    0    0   0   0    1    1    51
 03 000 00  0    0    0   0   0    1    1    61
 04 000 00  0    0    0   0   0    1    1    69
 05 000 00  0    0    0   0   0    1    1    71
 06 000 00  0    0    0   0   0    1    1    79
 07 000 00  0    0    0   0   0    1    1    81
 08 000 00  0    0    0   0   0    1    1    89
 09 000 00  0    0    0   0   0    1    1    91
 0a 0FF 0F  1    1    0   1   0    1    1    99
 0b 0FF 0F  1    1    0   1   0    1    1    A1
 0c 000 00  0    0    0   0   0    1    1    A9
 0d 000 00  1    0    0   0   0    0    0    00
 0e 000 00  0    0    0   0   0    1    1    B1
 0f 0FF 0F  1    1    0   1   0    1    1    B9

Since irq 10 is disabled (mask = 1), the aic7880 repeatedly times out during
unit detection.

I've discovered that the following patch will cause 2.1.124pre1 to work like
2.1.122:

--- linux/arch/i386/kernel/orig.io_apic.c       Wed Sep 30 15:01:38 1998
+++ linux/arch/i386/kernel/io_apic.c    Wed Sep 30 15:02:06 1998
@@ -351,7 +351,7 @@
                        {
                                case MP_BUS_ISA: /* ISA pin */
                                {
-                                       polarity = default_ISA_polarity(idx);
+                                       polarity = 0;
                                        break;
                                }
                                case MP_BUS_PCI: /* PCI pin */


Again, the hardware is:

   HP Vectra XU 6/150 (dual ppro 150, KX chipset)

Hope this helps...

-Tom
-- 
Tom Eastep	
COMPAQ Computer Corporation
Enterprise Computing Group
Tandem Division
tom.eastep@compaq.com

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic