Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!elroy.jpl.nasa.gov!usc!julius.cs.uiuc.edu!apple!altos!altos86!rcollins From: rcollins@altos86.Altos.COM (Robert Collins) Newsgroups: comp.sys.ibm.pc.hardware Subject: Re: Change clock speed on 386SX motherboard? Message-ID: <4610@altos86.Altos.COM> Date: 15 Jan 91 16:24:05 GMT References: <1991Jan5.040434.15650@d.cs.okstate.edu> <1991Jan5.192547.20804@d.cs.okstate.edu> Reply-To: rcollins@altos86.UUCP (Robert Collins) Organization: Altos Computer Systems, San Jose, CA Lines: 37 In article <1991Jan5.192547.20804@d.cs.okstate.edu> ong@d.cs.okstate.edu (ONG ENG TENG) writes: >> As I mentioned before, just got a 16MHz 386SX. In the manual, it seems >> to be saying that the same motherboard (merely refered to as NEATsx >> motherboard, manual prepared by a technical documentation company) can >> be used as a 16MHz or 20MHz. Can it be true that I merely has to >> change the CPU from a 386SX-16 to a 386SX-20 and speed the RAM >> up appropriately, add the 40MHz oscillator (for the 20MHz CPU, as The hardware probably will handle it, but the real question is will the peripheral bus handle it? The NEAT chipset can drive the bus in two different manners: 1) it can run syncronously to the system clock as SYS_CLOCK / 2, SYS_CLOCK / 3, etc. or 2) it can run asyncronously from a separate clock crystal. If your computer runs the bus asyncronously, then you have it made in the shade. If it is syncronous, then you must change the BIOS to program the NEAT for a different BCLOCK divisor. If you don't reprogram the chipset for the correct value, then your peripheral bus will run too fast, and some plug-in cards might not work. Now, you need to find the location in the BIOS that programs the chipset. Here is how you can find it: 1) Get yourself an 80386-SX ICE ($15,000 - $20,000), or rent one. 2) Hook up your SX to the ICE (you must desolder the SX for this) 3) Determine which chipset register programs the BCLOCK divisor, and issue this ICE command (assuming REG_NUM = BCLOCK register): GO TIL STATUS 1011110y at 20p is 0xxREG_NUMxxxx 4) The ICE will halt when port 22h = REG_NUM. Write down where the BIOS is in its code, and where it got its data. 5) Make a binary image of the BIOS, and modify the data in the binary image to the correct BCLOCK divisor. 6) Recompute the checksum on the BIOS, and burn a (set of) EPROM(s). That's all there is to it...but it can be done! -- "Worship the Lord your God, and serve him only." Mat. 4:10 Robert Collins UUCP: ...!sun!altos86!rcollins HOME: (408) 225-8002 WORK: (408) 432-6200 x4356