i386 port no longer bootable on non-SSE CPUs

From: Andrew Wilcox <AWilcox_at_Wilcox-Tech.com>
Date: Fri, 20 Feb 2015 15:09:49 -0600
Hello,

The i386 port, both 10-STABLE and 11-CURRENT, will not boot on systems without SSE support.  This is caused by r273995, as using `svn merge -c -273995` (and hacking-and-sloshing through the few compiler errors afterwards) makes it once again bootable.

This crash happens very early on in boot, before even mi_startup (as the author line is never even printed): http://i.imgur.com/SAty1mT.jpg

This breaks support for all i486, Pentium, Pentium Pro, and Pentium II-based CPUs and computers.  These are not only found in older computers that are useful as routers and file servers, but there are some new SoCs still using these chips:

Intel Galileo board
http://www.frys.com/product/8080584
Pentium core, no MMX/SSE whatsoever.  Released late 2014.

AMD Elan SC520, Geode series
http://www.eurotech.com/en/products/CPU-1421
http://www.amd.com/en-us/products/embedded/processors/lx
While the Elan is no longer manufactured, it still remains popular.  The new Geode LX series of processors only implement MMX (so are roughly equivalent to a Pentium Pro in terms of instruction set).

Backing out r273995 allows boot to proceed normally, as shown here: http://imgur.com/a/WWsa5

I attempted to revert locore.S to see if it was related to the stack setup changes found in that commit and it made no difference; the panic was the same.

I would be willing to test any patches/diffs on any or all of the systems I have, but unfortunately I'm in a bit over my head trying to figure out which part of this commit is causing it.

Best,
Andrew

--
Andrew Wilcox, C/C++/Python developer, kernel hacker
Blog:   http://blog.foxkit.us/  WWW: http://foxkit.us/
GitHub:  https://github.com/awilfox
Received on Fri Feb 20 2015 - 20:16:32 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:55 UTC