home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / sys / m68k / 1084 < prev    next >
Encoding:
Internet Message Format  |  1992-09-01  |  3.1 KB

  1. Path: sparky!uunet!cis.ohio-state.edu!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!The-Star.honeywell.com!umn.edu!msus1.msus.edu!msus1.msus.edu!news
  2. Newsgroups: comp.sys.m68k
  3. Subject: Re: Which processor?
  4. Message-ID: <1992Sep1.143752.1090@msus1.msus.edu>
  5. From: lkoop@TIGGER.STCLOUD.MSUS.EDU (LaMonte Koop)
  6. Date: 1 Sep 92 14:37:52 -0600
  7. Reply-To: lkoop@TIGGER.STCLOUD.MSUS.EDU
  8. References: <6040@pdxgate.UUCP>,<1992Sep1.005747.17504@col.hp.com>
  9. Organization: St. Cloud State University, St. Cloud, MN
  10. Nntp-Posting-Host: tigger.stcloud.msus.edu
  11. Lines: 66
  12.  
  13. In article <1992Sep1.005747.17504@col.hp.com>, jpm@col.hp.com (Jonathan Mahaffy) writes:
  14. >idr@rigel.cs.pdx.edu (Ian D Romanick) writes:
  15. > How does one go about detmining what processor you are running on?  
  16. > On my machine type only 68000, '010, '020, '030, and '040 are 
  17. > available and I need to be able to know which I'm running on....
  18. >
  19. >let's see...
  20. >
  21. >supposing you are in supervisor state, and can hack
  22. >the illegal instruction trap,
  23. >
  24. >code MOVEC (4e7a 0000). if you trap, you're a 68000; else
  25. >
  26. >code CALLM (06d0 0000)*. if you don't trap, you're a 68020; else
  27. >
  28. >code MOVE16  (f620 9000)**. if you don't trap, you're a 68040; else
  29. >
  30. >code EXTB (49c0). if you trap you're a 68010; else you're a 68030.
  31. >
  32. >* make sure A0 points to an RTM
  33. >** make sure A0 & A1 point to read/write memory on 16-byte boundaries
  34. >
  35. >there may be better ways...you could take off the cover, and look at
  36. >the chip...
  37. >                    jonathan
  38.  
  39. Actually, a somewhat different way to avoid all the trap catches (though
  40. some are required) would be the following: (this assumes supervisor mode
  41. operation)
  42.  
  43.     do a  movec  vbr,d0
  44.  
  45. If a trap occurs, you are a 68000 - done with checks.  Else:
  46.  
  47.     do a movec  cacr,d0
  48.  
  49. If a trap occurs, you must be a 68010 - done with checks.  Else you are
  50. a 68020 or above...determining which can be done without traps:
  51.  
  52.     1.) get a copy of the current CACR register contents.
  53.     2.) duplicate the copy.
  54.     3.) set the CACR instruction cache BURST enable bit in the duplicate copy 
  55.     4.) set the CACR 68040 instruction cache enable bit in the duplicate copy
  56.     5.) write the copy to the CACR
  57.     6.) re-read the CACR and save the value read
  58.     7.) write back the old CACR register contents preseved in step 1.
  59.  
  60. Now, do these checks:
  61.  
  62.     check the CACR copy from step 6 above for a set 030 BURST bit.
  63.     if this is set, you have a 68030. Else:
  64.  
  65.     check the CACR copy from setp 6 above for a set 68040 instruction enable
  66.     bit.  If this is set, you have a 68040.  Else:
  67.  
  68.     You have a processor from mars.
  69.  
  70. I hope this helps some.  Note that with this method, you cannot identify between
  71. a 68030 and a 68EC030, likewise for a 68040 and 68LC040/68EC040.  Doing such
  72. checks is MUCH more complicated, and not always guaranteed to be effective.
  73.  
  74.                  ----------------------------------------
  75.            LaMonte Koop -- SCSU Electrical/Computer Engineering
  76.  Internet: lkoop@tigger.stcloud.msus.edu -OR- f00012@kanga.stcloud.msus.edu
  77.               "You mean you want MORE lights on this thing???"
  78.  ---------------------------------------------------------------------------
  79.