VOGONS


Reply 40 of 42, by DistWave

User metadata
Rank Newbie
Rank
Newbie

I found this thread today. It seems that I got the same kingston sx/now upgrade to make similar experiments. I replaced the 386sx with a TI486SXLC40 (5v part, it can run in a 40 MHz or 20 MHz system ,with 2x internal clock multiplier)

L11iVfR1fZCs6DteomVcruLHH2dhodORNOosw7AjR2SVV6U7WuIIA3zztRCzuMH06dSmrTS-2IiDySbbHpbG-qcftWiHqnXOLBiredan6ivA2IC1_cIFiaAfA1GpaYlgT7jGx_oyFA=w480

This cpu runs really hot a lot more than the original 386sx... I'd put a heatsink. It has the metal pad below, but it is not making contact with the PCB.
The main problem is that when I enable the internal 8kb cache I get an "A20 hardware error" and the system hangs (tested in a generic 286 12 MHz PC motherboard with SUNTAC chipset). The "external" 16 kb cache present in the upgrade can be enabled without problems.

Reply 41 of 42, by Paralel

User metadata
Rank Member
Rank
Member

It's because it doesn't have support for Cyrix/TI's implementation of A20M#, Address Bit 20 Mask. It's not part of the typical pin out of a 386SX, as such, the pin on the SXLC-40 that would assert A20M# is likely not connected (N/C). If you have a scope, you can easily check it, but even a simple multimeter should work, since it has an internal pull-up resistor.

A20M# is asserted when internal processor cache is accessed. Without it, you would get an A20 error, so you can't use internal cache.

You may be able to connect the A20M# pin using a patch wire, but, that goes beyond my abilities.

Reply 42 of 42, by Deunan

User metadata
Rank Oldbie
Rank
Oldbie

Connecting A20M is the best solution but might not be possible if that function is internal to one of the 286 mobo ASICs. But there is a software workround, the control registers on Cyrix/Ti have a bit to disable caching of the first 64k of every 1MB segment - that should fix this issue but obviously at a performance cost.