Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 18 Jan 1997 13:08:06 -0700
From:      Steve Passe <smp@csn.net>
To:        smp@freefall.freebsd.org
Subject:   SMP_PROBLEM: systems with >1 PCI bus may fail
Message-ID:  <199701182008.NAA28446@clem.systemsix.com>
In-Reply-To: Your message of "Sat, 18 Jan 1997 12:07:21 MST." <199701181907.MAA28115@clem.systemsix.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199701182008.NAA28446>