From owner-freebsd-smp Sun Mar 14 15:53:41 1999 Delivered-To: freebsd-smp@freebsd.org Received: from fast.cs.utah.edu (fast.cs.utah.edu [155.99.212.1]) by hub.freebsd.org (Postfix) with ESMTP id 3827E14F04 for ; Sun, 14 Mar 1999 15:52:33 -0800 (PST) (envelope-from vanmaren@fast.cs.utah.edu) Received: (from vanmaren@localhost) by fast.cs.utah.edu (8.9.1/8.9.1) id QAA07067; Sun, 14 Mar 1999 16:52:15 -0700 (MST) Date: Sun, 14 Mar 1999 16:52:15 -0700 (MST) From: Kevin Van Maren Message-Id: <199903142352.QAA07067@fast.cs.utah.edu> To: freebsd-smp@FreeBSD.ORG, pepper@lh.net Subject: Re: cpq proliant 5500R dual xeon PCI bus=255? Sender: owner-freebsd-smp@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org > All: > > Having problems booting up an SMP kernel under 3.1-RELEASE on our new > compaq proliant 5500R dual xeon box. I'm noticing that BIOS is reporting > 255 PCI busses to a non-MP kernel, which works but sets the number at a > reasonable ten. mptable reports three physical busses. Here's some > relevant output. I realize that compaq is insane with some of their > hardware implementation, and apologize for asking you folks to wade through > it. Thanks for any assistance you can give! > > error message on SMP-enabled kernel dmesg(immediately after CPU info): > panic: bad PCI bus numbering I guess I should answer this, as I wrote the PCI support code for the 450NX chipset... If it is a 450NX chipset problem, I'll try to fix it. The Compaq is probably playing the old game of skipping PCI bus numbers for every empty slot, in order to add a card with a single PCI-PCI bridge under a hot-plug OS (netware 5, etc). Setting the last PCI bus to 255 is an all-too-common mistake being made by OEMs. [BTW, Compaq wrote the hot-plug-PCI spec for their p-pro boxes] > dmesg on the (working) non-SMP kernel: > eisa0: > Probing for devices on the EISA bus > Probing for devices on PCI bus 0: > dpt0: rev 0x02 int a irq 15 on pci0.2.0 > dpt0: DPT PM3334UW FW Rev. 07M0, 1 channel, 64 CCBs > ncr0: rev 0x14 int a irq 9 on pci0.13.0 > ncr1: rev 0x14 int b irq 10 on pci0.13.1 > vga0: rev 0x7a on pci0.14.0 > chip0: rev 0x02 on pci0.15.0 > ide_pci0: rev 0x01 on pci0.15.1 > chip1: rev 0x02 on pci0.15.3 > fixbushigh_450nx: bogus highest PCI bus 255, reduced to 10 > chip2: rev 0x03 on pci0.16.0 > chip3: rev 0x02 on pci0.18.0 > chip4: rev 0x02 on pci0.19.0 > Probing for devices on PCI bus 1: > Probing for devices on PCI bus 2: > Probing for devices on PCI bus 3: > Probing for devices on PCI bus 4: > xl0: <3Com 3c905B Fast Etherlink XL 10/100BaseTX> rev 0x30 int a irq 5 on > pci4.2.0 > xl0: Ethernet address: 00:10:5a:ab:d0:5a > xl0: autoneg not complete, no carrier (forcing half-duplex, 10Mbps) > fxp0: rev 0x05 int a irq 11 on > pci4.3.0 > fxp0: Ethernet address 00:08:c7:eb:b2:98 > Probing for devices on PCI bus 5: > Probing for devices on PCI bus 6: > Probing for devices on PCI bus 7: > Probing for devices on PCI bus 8: > Probing for devices on PCI bus 9: > Probing for devices on PCI bus 10: > Probing for devices on the ISA bus: > MP Config Base Table Entries: > > -- > Processors: APIC ID Version State Family Model Step Flags > 3 0x10 BSP, usable 6 5 3 > 0x183fbff > 2 0x10 AP, usable 6 5 3 > 0x183fbff > -- > Bus: Bus ID Type > 0 PCI > 4 PCI > 17 ISA > -- > I/O APICs: APIC ID Version State Address > 8 0x11 usable 0xfec00000 > -- > I/O Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN# > INT active-hi edge 17 1 8 1 > INT active-hi edge 17 0 8 2 > INT active-hi edge 17 3 8 3 > INT active-hi edge 17 4 8 4 > INT active-hi level 17 5 8 5 > INT active-hi edge 17 6 8 6 > INT active-hi edge 17 1:D 8 7 > INT active-hi edge 17 8 8 8 > INT active-hi level 17 9 8 9 > INT active-hi level 17 10 8 10 > INT active-hi level 17 11 8 11 > INT active-hi edge 17 12 8 12 > INT active-lo edge 17 13 8 13 > INT active-hi edge 17 14 8 14 > INT active-hi level 17 15 8 15 > -- > Local Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN# > ExtINT conforms conforms 17 0 255 0 > NMI conforms conforms 17 0 255 1 > > ------------------------------------------------------------------------------- > # Required: > options SMP # Symmetric MultiProcessor Kernel > options APIC_IO # Symmetric (APIC) I/O > > # Optional (built-in defaults will work in most cases): > #options NCPU=2 # number of CPUs > #options NBUS=3 # number of busses > #options NAPIC=1 # number of IO APICs > #options NINTR=24 # number of INTs Try adding: options NBUS=20 to your config file. This is necessary, as you have a lot more "busses" than the normal low-end box. I'd set it that high, as the ISA bus is numbered 17 in the MP table... (Indicating to me that they plan to handle PCI busses from 0-16). However, I think you may have a problem with the fact that the PCI bus IRQ redirections aren't listed in the mptable. I haven't looked at that code in a while, and I know it does try to fix broken tables, but that may be a problem as well. Kevin Van Maren To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-smp" in the body of the message