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>