Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 02 Sep 1996 13:59:04 -0700
From:      erich@uruk.org
To:        rv@groa.uct.ac.za (Russell Vincent)
Cc:        smp@csn.net, erich@uruk.org, terry@lambert.org, freebsd-smp@freebsd.org
Subject:   Re: SMP on Intel MG15 
Message-ID:  <199609022059.NAA18595@uruk.org>
In-Reply-To: Your message of "Sat, 02 Sep 1996 22:11:22 %2B0200." <m0uxfL8-0004wvC@groa.uct.ac.za> 

next in thread | previous in thread | raw e-mail | index | archive | help

[referring to a comment by Terry Lambert claiming it's sort of a bummer
 if the CPU startup sequence requires use of the warm reset vector]

The implementation of the APIC in the Pentium is not really flexible enough
to handle more than 2 CPUs on startup.  In particular, there is no boot-time
or software way that I know of to set the "secondary CPU" bit (which is
what determines if the CPU pays attention to the INIT IPI, I think).  I
think it is a pin in the CPU socket.

The Pentium Pro actually does determine it at boot-time, so no extra
hardware or change in startup scheme is required.

rv@groa.uct.ac.za (Russell Vincent) writes:

> > This leaves me believing that your board is 1.4 but *not* 1.1 compliant.
> 
> Actually, it can do either  - there is a BIOS setting for the
> version number. I have tried both settings at various times and
> no luck.
> 
> BTW: This is a real Intel motherboard, sold by Intel themselves, 
>      and used in the top-end Compaq and HP Pentium servers, so
>      I would hope it follows their spec.  :-)

It *does* follow the spec (at least the later one.  The earlier spec
didn't really cover all the cases of the existing hardware.  NOTE that
the "recommended CPU startup" code was greatly revised in the later
spec version).  I would recommend only referring to the later version
of the spec.  For the more advanced features like bus address range
entries in the MP config table, using version 1.1 of the spec will
produce bad results (for machines such as the the XXPRESS, with multiple
PCI buses, trying to run NT with the BIOS set to version 1.1 of the
spec will produce severe problems!).

Changing the version of the MPS spec in the BIOS only refers to the
information placed in the BIOS tables, and perhaps assignment of
interrupts to I/O APICs.  I don't think it has any relevance to the
operation of the hardware itself.  I certainly know the startup hardware
isn't influenced by this entry.

If it isn't too heathen to suggest it, look at the startup code that
is in the file "arch/i386/kernel/smp.c" in any Linux kernel version
1.3.98 or beyond.  I wrote it and tested it against a large list of
different kinds of 1.1 and 1.4 compatible hardware, and it works with
nearly all of them.

I'm still working on a "canonical" startup code sequence, and should
have it soon on my web site.

--
  Erich Stefan Boleyn                 \_ E-mail (preferred):  <erich@uruk.org>
Mad Genius wanna-be, CyberMuffin        \__      (finger me for other stats)
Web:  http://www.uruk.org/~erich/     Motto: "I'll live forever or die trying"



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