From owner-freebsd-smp Sat Jan 18 12:08:24 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.4/8.8.4) id MAA26358 for smp-outgoing; Sat, 18 Jan 1997 12:08:24 -0800 (PST) Received: from clem.systemsix.com (clem.systemsix.com [198.99.86.131]) by freefall.freebsd.org (8.8.4/8.8.4) with SMTP id MAA26348 for ; Sat, 18 Jan 1997 12:08:12 -0800 (PST) Received: from localhost (localhost [127.0.0.1]) by clem.systemsix.com (8.6.12/8.6.12) with SMTP id NAA28446 for ; Sat, 18 Jan 1997 13:08:06 -0700 Message-Id: <199701182008.NAA28446@clem.systemsix.com> X-Authentication-Warning: clem.systemsix.com: Host localhost didn't use HELO protocol X-Mailer: exmh version 1.6.5 12/11/95 From: Steve Passe To: smp@freefall.freebsd.org Subject: SMP_PROBLEM: systems with >1 PCI bus may fail In-reply-to: Your message of "Sat, 18 Jan 1997 12:07:21 MST." <199701181907.MAA28115@clem.systemsix.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Sat, 18 Jan 1997 13:08:06 -0700 Sender: owner-smp@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk Hi, SMP_PROBLEM: systems with >1 PCI bus may fail mp spec appendix D.2 specifies that when MORE than 1 PCI bus exists the PCI busses should be assigned IDs first, using actual PCI bus numbers. Then ids are assigned to other busses using whatever numbers are free. BIOS with ONLY ONE PCI bus on the MOTHERBOARD often list the ISA/EISA bus first, thus makeing the one and only PCI bus have ID 1. When a PCI bridge card exists in the system another PCI bus then exists, causing the PCI bus numbering (ie ID #s) to be incorrect. Even when no such card exists, having the ISA bus first causes the PCI bus id to NOT match the actual PCI bus #. This makes identifying PCI bus:device:int info from the MP table INTs section difficult (prone to error). To work around this problem the current code ignores the bus ID when identifying PCI INT associations, causing possible errors with multiple PCI bus systems. solution: 1: reorder the bus ids and the bus id entries in the INT section of the MP table to reflect true PCI bus semantics. 2: start using the bus id fields in the lookups. this will require additional code in sys/i386/i386/mp_machdep.c and possibly some sys/pci modules. see MP spec v1.4, D.2 & D.3 for details on required format. -- Steve Passe | powered by smp@csn.net | FreeBSD