Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 04 Dec 2002 13:11:57 -0500 (EST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        Oliver Blasnik <oliver.blasnik@de.tiscali.com>
Cc:        beemern <beemern@ksu.edu>, smp@FreeBSD.ORG
Subject:   Re: Intel SE7500CW2 narrowed down...
Message-ID:  <XFMail.20021204131157.jhb@FreeBSD.org>
In-Reply-To: <01fb01c29bbb$26d729e0$1d0a310a@de.tiscali.com>

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

On 04-Dec-2002 Oliver Blasnik wrote:
> Hello John,
> 
>> SMP is only broken on i386 for P4's on this one motherboard.
>> It works perfectly fine on other motherboards.
> 
> This isn't my perception after reading PRs every day and also trying
> out FreeBSD/SMP-STABLE+CURRENT sometimes on some of our labs hardware.

The only other reported/known problems are on older Pentium and possibly
PPro machines.  Do you have any other SMP i386 arch machines that do not
work?

>> I can tell you that the way in which we startup CPU's is quite within
>> the IA-32 spec and that it's probably about 90% that this motherboard
>> has some h0rked BIOS.
> 
> I know of this BIOS / tables problem. But why is f. ex. Linux able to
> boot up without any glitch and works as fast as expected (not knowing
> it from exactly this board, but from others I tested)?
> 
> Yes, I know, i shouldn't compare those two OS. But in fact, there
> are many hardware related things working very, very well with Linux
> and don't do with FreeBSD. And - I do compare those two OS every-
> time if I try to get some people over to the FreeBSD side, so
> comparing them has it's good sides, too ;-)

Apparently both Linux and Windows use a different algorithm for starting
up AP's on i386 in that (I think) they send broadcast IPI's instead of
IPI'ing each CPU individually.  Both methods are valid methods as far as
the IA-32 arch are concerned.  However, BIOS writers are known to write
buggy non-standard code that they only test on Windows.  For a classic
example of this, go read up on the El Tortito CD-ROM boot standard and
the no-emulation booting method which _clearly_ allows for a CD to
specify the number of blocks to load up to 640k to allow for arbitrary
sized bootstrap programs.  However, since NT just used a single sector
(4k) bootstrap program, all BIOS's I have run into blatantly ignore
this length field and only read in one sector regardless.  Whoever wrote
the BIOS for these motherboards may suffer from similar malady of either
1) not being able to read, or 2) not knowing how to test.

-- 

John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message




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