Mal meine laienhaften Gedanken dazu:
In MiNT [1] entscheidet die Reaktion des Prozessors auf den Befehl pmove tt0,(sp), den es nur bei 68030 gibt, darüber, ob er als 68030 oder 68020 erkannt wird. Für den 68020 ist dieser Befehl eine Coprozessor-Instruktion für die Coprozessor-ID (CpID) 0 mit dem Type 0. Dummerweise ist nach meiner Lektüre nicht wirklich definiert, wie ein 68020 auf solch eine Instruktion reagiert. Im Handbuch steht nur: Instructions with a CpID of zero and a nonzero type field are unimplemented instructions that cause the to begin exception processing. (Hervorhebung von mir.)
Was ein 68020 mit CpID = 0 und Type = 0 macht, steht da nicht (und mangels 68020 kann ich es auch nicht testen).
EmuTOS [2] testet zusätzlich noch, ob sich der Datencache einschalten lässt. Da der 68020 den nicht hat, ist das ein gutes Unterscheidungsmerkmal.
[1] <http://sparemint.org/cgi-bin/cvsweb/freemint/sys/arch/detect.S?rev=1.18&content-type=text/x-cvsweb-markup>
[2] <https://sourceforge.net/p/emutos/code/ci/master/tree/bios/processor.S>