Subject: Motorola and the broken 68LC040
To: port-mac68k <port-mac68k@NetBSD.ORG>
From: Rolf Braun <rbraun@geocities.com>
List: port-mac68k
Date: 03/13/1997 20:45:15
OK, here's the scoop, as far as I can tell:

The SoftwareFPU documentation mentions that the 68LC040 chip bug is on
Motorola's 68LC040 errata sheet, revision 4 and later, as bug E4. The most
recent revision of the sheet on Motorola's site is the 68040 errata,
revision 1. Either this is something weird with the numbering or the web
site is way out of date.

The bug itself has nothing to do with RTE or returning from F-line
exceptions. Sorry for the misinformation. Instead, pending CPU writes to
memory are never completed when an F-line exception occurs. As mentioned
before, this never affected the MacOS until SoftwareFPU came along, so it
was not discovered until it was too late.

As for the mention by Mason Loring Bliss that this bug was fixed in later
versions of the chip, I'm not sure. I do know for a fact that the chip in
my Performa 637CD *has* the bug, because SoftwareFPU never worked reliably
on my system. Presumable Ken's LC 630 does too. =(

As mentioned before, the bug can be worked around by putting NOPs before
every F-line instruction on the application level.

- Rolf Braun ... rbraun@geocities.com ... TidalWave on IRC
- Sassy Software: cool stuff for Macintosh & Apple II
- http://www.geocities.com/SiliconValley/Heights/3110/
- Help for Mac UNIX questions ... #MacUNIX on EFnet IRC