Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 2 Sep 1996 12:50:19 -0700 (MST)
From:      Terry Lambert <terry@lambert.org>
To:        erich@uruk.org
Cc:        terry@lambert.org, smp@csn.net, freebsd-smp@freebsd.org, rv@groa.uct.ac.za
Subject:   Re: SMP on Intel MG15
Message-ID:  <199609021950.MAA02809@phaeton.artisoft.com>
In-Reply-To: <199609021934.MAA18360@uruk.org> from "erich@uruk.org" at Sep 2, 96 12:34:43 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> > B.4.1 specifically applies only to the 82489DX APIC.
> 
> This is incorrect.  The XXPRESS box that I had REQUIRED the setting of the
> "warm start vector" to operate correctly.  Only by completing the
> generic startup code was I able to get many Pentium systems to work
> correctly on Linux-SMP.
> 
> It is actually an issue of how the BIOS/hardware combination handles
> CPU resets.  Many Pentium boxes that have any kind of fault-tolerant
> capability will require this kind of startup.  The Pentium Pro hardware
> is a little more flexible, and I have yet to see any Pentium Pro that
> didn't work with just one INIT IPI.

--------------------------------------------------------------------------
B.4.1.	INIT IPI With Warm Reset

This startupt technique is used with systems based on the 82489DX APIC.
--------------------------------------------------------------------------

Pretty clearly references the 82489DX APIC, IMO.


--------------------------------------------------------------------------
B.4.2.	STARTUP IPI

This startup technique is used with systems based on version 1.x or
higher of the local APIC.  These APIC's recognize the STARTUP IPI,
which is an APIC Interprocessor Interrupt with trigger mode set to
edge and delivery mode set to "110" (bits 8 through 10 of the
interprocessor interrupt register).

...

The operating system should not issue a STARTUP IPI to an 82489DX.
A STARTUP IPI will be ignored instead of forcing the targetted
processor to execute from the given address.
--------------------------------------------------------------------------

I don't know if there are pre-1.x versions of the local APIC.  That
could explain the difference.

There is also the possibility that the processors are an old stepping.

For the 82489DX, I believe the APIC has to be seperate from the
processor (ie: not a local APIC).  Generally, this means very old
and specially build Pentium systems (for processors with cruddy
steppings), or 486 systems.


There is also the possibility that this motherboard is simply not
compliant with the specification.  If this is what's going on, then
the code to handle it should be special cased to make sure that
people who follow on know that its use is an intentional kludge
to work around a bug rather than "the way things are done" or a
result of an imperfect understanding of the specification by the
FreeBSD coders (another kludge).


					Regards,
					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.



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