From owner-freebsd-smp Sun Oct 19 07:28:21 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.7/8.8.7) id HAA08371 for smp-outgoing; Sun, 19 Oct 1997 07:28:21 -0700 (PDT) (envelope-from owner-freebsd-smp) Received: from math.berkeley.edu (math.Berkeley.EDU [128.32.183.94]) by hub.freebsd.org (8.8.7/8.8.7) with ESMTP id HAA08355 for ; Sun, 19 Oct 1997 07:28:18 -0700 (PDT) (envelope-from dan@math.berkeley.edu) Received: (from dan@localhost) by math.berkeley.edu (8.8.7/8.8.7) id HAA13450; Sun, 19 Oct 1997 07:28:11 -0700 (PDT) Date: Sun, 19 Oct 1997 07:28:11 -0700 (PDT) From: dan@math.berkeley.edu (Dan Strick) Message-Id: <199710191428.HAA13450@math.berkeley.edu> To: freebsd-smp@freebsd.org Subject: multiple I/O APICs Cc: dan@math.berkeley.edu Sender: owner-freebsd-smp@freebsd.org X-Loop: FreeBSD.org Precedence: bulk The io_apic_setup() routine in mpapic.c doesn't like my motherboard. It says "panic io_apic_setup: apic #1". The problem seems to be that the motherboard has more than one I/O APIC and this is not supported. Please forgive this possibly stupid question, but I am not yet familiar with the Intel 1.4 MP spec. Can I configure the kernel to just ignore the second I/O APIC that it doesn't know how to use? If I set NAPIC to 1 in the config file, the kernel panics when it starts and tells me that I must reconfigure it with NAPIC set to 2. I am not certain about the motherboard's correct name or model number. I thought the machine was an Intel "AP450GX MP Server System", but none of the manuals or papers that came with it, including the rather bulky installation manual, carry any model name or number. The mptable program output follows. Dan Strick dan@math.berkeley.edu =============================================================================== MPTable, version 2.0.15 ------------------------------------------------------------------------------- MP Floating Pointer Structure: location: BIOS physical address: 0x000f75a0 signature: '_MP_' length: 16 bytes version: 1.4 checksum: 0x6c mode: Virtual Wire ------------------------------------------------------------------------------- MP Config Table Header: physical address: 0x000f75b0 signature: 'PCMP' base table length: 508 version: 1.4 checksum: 0xe1 OEM ID: 'INTEL ' Product ID: 'ALDER ' OEM table pointer: 0x00000000 OEM table size: 0 entry count: 52 local APIC address: 0xfec08000 extended table length: 240 extended table checksum: 201 ------------------------------------------------------------------------------- MP Config Base Table Entries: -- Processors: APIC ID Version State Family Model Step Flags 0 0x11 BSP, usable 6 1 9 0xfbff 4 0x11 AP, usable 6 1 9 0xfbff 1 0x11 AP, usable 6 1 9 0xfbff 2 0x11 AP, usable 6 1 9 0xfbff -- Bus: Bus ID Type 0 PCI 1 PCI 18 EISA -- I/O APICs: APIC ID Version State Address 14 0x11 usable 0xfec00000 13 0x11 usable 0xfec01000 -- I/O Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN# INT active-hi edge 18 1 14 1 INT active-hi edge 18 0 14 2 INT active-hi edge 18 3 14 3 INT active-hi edge 18 4 14 4 INT active-hi edge 18 5 14 5 INT active-hi edge 18 6 14 6 INT active-hi edge 18 7 14 7 INT active-hi edge 18 8 14 8 INT active-hi edge 18 9 14 9 INT active-hi level 18 10 14 10 INT active-hi level 18 11 14 11 INT active-hi edge 18 12 14 12 INT active-hi edge 18 13 14 13 INT active-hi edge 18 14 14 14 INT active-hi edge 18 15 14 15 INT active-hi level 0 11:A 13 0 INT active-hi level 0 12:A 13 1 INT active-hi level 0 13:A 13 2 INT active-hi level 1 10:A 13 3 INT active-hi level 1 13:A 13 4 INT active-hi level 0 11:B 13 5 INT active-hi level 0 12:C 13 5 INT active-hi level 0 13:D 13 5 INT active-hi level 1 10:B 13 5 INT active-hi level 1 13:C 13 5 INT active-hi level 1 14:D 13 5 INT active-hi level 0 11:C 13 6 INT active-hi level 0 12:D 13 6 INT active-hi level 0 13:B 13 6 INT active-hi level 1 14:B 13 6 INT active-hi level 1 10:C 13 6 INT active-hi level 1 13:D 13 6 INT active-hi level 0 12:B 13 7 INT active-hi level 0 13:C 13 7 INT active-hi level 0 11:D 13 7 INT active-hi level 1 13:B 13 7 INT active-hi level 1 14:C 13 7 INT active-hi level 1 10:D 13 7 INT active-hi level 1 11:A 13 12 INT active-hi level 1 12:A 13 13 INT active-hi level 1 14:A 13 15 -- Local Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN# ExtINT active-hi edge 18 0 255 0 NMI active-hi edge 0 0:A 255 1 ------------------------------------------------------------------------------- MP Config Extended Table Entries: -- bus ID: 0 address type: memory address address base: 0xa0000 address range: 0x20000 -- bus ID: 0 address type: prefetch address address base: 0xfc500000 address range: 0x100000 -- bus ID: 0 address type: memory address address base: 0xfc600000 address range: 0x2500000 -- bus ID: 0 address type: I/O address address base: 0xf000 address range: 0x1000 -- bus ID: 1 address type: prefetch address address base: 0xfc300000 address range: 0x100000 -- bus ID: 1 address type: memory address address base: 0xfc400000 address range: 0x100000 -- bus ID: 1 address type: I/O address address base: 0xe000 address range: 0x1000 -- bus ID: 0 address type: memory address address base: 0x10000000 address range: 0xec300000 -- bus ID: 0 address type: memory address address base: 0xfeb00000 address range: 0x1500000 -- bus ID: 0 address type: I/O address address base: 0x0 address range: 0xe000 -- bus ID: 18 bus info: 0x01 parent bus ID: 0-- bus ID: 0 address modifier: add predefined range: 0x00000000-- bus ID: 0 address modifier: add predefined range: 0x00000001-- bus ID: 1 address modifier: subtract predefined range: 0x00000000-- bus ID: 1 address modifier: subtract predefined range: 0x00000001 ------------------------------------------------------------------------------- # SMP kernel config file options: # Required: options SMP # Symmetric MultiProcessor Kernel options APIC_IO # Symmetric (APIC) I/O # Optional (built-in defaults will work in most cases): #options NCPU=4 # number of CPUs #options NBUS=3 # number of busses #options NAPIC=2 # number of IO APICs #options NINTR=41 # number of INTs ===============================================================================