Hi.

My colleague has fixed this problem.

Here is a small patch to fix IRQ problem.  We have only tested on
ProLiant 6500.  It may not work on other machines.  This patch does
not fix problem for old PCI device driver that gets IRQ directly from
PCI configration register.

Thank you.

linux-2.2.5-ac7/arch/i386/kernel/smp.c
=====================================
*** smp.c.org   Tue Apr  6 14:37:29 1999
--- smp.c       Thu Apr 15 17:21:13 1999
***************
*** 348,354 ****
                                        mp_bus_id_to_type[m->mpc_busid] =
                                                MP_BUS_PCI;
                                        mp_bus_id_to_pci_bus[m->mpc_busid] =
!                                               mp_current_pci_id;
                                        mp_current_pci_id++;
                                }
                                mpt+=sizeof(*m);
--- 348,354 ----
                                        mp_bus_id_to_type[m->mpc_busid] =
                                                MP_BUS_PCI;
                                        mp_bus_id_to_pci_bus[m->mpc_busid] =
!                                               m->mpc_busid;
                                        mp_current_pci_id++;
                                }
                                mpt+=sizeof(*m);
=====================================

Here are boot LOG with some debug print.
=======================================
 Linux version 2.2.5-ac7 ([EMAIL PROTECTED]) (gcc version 2.7.2.3) #31 SMP 
Thu Apr 15 16:52:45 JST 1999 
 Intel MultiProcessor Specification v1.4 
     Virtual Wire compatibility mode. 
 OEM ID: COMPAQ   Product ID: PROLIANT     APIC at: 0xFEE00000 
 Processor #3 Pentium(tm) Pro APIC version 16 
 Processor #0 Pentium(tm) Pro APIC version 16 
 Processor #1 Pentium(tm) Pro APIC version 16 
 Processor #2 Pentium(tm) Pro APIC version 16 
 mp_bus 0 -> pci_bus 0 
 mp_bus 4 -> pci_bus 1 
 I/O APIC #8 Version 17 at 0xFEC00000. 
 Processors: 4 
 mapped APIC to ffffe000 (fee00000) 
 mapped IOAPIC to ffffd000 (fec00000) 
 Detected 449868672 Hz processor. 
 Console: colour VGA+ 80x25 
 Calibrating delay loop... 448.92 BogoMIPS 
 Memory: 1036320k/1048576k available (1084k kernel code, 420k reserved, 10684k data, 
68k init) 
 Checking 386/387 coupling... OK, FPU using exception 16 error reporting. 
 Checking 'hlt' instruction... OK. 
 POSIX conformance testing by UNIFIX 
 mtrr: v1.26 (19981001) Richard Gooch ([EMAIL PROTECTED]) 
 per-CPU timeslice cutoff: 200.38 usecs. 
 CPU3: Intel Pentium II (Deschutes) stepping 03 
 calibrating APIC timer ...  
 ..... CPU clock speed is 449.8742 MHz. 
 ..... system bus clock speed is 99.9718 MHz. 
 Booting processor 0 eip 2000 
 Calibrating delay loop... 448.92 BogoMIPS 
 OK. 
 CPU0: Intel Pentium II (Deschutes) stepping 03 
 Booting processor 1 eip 2000 
 Calibrating delay loop... 448.92 BogoMIPS 
 OK. 
 CPU1: Intel Pentium II (Deschutes) stepping 03 
 Booting processor 2 eip 2000 
 Calibrating delay loop... 448.92 BogoMIPS 
 OK. 
 CPU2: Intel Pentium II (Deschutes) stepping 03 
 Total of 4 processors activated (1795.69 BogoMIPS). 
 enabling symmetric IO mode... ...done. 
 ENABLING IO-APIC IRQs 
 init IO_APIC IRQs 
 linuxconf/tcp: unknown service
  IO-APIC pin 0, 5, 9, 10, 11, 15, 24WARNING: ASSIGN_IRQ_VECTOR wrapped back to 52 
 , 32, 33, 34 not connected. 
 number of MP IRQ sources: 38. 
 number of IO-APIC registers: 35. 
 testing the IO APIC....................... 
 .... register #00: 00000000 
 .......    : physical APIC id: 00 
 .... register #01: 00220011 
 .......     : max redirection entries: 0022 
  WARNING: unexpected IO-APIC, please mail 
           to [EMAIL PROTECTED] 
 .......     : 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  1    0    0   0   0    0    0    00 
  06 000 00  0    0    0   0   0    1    1    71 
  07 000 00  0    0    0   0   0    1    1    79 
  08 000 00  0    0    0   0   0    1    1    81 
  09 000 00  1    0    0   0   0    0    0    00 
  0a 000 00  1    0    0   0   0    0    0    00 
  0b 000 00  1    0    0   0   0    0    0    00 
  0c 000 00  0    0    0   0   0    1    1    89 
  0d 000 00  1    0    0   0   0    0    0    00 
  0e 000 00  0    0    0   0   0    1    1    91 
  0f 000 00  1    0    0   0   0    0    0    00 
  10 0FF 0F  1    1    0   1   0    1    1    99 
  11 0FF 0F  1    1    0   1   0    1    1    A1 
  12 0FF 0F  1    1    0   1   0    1    1    A9 
  13 0FF 0F  1    1    0   1   0    1    1    B1 
  14 0FF 0F  1    1    0   1   0    1    1    B9 
  15 0FF 0F  1    1    0   1   0    1    1    C1 
  16 0FF 0F  1    1    0   1   0    1    1    C9 
  17 0FF 0F  1    1    0   1   0    1    1    D1 
  18 000 00  1    0    0   0   0    0    0    00 
  19 0FF 0F  1    1    0   1   0    1    1    D9 
  1a 0FF 0F  1    1    0   1   0    1    1    E1 
  1b 0FF 0F  1    1    0   1   0    1    1    E9 
  1c 0FF 0F  1    1    0   1   0    1    1    F1 
  1d 0FF 0F  1    1    0   1   0    1    1    F9 
  1e 0FF 0F  1    1    0   1   0    1    1    52 
  1f 0FF 0F  1    1    0   1   0    1    1    5A 
  20 000 00  1    0    0   0   0    0    0    00 
  21 000 00  1    0    0   0   0    0    0    00 
  22 000 00  1    0    0   0   0    0    0    00 
 .................................... done. 
 mtrr: your CPUs had inconsistent fixed MTRR settings 
 mtrr: probably your BIOS does not setup all CPUs 
 PCI: BIOS32 Service Directory structure at 0x800ffee0 
 PCI: BIOS32 Service Directory entry at 0xf0000 
 PCI: BIOS probe returned s=00 hw=11 ver=02.10 l=09 
 PCI: PCI BIOS revision 2.10 entry at 0xf0084 
 PCI: Using configuration type 1 
 PCI: Probing PCI hardware 
 PCI: Scanning for ghost devices on bus 0 
 PCI: 00:80 [8086/84ca]: Scanning peer host bridges 
 i450NX PXB 0: 00/03/03 
 i450NX PXB 1: 04/ff/ff 
 PCI: Scanning for ghost devices on bus 4 
 PCI: Scanning for ghost devices on bus 5 
 PCI->APIC IRQ transform: (B0,I11,P0) -> 27 
 PCI->APIC IRQ transform: (B0,I13,P0) -> 26 
 PCI->APIC IRQ transform: (B0,I13,P1) -> 25 
 PCI->APIC IRQ transform: (B4,I4,P0) -> 17 
 PCI->APIC IRQ transform: (B4,I11,P0) -> 27 
 PCI: using PPB(B4,I3,P0) to get irq 19 
 PCI->APIC IRQ transform: (B5,I4,P0) -> 19 
 PCI: using PPB(B4,I3,P1) to get irq 18 
 PCI->APIC IRQ transform: (B5,I5,P1) -> 18 
 PCI: Sorting device list... 
 PCI: Device 00:78 not found by BIOS 
 PCI: Device 00:80 not found by BIOS 
 PCI: Device 00:90 not found by BIOS 
 PCI: Device 00:a0 not found by BIOS 
 Linux NET4.0 for Linux 2.2 
 Based upon Swansea University Computer Society NET3.039 
 NET4: Unix domain sockets 1.0 for Linux NET4.0. 
 NET4: Linux TCP/IP 1.0 for NET4.0 
 IP Protocols: ICMP, UDP, TCP, IGMP 
 Starting kswapd v 1.5  
 Detected PS/2 Mouse Port. 
 Serial driver version 4.27 with no serial options enabled 
 ttyS00 at 0x03f8 (irq = 4) is a 16550A 
 ttyS01 at 0x02f8 (irq = 3) is a 16550A 
 pty: 256 Unix98 ptys configured 
 PIIX4: IDE controller on PCI bus 00 dev 79 
 PIIX4: not 100% native mode: will probe irqs later 
     ide0: BM-DMA at 0x2c00-0x2c07, BIOS settings: hda:pio, hdb:pio 
 hda: CD-ROM CDU701-Q, ATAPI CDROM drive 
 ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 
 hda: ATAPI 14X CD-ROM drive, 128kB Cache 
 Uniform CDROM driver Revision: 2.54 
 Floppy drive(s): fd0 is 1.44M 
 FDC 0 is a National Semiconductor PC87306 
 ncr53c8xx: at PCI bus 0, device 13, function 0 
 ncr53c8xx: 53c876 detected  
 ncr53c8xx: at PCI bus 0, device 13, function 1 
 ncr53c8xx: 53c876 detected  
 ncr53c876-0: rev=0x14, base=0xc69d0000, io_port=0x2000, irq=26 
 ncr53c876-0: ID 7, Fast-20, Parity Checking 
 ncr53c876-0: on-chip RAM at 0xc69c0000 
 ncr53c876-0: restart (scsi reset). 
 ncr53c876-0: Downloading SCSI SCRIPTS. 
 ncr53c876-1: rev=0x14, base=0xc69b0000, io_port=0x2400, irq=25 
 ncr53c876-1: NCR clock is 40218KHz, 40218KHz 
 ncr53c876-1: ID 7, Fast-20, Parity Checking 
 ncr53c876-1: on-chip RAM at 0xc69a0000 
 ncr53c876-1: restart (scsi reset). 
 ncr53c876-1: Downloading SCSI SCRIPTS. 
 scsi0 : ncr53c8xx - revision 3.1h 
 scsi1 : ncr53c8xx - revision 3.1h 
 scsi : 2 hosts. 
 ncr53c876-0-<0,*>: FAST-20 WIDE SCSI 40.0 MB/s (50 ns, offset 15) 
   Vendor: COMPAQ    Model: DGHS09Y           Rev: 01C0 
   Type:   Direct-Access                      ANSI SCSI revision: 03 
 Detected scsi disk sda at scsi0, channel 0, id 0, lun 0 
 ncr53c876-0-<0,0>: tagged command queue depth set to 4 
 scsi : detected 1 SCSI disk total. 
 SCSI device sda: hdwr sector= 512 bytes. Sectors= 17773500 [8678 MB] [8.7 GB] 
 eth0: OEM i82557/i82558 10/100 Ethernet at 0x3000, 00:08:C7:91:74:86, IRQ 19. 
   Board assembly 009542-001, Physical connectors present: RJ45 
   Primary interface chip i82555 PHY #1. 
   General self-test: passed. 
   Serial sub-system self-test: passed. 
   Internal registers self-test: passed. 
   ROM checksum self-test: passed (0x24c9f043). 
   Receiver lock-up workaround activated. 
 eth1: OEM i82557/i82558 10/100 Ethernet at 0x3020, 00:08:C7:91:74:87, IRQ 18. 
   Board assembly 009542-001, Physical connectors present: RJ45 
   Primary interface chip i82555 PHY #1. 
   General self-test: passed. 
   Serial sub-system self-test: passed. 
   Internal registers self-test: passed. 
   ROM checksum self-test: passed (0x24c9f043). 
   Receiver lock-up workaround activated. 
 Partition check: 
  sda: sda1 sda2 sda3 sda4 < sda5 sda6 sda7 sda8 sda9 > 
 VFS: Mounted root (ext2 filesystem) readonly. 
 Freeing unused kernel memory: 68k freed 
 Adding Swap: 130748k swap-space (priority -1) 
=======================================
-----
Shinji Sumimoto    E-Mail: [EMAIL PROTECTED]
Real World Computing Partnership, Japan.
-
Linux SMP list: FIRST see FAQ at http://www.irisa.fr/prive/mentre/smp-faq/
To Unsubscribe: send "unsubscribe linux-smp" to [EMAIL PROTECTED]

Reply via email to